summaryrefslogtreecommitdiffstats
path: root/bsps/powerpc/virtex4/start/linkcmds
diff options
context:
space:
mode:
Diffstat (limited to 'bsps/powerpc/virtex4/start/linkcmds')
-rw-r--r--bsps/powerpc/virtex4/start/linkcmds27
1 files changed, 9 insertions, 18 deletions
diff --git a/bsps/powerpc/virtex4/start/linkcmds b/bsps/powerpc/virtex4/start/linkcmds
index d46df2f53e..097beb60c2 100644
--- a/bsps/powerpc/virtex4/start/linkcmds
+++ b/bsps/powerpc/virtex4/start/linkcmds
@@ -161,29 +161,20 @@ SECTIONS
.dynamic : { *(.dynamic) } > RAM
- .ctors : { /* gcc uses crtbegin.o to find the start of
- * the constructors, so we make sure it is
- * first. Because this is a wildcard, it
- * doesn't matter if the user does not
- * actually link against crtbegin.o; the
- * linker won't look for a file to match a
- * wildcard. The wildcard also means that it
- * doesn't matter which directory crtbegin.o
- * is in.
- */
+ .ctors : {
+ KEEP (*ecrti.o(.ctors))
KEEP (*crtbegin.o(.ctors))
- /* We don't want to include the .ctor section from
- * the crtend.o file until after the sorted ctors.
- * The .ctor section from the crtend file contains the
- * end of ctors marker and it must be last.
- */
- KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors))
+ KEEP (*crtbegin?.o(.ctors))
+ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o *ecrtn.o) .ctors))
KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors))
} > RAM
- .dtors : { KEEP (*crtbegin.o(.dtors))
- KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors))
+ .dtors : {
+ 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))
} > RAM