diff options
Diffstat (limited to 'bsps/powerpc/virtex5/start/linkcmds')
-rw-r--r-- | bsps/powerpc/virtex5/start/linkcmds | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/bsps/powerpc/virtex5/start/linkcmds b/bsps/powerpc/virtex5/start/linkcmds index 9a5edf7643..7bb0eda2ab 100644 --- a/bsps/powerpc/virtex5/start/linkcmds +++ b/bsps/powerpc/virtex5/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 |