* gas/all/assign.s: New.
[deliverable/binutils-gdb.git] / ld / scripttempl / armcoff.sc
index 9f9cd7c1d03fc6ecbed973284a6075dd65c9e1ac..781301c807da34cf3a4d5b13569c47ccb1677e85 100644 (file)
@@ -6,6 +6,18 @@ if test -z "${DATA_ADDR}"; then
     DATA_ADDR=.
   fi
 fi
+
+# These are substituted in as variables in order to get '}' in a shell
+# conditional expansion.
+CTOR='.ctor : {
+    *(SORT(.ctors.*))
+    *(.ctor)
+  }'
+DTOR='.dtor : {
+    *(SORT(.dtors.*))
+    *(.dtor)
+  }'
+
 cat <<EOF
 OUTPUT_FORMAT("${OUTPUT_FORMAT}", "${BIG_OUTPUT_FORMAT}", "${LITTLE_OUTPUT_FORMAT}")
 ${LIB_SEARCH_DIRS}
@@ -20,7 +32,7 @@ SECTIONS
      present): */
   .text ${RELOCATING+ 0x8000} : {
     *(.init)
-    *(.text)
+    *(.text*)
     *(.glue_7t)
     *(.glue_7)
     *(.rdata)
@@ -30,15 +42,25 @@ SECTIONS
                        LONG (-1); *(.dtors); *(.dtor);  LONG (0); }
     *(.fini)
     ${RELOCATING+ etext  =  .;}
+    ${RELOCATING+ _etext =  .;}
   }
-  .data ${RELOCATING+${DATA_ADDR-0x40000 + (. & 0xfffc0fff)}} : {
+  .data ${RELOCATING+${DATA_ADDR-0x40000 + (ALIGN(0x8) & 0xfffc0fff)}} : {
     ${RELOCATING+  __data_start__ = . ;}
-    *(.data)
+    *(.data*)
+        
+    ${RELOCATING+*(.gcc_exc*)}
+    ${RELOCATING+___EH_FRAME_BEGIN__ = . ;}
+    ${RELOCATING+*(.eh_fram*)}
+    ${RELOCATING+___EH_FRAME_END__ = . ;}
+    ${RELOCATING+LONG(0);}
+    
     ${RELOCATING+ __data_end__ = . ;}
     ${RELOCATING+ edata  =  .;}
     ${RELOCATING+ _edata  =  .;}
   }
-  .bss ${RELOCATING+ SIZEOF(.data) + ADDR(.data)} :
+  ${CONSTRUCTING+${RELOCATING-$CTOR}}
+  ${CONSTRUCTING+${RELOCATING-$DTOR}}
+  .bss ${RELOCATING+ ALIGN(0x8)} :
   {                                    
     ${RELOCATING+ __bss_start__ = . ;}
     *(.bss)
This page took 0.024738 seconds and 4 git commands to generate.