diff --git a/ld/ChangeLog b/ld/ChangeLog index 08ce0164646..e910acc8cec 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 59e4e89eb84..cef05c56f73 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__)} :