From aa785360cfa271505394080c8e367017782ca57a Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 13 Dec 2016 17:05:20 +0000 Subject: [PATCH] PE linker script improvements. PR ld/19254 * scripttempl/pe.sc (.fini): KEEP this section. (.gcc_except_table): Likewise. (.pdata): Also accept .pdata*. --- ld/ChangeLog | 7 +++++++ ld/scripttempl/pe.sc | 6 +++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index 08ce016..e910acc 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -30,6 +30,13 @@ * testsuite/ld-aarch64/limit-b.d: Likewise. * testsuite/ld-aarch64/limit-bl.d: Likewise. +2016-12-13 Awson + + PR ld/19254 + * scripttempl/pe.sc (.fini): KEEP this section. + (.gcc_except_table): Likewise. + (.pdata): Also accept .pdata*. + 2016-12-13 Alan Modra * testsuite/ld-elf/nobits-1.d: Remove xfail for hppa64. diff --git a/ld/scripttempl/pe.sc b/ld/scripttempl/pe.sc index 59e4e89..cef05c5 100644 --- a/ld/scripttempl/pe.sc +++ b/ld/scripttempl/pe.sc @@ -96,12 +96,12 @@ SECTIONS LONG (-1);*(.ctors); *(.ctor); *(SORT(.ctors.*)); LONG (0); } ${CONSTRUCTING+ ___DTOR_LIST__ = .; __DTOR_LIST__ = . ; LONG (-1); *(.dtors); *(.dtor); *(SORT(.dtors.*)); LONG (0); } - ${RELOCATING+ *(.fini)} + ${RELOCATING+ KEEP (*(.fini))} /* ??? Why is .gcc_exc here? */ ${RELOCATING+ *(.gcc_exc)} ${RELOCATING+PROVIDE (etext = .);} ${RELOCATING+PROVIDE (_etext = .);} - ${RELOCATING+ *(.gcc_except_table)} + ${RELOCATING+ KEEP (*(.gcc_except_table))} } /* The Cygwin32 library uses a section to avoid copying certain data @@ -141,7 +141,7 @@ SECTIONS .pdata ${RELOCATING+BLOCK(__section_alignment__)} : { - KEEP(*(.pdata)) + KEEP(*(.pdata*)) } .bss ${RELOCATING+BLOCK(__section_alignment__)} : -- 2.7.4