diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2019-05-07 10:17:49 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2019-05-07 10:31:51 +0200 |
commit | 30d61a66d96c1aa3f0eda7d364c3900c80db3985 (patch) | |
tree | 621c96186542b4c9d8faede22ce925211c65ebb1 /bsps | |
parent | bsps/powerpc: Fix C++ exception handling (diff) | |
download | rtems-30d61a66d96c1aa3f0eda7d364c3900c80db3985.tar.bz2 |
bsps/powerpc: Fix constructors with priority
Update #3339.
Diffstat (limited to 'bsps')
-rw-r--r-- | bsps/powerpc/shared/start/linkcmds.share | 27 |
1 files changed, 8 insertions, 19 deletions
diff --git a/bsps/powerpc/shared/start/linkcmds.share b/bsps/powerpc/shared/start/linkcmds.share index 365a84953f..deefbe2186 100644 --- a/bsps/powerpc/shared/start/linkcmds.share +++ b/bsps/powerpc/shared/start/linkcmds.share @@ -182,30 +182,19 @@ SECTIONS .got2 : { *(.got2) } > CODE .dynamic : { *(.dynamic) } > CODE - .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 - 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)) } > CODE - .dtors : - { + .dtors : { + KEEP (*ecrti.o(.dtors)) KEEP (*crtbegin.o(.dtors)) - KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors)) + KEEP (*crtbegin?.o(.dtors)) + KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o *ecrtn.o) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } > CODE |