Don't hardcode .got.plt into DATA_SEGMENT_RELRO_END evaluation
ld/ PR ld/14215 * ldexp.c (fold_name <SIZEOF, ALIGNOF>): Allow forward section references. * emulparams/elf32_x86_64.sh (SEPARATE_GOTPLT): Depend on size of .got.plt. * emulparams/elf32mb_linux.sh (SEPARATE_GOTPLT): Likewise. * emulparams/elf32tilegx.sh (SEPARATE_GOTPLT): Likewise. * emulparams/elf32tilepro.sh (SEPARATE_GOTPLT): Likewise. * emulparams/elf64tilegx.sh (SEPARATE_GOTPLT): Likewise. * emulparams/elf_i386.sh (SEPARATE_GOTPLT): Likewise. * emulparams/elf_k1om.sh (SEPARATE_GOTPLT): Likewise. * emulparams/elf_l1om.sh (SEPARATE_GOTPLT): Likewise. * emulparams/elf_x86_64.sh (SEPARATE_GOTPLT): Likewise. ld/testsuite/ PR ld/14215 * ld-i386/i386.exp: Run pr14215. * ld-x86-64/x86-64.exp: Likewise. * ld-i386/pr14215.d: New file. * ld-i386/pr14215.s: Likewise. * ld-x86-64/pr14215.d: Likewise. * ld-x86-64/pr14215.s: Likewise.
This commit is contained in:
parent
2e81047f91
commit
17d6eea5d5
18 changed files with 67 additions and 10 deletions
16
ld/ChangeLog
16
ld/ChangeLog
|
@ -1,3 +1,19 @@
|
|||
2012-06-11 Alan Modra <amodra@gmail.com>
|
||||
|
||||
PR ld/14215
|
||||
* ldexp.c (fold_name <SIZEOF, ALIGNOF>): Allow forward section
|
||||
references.
|
||||
* emulparams/elf32_x86_64.sh (SEPARATE_GOTPLT): Depend on size of
|
||||
.got.plt.
|
||||
* emulparams/elf32mb_linux.sh (SEPARATE_GOTPLT): Likewise.
|
||||
* emulparams/elf32tilegx.sh (SEPARATE_GOTPLT): Likewise.
|
||||
* emulparams/elf32tilepro.sh (SEPARATE_GOTPLT): Likewise.
|
||||
* emulparams/elf64tilegx.sh (SEPARATE_GOTPLT): Likewise.
|
||||
* emulparams/elf_i386.sh (SEPARATE_GOTPLT): Likewise.
|
||||
* emulparams/elf_k1om.sh (SEPARATE_GOTPLT): Likewise.
|
||||
* emulparams/elf_l1om.sh (SEPARATE_GOTPLT): Likewise.
|
||||
* emulparams/elf_x86_64.sh (SEPARATE_GOTPLT): Likewise.
|
||||
|
||||
2012-06-07 Georg-Johann Lay <avr@gjlay.de>
|
||||
|
||||
PR 13697
|
||||
|
|
|
@ -13,7 +13,7 @@ GENERATE_SHLIB_SCRIPT=yes
|
|||
GENERATE_PIE_SCRIPT=yes
|
||||
NO_SMALL_DATA=yes
|
||||
LARGE_SECTIONS=yes
|
||||
SEPARATE_GOTPLT=24
|
||||
SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 24 ? 24 : 0"
|
||||
IREL_IN_PLT=
|
||||
|
||||
if [ "x${host}" = "x${target}" ]; then
|
||||
|
|
|
@ -13,5 +13,5 @@ TEMPLATE_NAME=elf32
|
|||
GENERATE_SHLIB_SCRIPT=yes
|
||||
GENERATE_PIE_SCRIPT=yes
|
||||
NO_SMALL_DATA=yes
|
||||
SEPARATE_GOTPLT=12
|
||||
SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 12 ? 12 : 0"
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ GENERATE_SHLIB_SCRIPT=yes
|
|||
GENERATE_COMBRELOC_SCRIPT=yes
|
||||
GENERATE_PIE_SCRIPT=yes
|
||||
NO_SMALL_DATA=yes
|
||||
SEPARATE_GOTPLT=8
|
||||
SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 8 ? 8 : 0"
|
||||
# Look for 32 bit target libraries in /lib32, /usr/lib32 etc., first.
|
||||
LIBPATH_SUFFIX=32
|
||||
OTHER_SECTIONS="
|
||||
|
|
|
@ -17,7 +17,7 @@ GENERATE_SHLIB_SCRIPT=yes
|
|||
GENERATE_COMBRELOC_SCRIPT=yes
|
||||
GENERATE_PIE_SCRIPT=yes
|
||||
NO_SMALL_DATA=yes
|
||||
SEPARATE_GOTPLT=8
|
||||
SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 8 ? 8 : 0"
|
||||
OTHER_SECTIONS="
|
||||
/* TILEPRO architecture interrupt vector areas */
|
||||
.intrpt0 0xfc000000 : { KEEP(*(.intrpt0)) }
|
||||
|
|
|
@ -17,7 +17,7 @@ GENERATE_SHLIB_SCRIPT=yes
|
|||
GENERATE_COMBRELOC_SCRIPT=yes
|
||||
GENERATE_PIE_SCRIPT=yes
|
||||
NO_SMALL_DATA=yes
|
||||
SEPARATE_GOTPLT=16
|
||||
SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 16 ? 16 : 0"
|
||||
OTHER_SECTIONS="
|
||||
/* TILE architecture interrupt vector areas */
|
||||
.intrpt0 0xfffffffffc000000 : { KEEP(*(.intrpt0)) }
|
||||
|
|
|
@ -11,5 +11,5 @@ TEMPLATE_NAME=elf32
|
|||
GENERATE_SHLIB_SCRIPT=yes
|
||||
GENERATE_PIE_SCRIPT=yes
|
||||
NO_SMALL_DATA=yes
|
||||
SEPARATE_GOTPLT=12
|
||||
SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 12 ? 12 : 0"
|
||||
IREL_IN_PLT=
|
||||
|
|
|
@ -14,7 +14,7 @@ GENERATE_SHLIB_SCRIPT=yes
|
|||
GENERATE_PIE_SCRIPT=yes
|
||||
NO_SMALL_DATA=yes
|
||||
LARGE_SECTIONS=yes
|
||||
SEPARATE_GOTPLT=24
|
||||
SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 24 ? 24 : 0"
|
||||
|
||||
if [ "x${host}" = "x${target}" ]; then
|
||||
case " $EMULATION_LIBPATH " in
|
||||
|
|
|
@ -14,7 +14,7 @@ GENERATE_SHLIB_SCRIPT=yes
|
|||
GENERATE_PIE_SCRIPT=yes
|
||||
NO_SMALL_DATA=yes
|
||||
LARGE_SECTIONS=yes
|
||||
SEPARATE_GOTPLT=24
|
||||
SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 24 ? 24 : 0"
|
||||
|
||||
if [ "x${host}" = "x${target}" ]; then
|
||||
case " $EMULATION_LIBPATH " in
|
||||
|
|
|
@ -13,7 +13,7 @@ GENERATE_SHLIB_SCRIPT=yes
|
|||
GENERATE_PIE_SCRIPT=yes
|
||||
NO_SMALL_DATA=yes
|
||||
LARGE_SECTIONS=yes
|
||||
SEPARATE_GOTPLT=24
|
||||
SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 24 ? 24 : 0"
|
||||
IREL_IN_PLT=
|
||||
|
||||
if [ "x${host}" = "x${target}" ]; then
|
||||
|
|
|
@ -681,7 +681,7 @@ fold_name (etree_type *tree)
|
|||
tree, tree->name.name);
|
||||
new_number (0);
|
||||
}
|
||||
else if (os->processed_vma)
|
||||
else if (os->bfd_section != NULL)
|
||||
{
|
||||
bfd_vma val;
|
||||
|
||||
|
@ -693,6 +693,8 @@ fold_name (etree_type *tree)
|
|||
|
||||
new_number (val);
|
||||
}
|
||||
else
|
||||
new_number (0);
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
|
@ -1,3 +1,14 @@
|
|||
2012-06-11 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR ld/14215
|
||||
* ld-i386/i386.exp: Run pr14215.
|
||||
* ld-x86-64/x86-64.exp: Likewise.
|
||||
|
||||
* ld-i386/pr14215.d: New file.
|
||||
* ld-i386/pr14215.s: Likewise.
|
||||
* ld-x86-64/pr14215.d: Likewise.
|
||||
* ld-x86-64/pr14215.s: Likewise.
|
||||
|
||||
2012-06-06 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* ld-alpha/tlsbin.rd, * ld-alpha/tlsbinr.rd, * ld-alpha/tlspic.rd,
|
||||
|
|
|
@ -245,3 +245,4 @@ if { !([istarget "i?86-*-linux*"]
|
|||
run_dump_test "compressed1"
|
||||
run_dump_test "pr12627"
|
||||
run_dump_test "pr13302"
|
||||
run_dump_test "pr14215"
|
||||
|
|
9
ld/testsuite/ld-i386/pr14215.d
Normal file
9
ld/testsuite/ld-i386/pr14215.d
Normal file
|
@ -0,0 +1,9 @@
|
|||
#name: PR ld/14215
|
||||
#as: --32
|
||||
#ld: -melf_i386 -shared -z relro
|
||||
#readelf: -l --wide
|
||||
|
||||
#failif
|
||||
#...
|
||||
03 .dynamic .got .data
|
||||
#...
|
4
ld/testsuite/ld-i386/pr14215.s
Normal file
4
ld/testsuite/ld-i386/pr14215.s
Normal file
|
@ -0,0 +1,4 @@
|
|||
.section .got
|
||||
.space 0x2a8, 4
|
||||
.data
|
||||
.zero 12
|
9
ld/testsuite/ld-x86-64/pr14215.d
Normal file
9
ld/testsuite/ld-x86-64/pr14215.d
Normal file
|
@ -0,0 +1,9 @@
|
|||
#name: PR ld/14215
|
||||
#as: --64
|
||||
#ld: -melf_x86_64 -shared -z relro
|
||||
#readelf: -l --wide
|
||||
|
||||
#failif
|
||||
#...
|
||||
03 .dynamic .got .data
|
||||
#...
|
4
ld/testsuite/ld-x86-64/pr14215.s
Normal file
4
ld/testsuite/ld-x86-64/pr14215.s
Normal file
|
@ -0,0 +1,4 @@
|
|||
.section .got
|
||||
.space 0x2a8, 4
|
||||
.data
|
||||
.zero 24
|
|
@ -208,6 +208,7 @@ run_dump_test "pr12921"
|
|||
run_dump_test "pr13947"
|
||||
run_dump_test "pr12570a"
|
||||
run_dump_test "pr12570b"
|
||||
run_dump_test "pr14215"
|
||||
|
||||
if { ![istarget "x86_64-*-linux*"] && ![istarget "x86_64-*-nacl*"]} {
|
||||
return
|
||||
|
|
Loading…
Reference in a new issue