aboutsummaryrefslogtreecommitdiff
path: root/ld/scripttempl
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2017-02-20 13:24:28 +1030
committerAlan Modra <amodra@gmail.com>2017-02-21 00:14:03 +1030
commitc48cfeddf730d181648182097dbb179dc82c5b58 (patch)
treed84d30b693626bd02306247e68cfe0afc6603a91 /ld/scripttempl
parent1b076f2540e51055a7c6a4ee8fdfc604b54fb70a (diff)
downloadgdb-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.sc19
-rw-r--r--ld/scripttempl/pep.sc21
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__)} :