bsps/powerpc: Fix constructors with priority

Update #3339.
This commit is contained in:
Sebastian Huber
2019-05-07 10:17:49 +02:00
parent f6895c6d55
commit 30d61a66d9

View File

@@ -182,30 +182,19 @@ SECTIONS
.got2 : { *(.got2) } > CODE .got2 : { *(.got2) } > CODE
.dynamic : { *(.dynamic) } > CODE .dynamic : { *(.dynamic) } > CODE
.ctors : .ctors : {
{ KEEP (*ecrti.o(.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. */
KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin.o(.ctors))
/* We don't want to include the .ctor section from KEEP (*crtbegin?.o(.ctors))
from the crtend.o file until after the sorted ctors. KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o *ecrtn.o) .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 (*(SORT(.ctors.*))) KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors)) KEEP (*(.ctors))
} > CODE } > CODE
.dtors : .dtors : {
{ KEEP (*ecrti.o(.dtors))
KEEP (*crtbegin.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 (*(SORT(.dtors.*)))
KEEP (*(.dtors)) KEEP (*(.dtors))
} > CODE } > CODE