aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2018-04-05 14:44:05 +0100
committerNick Clifton <nickc@redhat.com>2018-04-05 14:44:05 +0100
commit043e9508be0a4ea7ab56fd5716e4c06d609d13be (patch)
tree6adbcaa75e8c1a54f0ab605fbb4e3182335d1ddb /ld
parent8a76bd3ba43205b76226f41fe73e2840c2444742 (diff)
downloadfsf-binutils-gdb-043e9508be0a4ea7ab56fd5716e4c06d609d13be.zip
fsf-binutils-gdb-043e9508be0a4ea7ab56fd5716e4c06d609d13be.tar.gz
fsf-binutils-gdb-043e9508be0a4ea7ab56fd5716e4c06d609d13be.tar.bz2
Stop the IA64 linker from removing unwind tables when garbage collecting.
PR 23030 * emulparams/elf64_ia64.sh (OTHER_READONLY_SECTIONS): Make sure that the .IA_64.unwind_info and .IA_64.unwind sections are not subject to garbage collection.
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog7
-rw-r--r--ld/emulparams/elf64_ia64.sh4
2 files changed, 9 insertions, 2 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index c6f85ff..5ac7f53 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,10 @@
+2018-04-05 Nick Clifton <nickc@redhat.com>
+
+ PR 23030
+ * emulparams/elf64_ia64.sh (OTHER_READONLY_SECTIONS): Make sure
+ that the .IA_64.unwind_info and .IA_64.unwind sections are not
+ subject to garbage collection.
+
2018-04-04 Eric Botcazou <ebotcazou@adacore.com>
* deffile.h (def_file_add_import_from): Declare.
diff --git a/ld/emulparams/elf64_ia64.sh b/ld/emulparams/elf64_ia64.sh
index 7e5e54d..02970a6 100644
--- a/ld/emulparams/elf64_ia64.sh
+++ b/ld/emulparams/elf64_ia64.sh
@@ -31,8 +31,8 @@ test -n "$CREATE_PIE" && OTHER_READWRITE_SECTIONS="
test -n "$CREATE_PIE" && OTHER_GOT_RELOC_SECTIONS="
.rela.opd ${RELOCATING-0} : { *(.rela.opd) }"
OTHER_READONLY_SECTIONS="${OTHER_READONLY_SECTIONS}
- .IA_64.unwind_info ${RELOCATING-0} : { *(.IA_64.unwind_info${RELOCATING+* .gnu.linkonce.ia64unwi.*}) }
- .IA_64.unwind ${RELOCATING-0} : { *(.IA_64.unwind${RELOCATING+* .gnu.linkonce.ia64unw.*}) }"
+ .IA_64.unwind_info ${RELOCATING-0} : { KEEP(*(.IA_64.unwind_info${RELOCATING+* .gnu.linkonce.ia64unwi.*})) }
+ .IA_64.unwind ${RELOCATING-0} : { KEEP(*(.IA_64.unwind${RELOCATING+* .gnu.linkonce.ia64unw.*})) }"
# Intel C++ compiler, prior to 9.0, puts small data in .ctors and
# .dtors. They have to be next to .sbss/.sbss2/.sdata/.sdata2.
SMALL_DATA_CTOR=" "