summaryrefslogtreecommitdiffstats
path: root/bsps
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2019-05-07 10:17:49 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2019-05-07 10:31:51 +0200
commit30d61a66d96c1aa3f0eda7d364c3900c80db3985 (patch)
tree621c96186542b4c9d8faede22ce925211c65ebb1 /bsps
parentbsps/powerpc: Fix C++ exception handling (diff)
downloadrtems-30d61a66d96c1aa3f0eda7d364c3900c80db3985.tar.bz2
bsps/powerpc: Fix constructors with priority
Update #3339.
Diffstat (limited to 'bsps')
-rw-r--r--bsps/powerpc/shared/start/linkcmds.share27
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