1c0ff6aa23
Later, the aports folder will probably get split up in its own repository. But right now this is simply convenient.
46 lines
2.2 KiB
Diff
46 lines
2.2 KiB
Diff
This fixes static linking for our hardened toolchain
|
|
diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc
|
|
index e8126cb..9532bfb 100644
|
|
--- a/ld/scripttempl/elf.sc
|
|
+++ b/ld/scripttempl/elf.sc
|
|
@@ -235,8 +235,8 @@ test "${LARGE_SECTIONS}" = "yes" && LARGE_SECTIONS="
|
|
if test "${ENABLE_INITFINI_ARRAY}" = "yes"; then
|
|
SORT_INIT_ARRAY="KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))"
|
|
SORT_FINI_ARRAY="KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*)))"
|
|
- CTORS_IN_INIT_ARRAY="EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .ctors"
|
|
- DTORS_IN_FINI_ARRAY="EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .dtors"
|
|
+ CTORS_IN_INIT_ARRAY="EXCLUDE_FILE (*crtbegin*.o *crtend*.o $OTHER_EXCLUDE_FILES) .ctors"
|
|
+ DTORS_IN_FINI_ARRAY="EXCLUDE_FILE (*crtbegin*.o *crtend*.o $OTHER_EXCLUDE_FILES) .dtors"
|
|
else
|
|
SORT_INIT_ARRAY="KEEP (*(SORT(.init_array.*)))"
|
|
SORT_FINI_ARRAY="KEEP (*(SORT(.fini_array.*)))"
|
|
@@ -270,15 +270,14 @@ CTOR=".ctors ${CONSTRUCTING-0} :
|
|
doesn't matter which directory crtbegin.o
|
|
is in. */
|
|
|
|
- KEEP (*crtbegin.o(.ctors))
|
|
- KEEP (*crtbegin?.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 *crtend?.o $OTHER_EXCLUDE_FILES) .ctors))
|
|
+ KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .ctors))
|
|
KEEP (*(SORT(.ctors.*)))
|
|
KEEP (*(.ctors))
|
|
${CONSTRUCTING+${CTOR_END}}
|
|
@@ -286,9 +285,8 @@ CTOR=".ctors ${CONSTRUCTING-0} :
|
|
DTOR=".dtors ${CONSTRUCTING-0} :
|
|
{
|
|
${CONSTRUCTING+${DTOR_START}}
|
|
- KEEP (*crtbegin.o(.dtors))
|
|
- KEEP (*crtbegin?.o(.dtors))
|
|
- KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .dtors))
|
|
+ KEEP (*crtbegin*.o(.dtors))
|
|
+ KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .dtors))
|
|
KEEP (*(SORT(.dtors.*)))
|
|
KEEP (*(.dtors))
|
|
${CONSTRUCTING+${DTOR_END}}
|