OSDN Git Service

2007-04-27 Kazu Hirata <kazu@codesourcery.com>
authorjjohnstn <jjohnstn>
Fri, 27 Apr 2007 16:00:45 +0000 (16:00 +0000)
committerjjohnstn <jjohnstn>
Fri, 27 Apr 2007 16:00:45 +0000 (16:00 +0000)
        * libgloss/m68k/fido.sc: Catch .text.*, .rodata.*, .data.*,
        .bss.*, .ctor.*, and .dtor.*.  Wrap ctor/dtor-related sections
        with KEEP.

libgloss/ChangeLog
libgloss/m68k/fido.sc

index a80ed95..a77a66b 100644 (file)
@@ -1,3 +1,9 @@
+2007-04-27  Kazu Hirata  <kazu@codesourcery.com>
+
+       * libgloss/m68k/fido.sc: Catch .text.*, .rodata.*, .data.*,
+       .bss.*, .ctor.*, and .dtor.*.  Wrap ctor/dtor-related sections
+       with KEEP.
+
 2007-04-04  Patrick Mansfield <patmans@us.ibm.com>
  
        * spu/syscalls.c: Rename _send_to_ppe __send_to_ppe, and set errno
index 07aa6e3..99c2014 100644 (file)
@@ -142,21 +142,22 @@ SECTIONS {
   /* Text section.  */
   .text :
   {
-    *(.text .gnu.linkonce.t.*)
+    *(.text .text.*)
+    *(.gnu.linkonce.t.*)
+
     . = ALIGN(0x4);
-     __CTOR_LIST__ = .;
-    ___CTOR_LIST__ = .;
-    LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)
-    *(.ctors)
-    LONG(0)
-    __CTOR_END__ = .;
-    __DTOR_LIST__ = .;
-    ___DTOR_LIST__ = .;
-    LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)
-    *(.dtors)
-     LONG(0)
-    __DTOR_END__ = .;
-    *(.rodata* .gnu.linkonce.r.*)
+    /* These are for running static constructors and destructors under ELF.  */
+    KEEP (*crtbegin.o(.ctors))
+    KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
+    KEEP (*(SORT(.ctors.*)))
+    KEEP (*crtend.o(.ctors))
+    KEEP (*crtbegin.o(.dtors))
+    KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
+    KEEP (*(SORT(.dtors.*)))
+    KEEP (*crtend.o(.dtors))
+
+    *(.rodata .rodata.*)
+    *(.gnu.linkonce.r.*)
     *(.gcc_except_table) 
     *(.eh_frame)
 
@@ -188,7 +189,8 @@ SECTIONS {
     _data = .;
     KEEP (*(.jcr));
     *(.shdata);
-    *(.data .gnu.linkonce.d.*);
+    *(.data .data.*)
+    *(.gnu.linkonce.d.*)
     _edata_cksum = .;
     *(checksum);
     _edata = .;
@@ -200,7 +202,8 @@ SECTIONS {
     . = ALIGN(0x4);
     __bss_start = . ;
     *(.shbss)
-    *(.bss .gnu.linkonce.b.*)
+    *(.bss .bss.*)
+    *(.gnu.linkonce.b.*)
     *(COMMON)
     _end =  ALIGN (0x8);
     __end = _end;