|
# --- SDE-COPYRIGHT-NOTE-BEGIN ---
|
|
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
|
|
#
|
|
# Filename: package/.../binutils/binutils-ld-fix-static-linking.patch
|
|
# Copyright (C) 2015 The OpenSDE Project
|
|
#
|
|
# More information can be found in the files COPYING and README.
|
|
#
|
|
# This patch file is dual-licensed. It is available under the license the
|
|
# patched project is licensed under, as long as it is an OpenSource license
|
|
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
|
|
# of the GNU General Public License as published by the Free Software
|
|
# Foundation; either version 2 of the License, or (at your option) any later
|
|
# version.
|
|
# --- SDE-COPYRIGHT-NOTE-END ---
|
|
|
|
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}}
|