Use ${CONSTRUCTING...} to enclose constructors and destructors.
authorNick Clifton <nickc@redhat.com>
Fri, 3 Nov 2000 19:49:05 +0000 (19:49 +0000)
committerNick Clifton <nickc@redhat.com>
Fri, 3 Nov 2000 19:49:05 +0000 (19:49 +0000)
12 files changed:
ld/ChangeLog
ld/scripttempl/h8300.sc
ld/scripttempl/h8300h.sc
ld/scripttempl/h8300s.sc
ld/scripttempl/h8500.sc
ld/scripttempl/h8500b.sc
ld/scripttempl/h8500c.sc
ld/scripttempl/h8500m.sc
ld/scripttempl/h8500s.sc
ld/scripttempl/v850.sc
ld/scripttempl/w65.sc
ld/scripttempl/z8000.sc

index 6d3978a2de9ba39c4fa6e7d7372fc1d37e934b65..d2e2c9a8387634d574869873024054e9454be816 100644 (file)
@@ -1,3 +1,18 @@
+2000-11-03  Nick Clifton  <nickc@redhat.com>
+
+       * scripttempl/h8300.sc: Use ${CONSTRUCTING...} to enclose
+       constructors and destructors.
+       * scripttempl/h8300h.sc: Ditto.
+       * scripttempl/h8300s.sc: Ditto.
+       * scripttempl/h8500.sc: Ditto.
+       * scripttempl/h8500b.sc: Ditto.
+       * scripttempl/h8500c.sc: Ditto.
+       * scripttempl/h8500m.sc: Ditto.
+       * scripttempl/h8500s.sc: Ditto.
+       * scripttempl/v850.sc: Ditto.
+       * scripttempl/w65.sc: Ditto.
+       * scripttempl/z8000.sc: Ditto.
+
 2000-11-02  Per Lundberg  <plundis@chaosdev.org>
 
        * Makefile.in (e_i386_chaos.c): New rule.
index f2f876e2835001935fbabe1b91fcf87a6b52295b..6f4cdcec4b612afa5ae0203bbba61fd676a0fed0 100644 (file)
@@ -1,3 +1,13 @@
+TORS=".tors :
+  {
+    ___ctors = . ;
+    *(.ctors)
+    ___ctors_end = . ;
+    ___dtors = . ;
+    *(.dtors)
+    ___dtors_end = . ;
+  } > ram"
+
 cat <<EOF
 OUTPUT_FORMAT("${OUTPUT_FORMAT}")
 OUTPUT_ARCH(${ARCH})
@@ -18,52 +28,60 @@ MEMORY
 
 SECTIONS                               
 {                                      
-.vectors : {
-       /* Use something like this to place a specific function's address
-          into the vector table. 
+.vectors :
+        {
+         /* Use something like this to place a specific
+            function's address into the vector table. 
 
-       SHORT(ABSOLUTE(_foobar)) */
+            SHORT (ABSOLUTE (_foobar)).  */
 
-       *(.vectors)
+         *(.vectors)
         } ${RELOCATING+ > vectors}
 
-.text :        {                                       
-       *(.rodata)                              
-       *(.text)                                
-       *(.strings)
-       ${RELOCATING+ _etext = . ; }
-       } ${RELOCATING+ > ram}
-.tors : {
-       ___ctors = . ;
-       *(.ctors)
-       ___ctors_end = . ;
-       ___dtors = . ;
-       *(.dtors)
-       ___dtors_end = . ;
+.text :
+       {                                       
+         *(.rodata)                            
+         *(.text)                              
+         *(.strings)
+         ${RELOCATING+ _etext = . ; }
        } ${RELOCATING+ > ram}
-.data : {
-       *(.data)
-       *(.tiny)
-       ${RELOCATING+ _edata = . ; }
+       
+       ${CONSTRUCTING+${TORS}}
+       
+.data :
+       {
+         *(.data)
+         *(.tiny)
+         ${RELOCATING+ _edata = . ; }
        } ${RELOCATING+ > ram}
-.bss : {
-       ${RELOCATING+ _bss_start = . ;}
-       *(.bss)
-       *(COMMON)
-       ${RELOCATING+ _end = . ;  }
+       
+.bss :
+       {
+         ${RELOCATING+ _bss_start = . ;}
+         *(.bss)
+         *(COMMON)
+         ${RELOCATING+ _end = . ;  }
        } ${RELOCATING+ >ram}
-.stack : {
-       ${RELOCATING+ _stack = . ; }
-       *(.stack)
+       
+.stack :
+       {
+         ${RELOCATING+ _stack = . ; }
+         *(.stack)
        } ${RELOCATING+ > topram}
-.eight : {
-       *(.eight)
+       
+.eight :
+       {
+         *(.eight)
        } ${RELOCATING+ > eight}
-.stab 0 ${RELOCATING+(NOLOAD)} : {
-       [ .stab ]
+       
+.stab 0 ${RELOCATING+(NOLOAD)} :
+       {
+         [ .stab ]
        }
-.stabstr 0 ${RELOCATING+(NOLOAD)} : {
-       [ .stabstr ]
+       
+.stabstr 0 ${RELOCATING+(NOLOAD)} :
+       {
+         [ .stabstr ]
        }
 }
 EOF
index d1cfd860b653f446a9cfe969f80728445e24fd8b..e543df924ec865056ff3411d5d544b116ee4782f 100644 (file)
@@ -1,3 +1,13 @@
+TORS=".tors :
+  {
+    ___ctors = . ;
+    *(.ctors)
+    ___ctors_end = . ;
+    ___dtors = . ;
+    *(.dtors)
+    ___dtors_end = . ;
+  } > ram"
+
 cat <<EOF
 OUTPUT_FORMAT("${OUTPUT_FORMAT}")
 OUTPUT_ARCH(h8300h)
@@ -24,53 +34,64 @@ MEMORY
 
 SECTIONS                               
 {                                      
-.vectors : {
-       /* Use something like this to place a specific function's address
-          into the vector table.
+.vectors :
+       {
+         /* Use something like this to place a specific
+            function's address into the vector table.
 
-       LONG(ABSOLUTE(_foobar)) */
+            LONG (ABSOLUTE (_foobar)).  */
 
-       *(.vectors)
+         *(.vectors)
        } ${RELOCATING+ > vectors}
-.text :        {                                       
-       *(.rodata)                              
-       *(.text)                                
-       *(.strings)
-       ${RELOCATING+ _etext = . ; }
-       } ${RELOCATING+ > ram}
-.tors : {
-       ___ctors = . ;
-       *(.ctors)
-       ___ctors_end = . ;
-       ___dtors = . ;
-       *(.dtors)
-       ___dtors_end = . ;
+       
+.text :
+       {                                       
+         *(.rodata)                            
+         *(.text)                              
+         *(.strings)
+         ${RELOCATING+ _etext = . ; }
        } ${RELOCATING+ > ram}
-.data : {
-       *(.data)
-       ${RELOCATING+ _edata = . ; }
+       
+       ${CONSTRUCTING+${TORS}}
+       
+.data :
+       {
+         *(.data)
+         ${RELOCATING+ _edata = . ; }
        } ${RELOCATING+ > ram}
-.bss : {
-       ${RELOCATING+ _bss_start = . ;}
-       *(.bss)
-       *(COMMON)
-       ${RELOCATING+ _end = . ;  }
+       
+.bss :
+       {
+         ${RELOCATING+ _bss_start = . ;}
+         *(.bss)
+         *(COMMON)
+         ${RELOCATING+ _end = . ;  }
        } ${RELOCATING+ >ram}
-.stack : {
-       ${RELOCATING+ _stack = . ; }
-       *(.stack)
+       
+.stack :
+       {
+         ${RELOCATING+ _stack = . ; }
+         *(.stack)
        } ${RELOCATING+ > topram}
-.tiny : {
-       *(.tiny)
+       
+.tiny :
+       {
+         *(.tiny)
        } ${RELOCATING+ > tiny}
-.eight : {
-       *(.eight)
+       
+.eight :
+       {
+         *(.eight)
        } ${RELOCATING+ > eight}
-.stab 0 ${RELOCATING+(NOLOAD)} : {
-       [ .stab ]
+       
+.stab 0 ${RELOCATING+(NOLOAD)} :
+       {
+         [ .stab ]
        }
-.stabstr 0 ${RELOCATING+(NOLOAD)} : {
-       [ .stabstr ]
+       
+.stabstr 0 ${RELOCATING+(NOLOAD)} :
+       {
+         [ .stabstr ]
        }
 }
 EOF
index 45474fc51ce10a6de39289d12781377d1ee57385..b8a3ea53b527b4bbbee38d1fcd786d6b5ef6171a 100644 (file)
@@ -1,3 +1,13 @@
+TORS=".tors :
+  {
+    ___ctors = . ;
+    *(.ctors)
+    ___ctors_end = . ;
+    ___dtors = . ;
+    *(.dtors)
+    ___dtors_end = . ;
+  } > ram"
+
 cat <<EOF
 OUTPUT_FORMAT("${OUTPUT_FORMAT}")
 OUTPUT_ARCH(h8300s)
@@ -24,53 +34,64 @@ MEMORY
 
 SECTIONS                               
 {                                      
-.vectors : {
-       /* Use something like this to place a specific function's address
-          into the vector table.
+.vectors :
+        {
+         /* Use something like this to place a specific function's address
+            into the vector table.
 
-       LONG(ABSOLUTE(_foobar)) */
+            LONG (ABSOLUTE (_foobar)).  */
 
-       *(.vectors)
+         *(.vectors)
        } ${RELOCATING+ > vectors}
-.text :        {                                       
-       *(.rodata)                              
-       *(.text)                                
-       *(.strings)
-       ${RELOCATING+ _etext = . ; }
-       } ${RELOCATING+ > ram}
-.tors : {
-       ___ctors = . ;
-       *(.ctors)
-       ___ctors_end = . ;
-       ___dtors = . ;
-       *(.dtors)
-       ___dtors_end = . ;
+       
+.text :
+       {                                       
+         *(.rodata)                            
+         *(.text)                              
+         *(.strings)
+         ${RELOCATING+ _etext = . ; }
        } ${RELOCATING+ > ram}
-.data : {
-       *(.data)
-       ${RELOCATING+ _edata = . ; }
+       
+       ${CONSTRUCTING+${TORS}}
+       
+.data :
+       {
+         *(.data)
+         ${RELOCATING+ _edata = . ; }
        } ${RELOCATING+ > ram}
-.bss : {
-       ${RELOCATING+ _bss_start = . ;}
-       *(.bss)
-       *(COMMON)
-       ${RELOCATING+ _end = . ;  }
+       
+.bss :
+       {
+         ${RELOCATING+ _bss_start = . ;}
+         *(.bss)
+         *(COMMON)
+         ${RELOCATING+ _end = . ;  }
        } ${RELOCATING+ >ram}
-.stack : {
-       ${RELOCATING+ _stack = . ; }
-       *(.stack)
+       
+.stack :
+       {
+         ${RELOCATING+ _stack = . ; }
+         *(.stack)
        } ${RELOCATING+ > topram}
-.tiny : {
-       *(.tiny)
+       
+.tiny :
+       {
+         *(.tiny)
        } ${RELOCATING+ > tiny}
-.eight : {
-       *(.eight)
+       
+.eight :
+       {
+         *(.eight)
        } ${RELOCATING+ > eight}
-.stab 0 ${RELOCATING+(NOLOAD)} : {
-       [ .stab ]
+       
+.stab 0 ${RELOCATING+(NOLOAD)} :
+       {
+         [ .stab ]
        }
-.stabstr 0 ${RELOCATING+(NOLOAD)} : {
-       [ .stabstr ]
+       
+.stabstr 0 ${RELOCATING+(NOLOAD)} :
+       {
+         [ .stabstr ]
        }
 }
 EOF
index d6a39eec38ce34a997ae440968fa1b51bfaa5fc0..f6e88c61dfcb048bdf3c056b02a8b76a0d72cef7 100644 (file)
@@ -1,3 +1,11 @@
+TORS="
+    ___ctors = . ;
+    *(.ctors)
+    ___ctors_end = . ;
+    ___dtors = . ;
+    *(.dtors)
+    ___dtors_end = . ;"
+
 cat <<EOF
 OUTPUT_FORMAT("${OUTPUT_FORMAT}")
 OUTPUT_ARCH(${ARCH})
@@ -8,52 +16,47 @@ SECTIONS
 {                                      
 .text ${RELOCATING+ 0x0000 } :
        {                                       
-         *(.text)                              
-
-        ${RELOCATING+ _etext = . ; }
+         *(.text)
+         ${RELOCATING+ _etext = . ; }
        }
 
-
 .data  ${RELOCATING+ . } :
        {
-       *(.data)
-       ${RELOCATING+ _edata = . ; }
+         *(.data)
+         ${RELOCATING+ _edata = . ; }
        } 
 
 .rdata  ${RELOCATING+ . } :
        {
-       *(.rdata); 
+         *(.rdata); 
          *(.strings)
-       ___ctors = . ;
-       *(.ctors)
-       ___ctors_end = . ;
-       ___dtors = . ;
-       *(.dtors)
-       ___dtors_end = . ;
-} 
+         
+         ${CONSTRUCTING+${TORS}}
+       } 
 
 .bss  ${RELOCATING+ . } :
        {
-       ${RELOCATING+ __start_bss = . ; }
-       *(.bss)
-       *(COMMON)
-       ${RELOCATING+ _end = . ;  }
+         ${RELOCATING+ __start_bss = . ; }
+         *(.bss)
+         *(COMMON)
+         ${RELOCATING+ _end = . ;  }
        }
 
 .stack  ${RELOCATING+ 0xfff0} :
        {
-       ${RELOCATING+ _stack = . ; }
-       *(.stack)
+         ${RELOCATING+ _stack = . ; }
+         *(.stack)
        } 
 
-  .stab  0 ${RELOCATING+(NOLOAD)} : 
-  {
-    [ .stab ]
-  }
-  .stabstr  0 ${RELOCATING+(NOLOAD)} :
-  {
-    [ .stabstr ]
-  }
+.stab  0 ${RELOCATING+(NOLOAD)} : 
+       {
+         [ .stab ]
+       }
+       
+.stabstr  0 ${RELOCATING+(NOLOAD)} :
+       {
+         [ .stabstr ]
+       }
 }
 EOF
 
index ef5fa2c488ab54497cfbae04c803c3371664d27a..a64eebcfa5e5a8b2dfaf4df06376f4d4625972ec 100644 (file)
@@ -1,3 +1,11 @@
+TORS="
+    ___ctors = . ;
+    *(.ctors)
+    ___ctors_end = . ;
+    ___dtors = . ;
+    *(.dtors)
+    ___dtors_end = . ;"
+
 cat <<EOF
 OUTPUT_FORMAT("${OUTPUT_FORMAT}")
 OUTPUT_ARCH(${ARCH})
@@ -24,13 +32,9 @@ SECTIONS
        {
        *(.rdata); 
          *(.strings)
-       ___ctors = . ;
-       *(.ctors)
-       ___ctors_end = . ;
-       ___dtors = . ;
-       *(.dtors)
-       ___dtors_end = . ;
-} 
+         
+       ${CONSTRUCTING+${TORS}}
+       } 
 
 .bss  ${RELOCATING+ 0x40000} :
        {
index 03880e3f06880deec6dd6e48b9e75dcd819098cd..bc6964999860bd90b1b50cd7a695bf2fccccc60f 100644 (file)
@@ -1,3 +1,11 @@
+TORS="
+    ___ctors = . ;
+    *(.ctors)
+    ___ctors_end = . ;
+    ___dtors = . ;
+    *(.dtors)
+    ___dtors_end = . ;"
+
 cat <<EOF
 OUTPUT_FORMAT("${OUTPUT_FORMAT}")
 OUTPUT_ARCH(${ARCH})
@@ -20,15 +28,12 @@ SECTIONS
        ${RELOCATING+ _edata = . ; }
        } ${RELOCATING+ > ram}
 
-.rdata 0x30000  : {
+.rdata 0x30000  :
+       {
        *(.rdata); 
-       ___ctors = . ;
-       *(.ctors)
-       ___ctors_end = . ;
-       ___dtors = . ;
-       *(.dtors)
-       ___dtors_end = . ;
-}  ${RELOCATING+ > ram}
+         
+       ${CONSTRUCTING+${TORS}}
+       }  ${RELOCATING+ > ram}
 
 .bss  0x40000 :
        {
index 040a4a7c6373ea60086cf1cc560925990c2acbaf..06ce2af6b4609044d80dce22cc27ab27931c6b0a 100644 (file)
@@ -1,3 +1,11 @@
+TORS="
+    ___ctors = . ;
+    *(.ctors)
+    ___ctors_end = . ;
+    ___dtors = . ;
+    *(.dtors)
+    ___dtors_end = . ;"
+
 cat <<EOF
 OUTPUT_FORMAT("${OUTPUT_FORMAT}")
 OUTPUT_ARCH(${ARCH})
@@ -9,50 +17,46 @@ SECTIONS
 .text ${RELOCATING+ 0x10000} :
        {                                       
          *(.text)                              
-        ${RELOCATING+ _etext = . ; }
+         ${RELOCATING+ _etext = . ; }
        }
 
-
 .data  ${RELOCATING+ 0x20000} :
        {
-       *(.data)
-       ${RELOCATING+ _edata = . ; }
+         *(.data)
+         ${RELOCATING+ _edata = . ; }
        } 
 
 .rdata  ${RELOCATING+ . } :
        {
-       *(.rdata); 
+         *(.rdata); 
          *(.strings)
-       ___ctors = . ;
-       *(.ctors)
-       ___ctors_end = . ;
-       ___dtors = . ;
-       *(.dtors)
-       ___dtors_end = . ;
+         
+       ${CONSTRUCTING+${TORS}}
        } 
 
 .bss  ${RELOCATING+ . } :
        {
-       ${RELOCATING+ __start_bss = . ; }
-       *(.bss)
-       *(COMMON)
-       ${RELOCATING+ _end = . ;  }
+         ${RELOCATING+ __start_bss = . ; }
+         *(.bss)
+         *(COMMON)
+         ${RELOCATING+ _end = . ;  }
        }
 
 .stack  ${RELOCATING+ 0x2fff0} :
        {
-       ${RELOCATING+ _stack = . ; }
-       *(.stack)
+         ${RELOCATING+ _stack = . ; }
+         *(.stack)
        } 
 
-  .stab  0 ${RELOCATING+(NOLOAD)} : 
-  {
-    [ .stab ]
-  }
-  .stabstr  0 ${RELOCATING+(NOLOAD)} :
-  {
-    [ .stabstr ]
-  }
+.stab  0 ${RELOCATING+(NOLOAD)} : 
+        {
+          [ .stab ]
+       }
+       
+.stabstr  0 ${RELOCATING+(NOLOAD)} :
+       {
+         [ .stabstr ]
+       }
 }
 EOF
 
index 11615d8afe918de05e2353abc8ad9c06a6af66b3..2567489e1d099ae6cc33ea93fba4fda5ac755aba 100644 (file)
@@ -1,3 +1,11 @@
+TORS="
+    ___ctors = . ;
+    *(.ctors)
+    ___ctors_end = . ;
+    ___dtors = . ;
+    *(.dtors)
+    ___dtors_end = . ;"
+
 cat <<EOF
 OUTPUT_FORMAT("${OUTPUT_FORMAT}")
 OUTPUT_ARCH(${ARCH})
@@ -8,50 +16,47 @@ SECTIONS
 {                                      
 .text ${RELOCATING+ 0x10000 } :
        {                                       
-       *(.text)                                
-       ${RELOCATING+ _etext = . ; }
+         *(.text)                              
+         ${RELOCATING+ _etext = . ; }
        }
 
 .rdata  ${RELOCATING+ 0x20000 } :
        {
-       *(.rdata); 
-       *(.strings)
-       ___ctors = . ;
-       *(.ctors)
-       ___ctors_end = . ;
-       ___dtors = . ;
-       *(.dtors)
-       ___dtors_end = . ;
+         *(.rdata); 
+         *(.strings)
+         
+         ${CONSTRUCTING+${TORS}}
        }
 
 .data  ${RELOCATING+ . } :
        {
-       *(.data)
-       ${RELOCATING+ _edata = . ; }
+         *(.data)
+         ${RELOCATING+ _edata = . ; }
        } 
 
 .bss  ${RELOCATING+ .} :
        {
-       ${RELOCATING+ __start_bss = . ; }
-       *(.bss)
-       *(COMMON)
-       ${RELOCATING+ _end = . ;  }
+         ${RELOCATING+ __start_bss = . ; }
+         *(.bss)
+         *(COMMON)
+         ${RELOCATING+ _end = . ;  }
        }
 
 .stack  ${RELOCATING+ 0x2fff0} :
        {
-       ${RELOCATING+ _stack = . ; }
-       *(.stack)
+         ${RELOCATING+ _stack = . ; }
+         *(.stack)
        } 
 
-  .stab  0 ${RELOCATING+(NOLOAD)} : 
-  {
-    [ .stab ]
-  }
-  .stabstr  0 ${RELOCATING+(NOLOAD)} :
-  {
-    [ .stabstr ]
-  }
+.stab  0 ${RELOCATING+(NOLOAD)} : 
+       {
+          [ .stab ]
+       }
+       
+.stabstr  0 ${RELOCATING+(NOLOAD)} :
+       {
+         [ .stabstr ]
+       }
 }
 EOF
 
index 5c5f9eaa409a69a4b6705fc4cd24999f9c6d5161..90731de8749470af2987944e96e1e1156a252431 100644 (file)
@@ -4,13 +4,13 @@ OUTPUT_FORMAT("elf32-v850", "elf32-v850",
 OUTPUT_ARCH(v850)
 ENTRY(_start)
 SEARCH_DIR(.);
-/*/critters/slug/grossman/install/sun4/v850-elf/lib*/
 SECTIONS
 {
   /* This saves a little space in the ELF file, since the zda starts
      at a higher location that the ELF headers take up.  */
 
-  .zdata ${ZDATA_START_ADDR} : {
+  .zdata ${ZDATA_START_ADDR} :
+  {
        *(.zdata)
        *(.zbss)
        *(reszdata)
@@ -23,13 +23,14 @@ SECTIONS
      section.  Specifically it prevents the zdata
      section from being marked READONLY.  */
 
-  .rozdata ${ROZDATA_START_ADDR} : {
+  .rozdata ${ROZDATA_START_ADDR} :
+  {
        *(.rozdata)
        *(romzdata)
        *(romzbss)
   }
 
-  /* Read-only sections, merged into text segment: */
+  /* Read-only sections, merged into text segment */
   . = ${TEXT_START_ADDR};
   .interp      : { *(.interp) }
   .hash                : { *(.hash) }
@@ -58,9 +59,11 @@ SECTIONS
   .init                : { KEEP (*(.init)) } =0
   .plt         : { *(.plt) }
 
-  .text                : {
+  .text                :
+  {
     *(.text)
     ${RELOCATING+*(.text.*)}
+    
     /* .gnu.warning sections are handled specially by elf32.em.  */
     *(.gnu.warning)
     *(.gnu.linkonce.t*)
@@ -73,45 +76,51 @@ SECTIONS
       It contains a small lookup table at the start followed by the
       code pointed to by entries in the lookup table.  */
 
-  .call_table_data ${CALL_TABLE_START_ADDR} : {
+  .call_table_data ${CALL_TABLE_START_ADDR} :
+  {
     ${RELOCATING+PROVIDE(__ctbp = .);}
     *(.call_table_data)
-  } = 0xff   /* fill gaps with 0xff */
-  .call_table_text : {
+  } = 0xff   /* Fill gaps with 0xff.  */
+  
+  .call_table_text :
+  {
     *(.call_table_text)
   }
 
-  .fini                : { KEEP (*(.fini))    } =0
+  .fini                : { KEEP (*(.fini)) } =0
   .rodata      : { *(.rodata) ${RELOCATING+*(.rodata.*)} *(.gnu.linkonce.r*) }
   .rodata1     : { *(.rodata1) }
 
-  .data                : {
+  .data                :
+  {
     *(.data)
     ${RELOCATING+*(.data.*)}
     *(.gnu.linkonce.d*)
     CONSTRUCTORS
   }
   .data1       : { *(.data1) }
-  .ctors       : {
-    ${RELOCATING+___ctors = .;}
+  .ctors       :
+  {
+    ${CONSTRUCTING+___ctors = .;}
     KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
     KEEP (*(SORT(.ctors.*)))
     KEEP (*crtend(.ctors))
-    ${RELOCATING+___ctors_end = .;}
+    ${CONSTRUCTING+___ctors_end = .;}
   }
-
-  .dtors       : {
-    ${RELOCATING+___dtors = .;}
+  .dtors       :
+  {
+    ${CONSTRUCTING+___dtors = .;}
     KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
     KEEP (*(SORT(.dtors.*)))
     KEEP (*crtend.o(.dtors))
-    ${RELOCATING+___dtors_end = .;}
+    ${CONSTRUCTING+___dtors_end = .;}
   }
 
   .got         : { *(.got.plt) *(.got) }
   .dynamic     : { *(.dynamic) }
 
-  .tdata ${TDATA_START_ADDR} : {
+  .tdata ${TDATA_START_ADDR} :
+  {
        ${RELOCATING+PROVIDE (__ep = .);}
        *(.tbyte)
        *(.tcommon_byte)
@@ -123,21 +132,26 @@ SECTIONS
   /* We want the small data sections together, so single-instruction offsets
      can access them all, and initialized data all before uninitialized, so
      we can shorten the on-disk segment size.  */
-  .sdata ${SDATA_START_ADDR} : {
+     
+  .sdata ${SDATA_START_ADDR} :
+  {
        ${RELOCATING+PROVIDE (__gp = . + 0x8000);}
        *(.sdata)
    }
 
   /* See comment about .rozdata. */
-  .rosdata ${ROSDATA_START_ADDR} : {
+  .rosdata ${ROSDATA_START_ADDR} :
+  {
        *(.rosdata)
   }
 
   /* We place the .sbss data section AFTER the .rosdata section, so that
      it can directly preceed the .bss section.  This allows runtime startup
      code to initialise all the zero-data sections by simply taking the
-     value of '_edata' and zeroing until it reaches '_end'  */
-  .sbss : {
+     value of '_edata' and zeroing until it reaches '_end'.  */
+     
+  .sbss :
+  {
        ${RELOCATING+__sbss_start = .;}
        *(.sbss)
        *(.scommon)
@@ -192,17 +206,17 @@ SECTIONS
   .debug_loc      0    : { *(.debug_loc) }
   .debug_macinfo  0    : { *(.debug_macinfo) }
 
-  /* SGI/MIPS DWARF 2 extensions */
+  /* SGI/MIPS DWARF 2 extensions */
   .debug_weaknames 0   : { *(.debug_weaknames) }
   .debug_funcnames 0   : { *(.debug_funcnames) }
   .debug_typenames 0   : { *(.debug_typenames) }
   .debug_varnames  0   : { *(.debug_varnames) }
 
-  /* User stack */
-  .stack 0x200000      : {
+  /* User stack.  */
+  .stack 0x200000      :
+  {
        ${RELOCATING+__stack = .;}
        *(.stack)
   }
-  /* These must appear regardless of  .  */
 }
 EOF
index f9044952952bf2faf24a1b4492a99889c7906e99..f92d999431089f7edf0b66caac990de34ccfa043 100644 (file)
@@ -1,10 +1,21 @@
+TORS=".tors :
+  {
+    ___ctors = . ;
+    *(.ctors)
+    ___ctors_end = . ;
+    ___dtors = . ;
+    *(.dtors)
+    ___dtors_end = . ;
+  } > ram"
+
 cat <<EOF
 OUTPUT_FORMAT("${OUTPUT_FORMAT}")
 OUTPUT_ARCH(${ARCH})
 
-MEMORY {
+MEMORY
+{
        ram   : o = 0x1000, l = 512k
-       }
+}
 
 SECTIONS                               
 {                                      
@@ -12,44 +23,40 @@ SECTIONS
        {                                       
          *(.text)                              
          *(.strings)
-        ${RELOCATING+ _etext = . ; }
+         ${RELOCATING+ _etext = . ; }
        } ${RELOCATING+ > ram}
 
-
-.tors   : {
-       ___ctors = . ;
-       *(.ctors)
-       ___ctors_end = . ;
-       ___dtors = . ;
-       *(.dtors)
-       ___dtors_end = . ;
-}  ${RELOCATING+ > ram}
+       ${CONSTRUCTING+${TORS}}
 
 .data  :
        {
-       *(.data)
-       ${RELOCATING+ _edata = . ; }
+         *(.data)
+         ${RELOCATING+ _edata = . ; }
        } ${RELOCATING+ > ram}
+       
 .bss  :
        {
-       ${RELOCATING+ _bss_start = . ; }
-       *(.bss)
-       *(COMMON)
-       ${RELOCATING+ _end = . ;  }
+         ${RELOCATING+ _bss_start = . ; }
+         *(.bss)
+         *(COMMON)
+         ${RELOCATING+ _end = . ;  }
        } ${RELOCATING+ >ram}
-.stack ${RELOCATING+ 0x30000 }  : 
+       
+.stack ${RELOCATING+ 0x30000 } :
        {
-       ${RELOCATING+ _stack = . ; }
-       *(.stack)
+         ${RELOCATING+ _stack = . ; }
+         *(.stack)
        } ${RELOCATING+ > ram}
-  .stab  . (NOLOAD) : 
-  {
-    [ .stab ]
-  }
-  .stabstr  . (NOLOAD) :
-  {
-    [ .stabstr ]
-  }
+       
+.stab  . (NOLOAD) :
+       {
+         [ .stab ]
+       }
+       
+.stabstr  . (NOLOAD) :
+       {
+         [ .stabstr ]
+       }
 }
 EOF
 
index 2b87930100e5fa5ce530cf1300b834e28005981e..646c88080a9af035326a8d4d26b8783753c5af6d 100644 (file)
@@ -5,7 +5,8 @@ ENTRY(_start)
 
 SECTIONS                               
 {                                      
-.text ${BIG+ ${RELOCATING+ 0x0000000}} : {                                     
+.text ${BIG+ ${RELOCATING+ 0x0000000}} :
+       { 
          *(.text)                              
          *(.strings)
          *(.rdata)
@@ -13,38 +14,40 @@ SECTIONS
 
 .ctors ${BIG+ ${RELOCATING+ 0x2000000}}  : 
        {
-         ${RELOCATING+ ___ctors = . ;  }
+         ${CONSTRUCTING+ ___ctors = . ;  }
          *(.ctors);
-         ${RELOCATING+ ___ctors_end = . ; }
+         ${CONSTRUCTING+ ___ctors_end = . ; }
          ___dtors = . ;
          *(.dtors);
-         ${RELOCATING+ ___dtors_end = . ; }
+         ${CONSTRUCTING+ ___dtors_end = . ; }
        } 
 
-.data ${BIG+ ${RELOCATING+ 0x3000000}} : {
-       *(.data)
+.data ${BIG+ ${RELOCATING+ 0x3000000}} :
+       {
+          *(.data)
        }
 
 .bss ${BIG+ ${RELOCATING+ 0x4000000}} : 
-  {
-    ${RELOCATING+ __start_bss = . ; }
-    *(.bss);
-    *(COMMON);
-    ${RELOCATING+ __end_bss = . ; }
-  }
-
-.heap ${BIG+ ${RELOCATING+ 0x5000000}} : {
-       ${RELOCATING+ __start_heap = . ; }
-       ${RELOCATING+ . = . + 20k  ; }
-       ${RELOCATING+ __end_heap = . ; }
+       {
+         ${RELOCATING+ __start_bss = . ; }
+         *(.bss);
+         *(COMMON);
+         ${RELOCATING+ __end_bss = . ; }
+       }
+
+.heap ${BIG+ ${RELOCATING+ 0x5000000}} :
+       {
+         ${RELOCATING+ __start_heap = . ; }
+         ${RELOCATING+ . = . + 20k  ; }
+         ${RELOCATING+ __end_heap = . ; }
        } 
 
 .stack ${RELOCATING+ 0xf000 }  : 
        {
-       ${RELOCATING+ _stack = . ; }
-       *(.stack)
-       ${RELOCATING+ __stack_top = . ; }
-       } 
+         ${RELOCATING+ _stack = . ; }
+         *(.stack)
+         ${RELOCATING+ __stack_top = . ; }
+       }
 
 }
 EOF