From: Alan Modra Date: Mon, 20 Feb 2017 02:54:28 +0000 (+1030) Subject: PE ld -r script fixes X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c48cfeddf730d181648182097dbb179dc82c5b58;p=binutils-gdb.git PE ld -r script fixes PR 15041 * scripttempl/pe.sc: Don't combine sections for ld -r. * scripttempl/pep.sc: Likewise. --- diff --git a/ld/ChangeLog b/ld/ChangeLog index c008e60ec05..1da0e991ff2 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,9 @@ +2017-02-17 Alan Modra + + PR 15041 + * scripttempl/pe.sc: Don't combine sections for ld -r. + * scripttempl/pep.sc: Likewise. + 2017-02-17 Alan Modra PR 21099 diff --git a/ld/scripttempl/pe.sc b/ld/scripttempl/pe.sc index ef9e76cd3a6..9981848c1cf 100644 --- a/ld/scripttempl/pe.sc +++ b/ld/scripttempl/pe.sc @@ -60,7 +60,12 @@ else R_IDATA234= R_IDATA5= R_IDATA67= - R_CRT= + R_CRT_XC= + R_CRT_XI= + R_CRT_XL= + R_CRT_XP= + R_CRT_XT= + R_TLS='*(.tls)' R_RSRC='*(.rsrc)' fi @@ -90,8 +95,8 @@ SECTIONS ${R_TEXT} ${RELOCATING+ *(.text.*)} ${RELOCATING+ *(.gnu.linkonce.t.*)} - *(.glue_7t) - *(.glue_7) + ${RELOCATING+*(.glue_7t)} + ${RELOCATING+*(.glue_7)} ${CONSTRUCTING+ ___CTOR_LIST__ = .; __CTOR_LIST__ = . ; LONG (-1);*(.ctors); *(.ctor); *(SORT(.ctors.*)); LONG (0); } ${CONSTRUCTING+ ___DTOR_LIST__ = .; __DTOR_LIST__ = . ; @@ -114,7 +119,7 @@ SECTIONS { ${RELOCATING+__data_start__ = . ;} *(.data) - *(.data2) + ${RELOCATING+*(.data2)} ${R_DATA} KEEP(*(.jcr)) ${RELOCATING+__data_end__ = . ;} @@ -125,7 +130,7 @@ SECTIONS { ${R_RDATA} ${RELOCATING+__rt_psrelocs_start = .;} - KEEP(*(.rdata_runtime_pseudo_reloc)) + ${RELOCATING+KEEP(*(.rdata_runtime_pseudo_reloc))} ${RELOCATING+__rt_psrelocs_end = .;} } ${RELOCATING+__rt_psrelocs_size = __rt_psrelocs_end - __rt_psrelocs_start;} @@ -136,12 +141,12 @@ SECTIONS .eh_frame ${RELOCATING+BLOCK(__section_alignment__)} : { - KEEP(*(.eh_frame*)) + KEEP(*(.eh_frame${RELOCATING+*})) } .pdata ${RELOCATING+BLOCK(__section_alignment__)} : { - KEEP(*(.pdata*)) + KEEP(*(.pdata${RELOCATING+*})) } .bss ${RELOCATING+BLOCK(__section_alignment__)} : diff --git a/ld/scripttempl/pep.sc b/ld/scripttempl/pep.sc index a972942c0f0..16dc57f067d 100644 --- a/ld/scripttempl/pep.sc +++ b/ld/scripttempl/pep.sc @@ -60,7 +60,12 @@ else R_IDATA234= R_IDATA5= R_IDATA67= - R_CRT= + R_CRT_XC= + R_CRT_XI= + R_CRT_XL= + R_CRT_XP= + R_CRT_XT= + R_TLS='*(.tls)' R_RSRC='*(.rsrc)' fi @@ -90,8 +95,8 @@ SECTIONS ${R_TEXT} ${RELOCATING+ *(.text.*)} ${RELOCATING+ *(.gnu.linkonce.t.*)} - *(.glue_7t) - *(.glue_7) + ${RELOCATING+*(.glue_7t)} + ${RELOCATING+*(.glue_7)} ${CONSTRUCTING+. = ALIGN(8);} ${CONSTRUCTING+ ___CTOR_LIST__ = .; __CTOR_LIST__ = . ; LONG (-1); LONG (-1); @@ -122,7 +127,7 @@ SECTIONS { ${RELOCATING+__data_start__ = . ;} *(.data) - *(.data2) + ${RELOCATING+*(.data2)} ${R_DATA} KEEP(*(.jcr)) ${RELOCATING+__data_end__ = . ;} @@ -133,7 +138,7 @@ SECTIONS { ${R_RDATA} ${RELOCATING+__rt_psrelocs_start = .;} - KEEP(*(.rdata_runtime_pseudo_reloc)) + ${RELOCATING+KEEP(*(.rdata_runtime_pseudo_reloc))} ${RELOCATING+__rt_psrelocs_end = .;} } ${RELOCATING+__rt_psrelocs_size = __rt_psrelocs_end - __rt_psrelocs_start;} @@ -144,17 +149,17 @@ SECTIONS .eh_frame ${RELOCATING+BLOCK(__section_alignment__)} : { - KEEP (*(.eh_frame*)) + KEEP (*(.eh_frame${RELOCATING+*})) } .pdata ${RELOCATING+BLOCK(__section_alignment__)} : { - KEEP(*(.pdata*)) + KEEP(*(.pdata${RELOCATING+*})) } .xdata ${RELOCATING+BLOCK(__section_alignment__)} : { - KEEP(*(.xdata*)) + KEEP(*(.xdata${RELOCATING+*})) } .bss ${RELOCATING+BLOCK(__section_alignment__)} :