diff options
author | Alan Modra <amodra@gmail.com> | 2017-02-20 13:24:28 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2017-02-21 00:14:03 +1030 |
commit | c48cfeddf730d181648182097dbb179dc82c5b58 (patch) | |
tree | d84d30b693626bd02306247e68cfe0afc6603a91 /ld/scripttempl | |
parent | 1b076f2540e51055a7c6a4ee8fdfc604b54fb70a (diff) | |
download | gdb-c48cfeddf730d181648182097dbb179dc82c5b58.zip gdb-c48cfeddf730d181648182097dbb179dc82c5b58.tar.gz gdb-c48cfeddf730d181648182097dbb179dc82c5b58.tar.bz2 |
PE ld -r script fixes
PR 15041
* scripttempl/pe.sc: Don't combine sections for ld -r.
* scripttempl/pep.sc: Likewise.
Diffstat (limited to 'ld/scripttempl')
-rw-r--r-- | ld/scripttempl/pe.sc | 19 | ||||
-rw-r--r-- | ld/scripttempl/pep.sc | 21 |
2 files changed, 25 insertions, 15 deletions
diff --git a/ld/scripttempl/pe.sc b/ld/scripttempl/pe.sc index ef9e76c..9981848 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 a972942..16dc57f 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__)} : |