mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-12-27 20:31:40 +01:00
The linker script mistakenly assumess crtbegin, or crtbegin? for the gcc crt glue filename. On PIE system it is called crtbeginTS which would not match the filter. Fixes #855.
38 lines
1.8 KiB
Diff
38 lines
1.8 KiB
Diff
Index: binutils-2.22/ld/scripttempl/elf.sc
|
|
===================================================================
|
|
--- binutils-2.22.orig/ld/scripttempl/elf.sc 2011-04-11 18:38:12.000000000 +0300
|
|
+++ binutils-2.22/ld/scripttempl/elf.sc 2011-12-09 09:11:24.000000000 +0200
|
|
@@ -225,8 +225,8 @@
|
|
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="KEEP (*(EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .ctors))"
|
|
- DTORS_IN_FINI_ARRAY="KEEP (*(EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .dtors))"
|
|
+ CTORS_IN_INIT_ARRAY="KEEP (*(EXCLUDE_FILE (*crtbegin*.o *crtend*.o $OTHER_EXCLUDE_FILES) .ctors))"
|
|
+ DTORS_IN_FINI_ARRAY="KEEP (*(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.*)))"
|
|
@@ -262,8 +262,7 @@
|
|
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.
|
|
@@ -278,9 +277,8 @@
|
|
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}}
|