summaryrefslogtreecommitdiffstats
path: root/bsps/powerpc/haleakala/start/linkcmds
diff options
context:
space:
mode:
Diffstat (limited to 'bsps/powerpc/haleakala/start/linkcmds')
-rw-r--r--bsps/powerpc/haleakala/start/linkcmds34
1 files changed, 13 insertions, 21 deletions
diff --git a/bsps/powerpc/haleakala/start/linkcmds b/bsps/powerpc/haleakala/start/linkcmds
index dad3e5cc76..a35ac875e5 100644
--- a/bsps/powerpc/haleakala/start/linkcmds
+++ b/bsps/powerpc/haleakala/start/linkcmds
@@ -77,27 +77,19 @@ SECTIONS
*(.fini)
*ecrtn.o(.init)
- /*
- * C++ constructors and destructors for static objects.
- * PowerPC EABI does not use crtstuff yet, so we build "old-style"
- * constructor and destructor lists that begin with the list length
- * end terminate with a NULL entry.
- */
-
- PROVIDE (__CTOR_LIST__ = .);
- *crtbegin.o(.ctors)
- *(.ctors)
- *crtend.o(.ctors)
- LONG(0)
- PROVIDE (__CTOR_END__ = .);
-
- PROVIDE (__DTOR_LIST__ = .);
- *crtbegin.o(.dtors)
- *(.dtors)
- *crtend.o(.dtors)
- LONG(0)
- PROVIDE (__DTOR_END__ = .);
-
+ KEEP (*ecrti.o(.ctors))
+ KEEP (*crtbegin.o(.ctors))
+ KEEP (*crtbegin?.o(.ctors))
+ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o *ecrtn.o) .ctors))
+ KEEP (*(SORT(.ctors.*)))
+ KEEP (*(.ctors))
+ KEEP (*ecrti.o(.dtors))
+ KEEP (*crtbegin.o(.dtors))
+ KEEP (*crtbegin?.o(.dtors))
+ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o *ecrtn.o) .dtors))
+ KEEP (*(SORT(.dtors.*)))
+ KEEP (*(.dtors))
+
/* Exception frame info */
*(.eh_frame)
/* Miscellaneous read-only data */