From 043e9508be0a4ea7ab56fd5716e4c06d609d13be Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 5 Apr 2018 14:44:05 +0100 Subject: [PATCH] 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. --- ld/ChangeLog | 7 +++++++ ld/emulparams/elf64_ia64.sh | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index c6f85fffe65..5ac7f53254d 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,10 @@ +2018-04-05 Nick Clifton + + 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 * deffile.h (def_file_add_import_from): Declare. diff --git a/ld/emulparams/elf64_ia64.sh b/ld/emulparams/elf64_ia64.sh index 7e5e54d391e..02970a6f038 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=" " -- 2.30.2