aboutsummaryrefslogtreecommitdiff
path: root/ld/emulparams
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2012-06-11 13:23:51 +0000
committerH.J. Lu <hjl.tools@gmail.com>2012-06-11 13:23:51 +0000
commit17d6eea5d50485078affbb12b895e3e508366ba9 (patch)
treeb336d0ebf44afd496253494fe12c758571bdf749 /ld/emulparams
parent2e81047f911b9181987439ec157dc3ed1e567393 (diff)
downloadgdb-17d6eea5d50485078affbb12b895e3e508366ba9.zip
gdb-17d6eea5d50485078affbb12b895e3e508366ba9.tar.gz
gdb-17d6eea5d50485078affbb12b895e3e508366ba9.tar.bz2
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.
Diffstat (limited to 'ld/emulparams')
-rw-r--r--ld/emulparams/elf32_x86_64.sh2
-rw-r--r--ld/emulparams/elf32mb_linux.sh2
-rw-r--r--ld/emulparams/elf32tilegx.sh2
-rw-r--r--ld/emulparams/elf32tilepro.sh2
-rw-r--r--ld/emulparams/elf64tilegx.sh2
-rw-r--r--ld/emulparams/elf_i386.sh2
-rw-r--r--ld/emulparams/elf_k1om.sh2
-rw-r--r--ld/emulparams/elf_l1om.sh2
-rw-r--r--ld/emulparams/elf_x86_64.sh2
9 files changed, 9 insertions, 9 deletions
diff --git a/ld/emulparams/elf32_x86_64.sh b/ld/emulparams/elf32_x86_64.sh
index fb94003..bc77c85 100644
--- a/ld/emulparams/elf32_x86_64.sh
+++ b/ld/emulparams/elf32_x86_64.sh
@@ -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
diff --git a/ld/emulparams/elf32mb_linux.sh b/ld/emulparams/elf32mb_linux.sh
index 3503bb1..f26f1a0 100644
--- a/ld/emulparams/elf32mb_linux.sh
+++ b/ld/emulparams/elf32mb_linux.sh
@@ -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"
diff --git a/ld/emulparams/elf32tilegx.sh b/ld/emulparams/elf32tilegx.sh
index 92121e7..faf3ee0 100644
--- a/ld/emulparams/elf32tilegx.sh
+++ b/ld/emulparams/elf32tilegx.sh
@@ -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="
diff --git a/ld/emulparams/elf32tilepro.sh b/ld/emulparams/elf32tilepro.sh
index 5fb4443..01d84bc 100644
--- a/ld/emulparams/elf32tilepro.sh
+++ b/ld/emulparams/elf32tilepro.sh
@@ -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)) }
diff --git a/ld/emulparams/elf64tilegx.sh b/ld/emulparams/elf64tilegx.sh
index 6ac9fa8..51cbef7 100644
--- a/ld/emulparams/elf64tilegx.sh
+++ b/ld/emulparams/elf64tilegx.sh
@@ -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)) }
diff --git a/ld/emulparams/elf_i386.sh b/ld/emulparams/elf_i386.sh
index 2b2f910..665a1ad 100644
--- a/ld/emulparams/elf_i386.sh
+++ b/ld/emulparams/elf_i386.sh
@@ -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=
diff --git a/ld/emulparams/elf_k1om.sh b/ld/emulparams/elf_k1om.sh
index d28ffc0..e77b2b0 100644
--- a/ld/emulparams/elf_k1om.sh
+++ b/ld/emulparams/elf_k1om.sh
@@ -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
diff --git a/ld/emulparams/elf_l1om.sh b/ld/emulparams/elf_l1om.sh
index 80152fe..624f4b3 100644
--- a/ld/emulparams/elf_l1om.sh
+++ b/ld/emulparams/elf_l1om.sh
@@ -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
diff --git a/ld/emulparams/elf_x86_64.sh b/ld/emulparams/elf_x86_64.sh
index c38e845..f1b60cb 100644
--- a/ld/emulparams/elf_x86_64.sh
+++ b/ld/emulparams/elf_x86_64.sh
@@ -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