aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/config/default.exp
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2022-01-05 07:12:03 -0800
committerH.J. Lu <hjl.tools@gmail.com>2022-01-12 06:04:51 -0800
commitf2e37a5c7f8c8f761d2d86f2a69efe07503dc640 (patch)
treedb77266086c3d28118e38e76830809fc4d668560 /ld/testsuite/config/default.exp
parent23cc1de50b006fa10e295bdb4455540f001515e9 (diff)
downloadgdb-f2e37a5c7f8c8f761d2d86f2a69efe07503dc640.zip
gdb-f2e37a5c7f8c8f761d2d86f2a69efe07503dc640.tar.gz
gdb-f2e37a5c7f8c8f761d2d86f2a69efe07503dc640.tar.bz2
elf: Support DT_RELR in linker tests
Allow eabling and disabling DT_RELR in linker tests. Disable DT_RELR in linker tests which don't expect DT_RELR in linker outputs. binutils/ * testsuite/lib/binutils-common.exp (run_dump_test): Make DT_RELR_LDFLAGS and NO_DT_RELR_LDFLAGS global. ld/ * testsuite/config/default.exp (DT_RELR_LDFLAGS): New. (DT_RELR_CC_LDFLAGS): Likewise. (NO_DT_RELR_LDFLAGS): Likewise. (NO_DT_RELR_CC_LDFLAGS): Likewise. * testsuite/ld-elf/shared.exp: Pass $NO_DT_RELR_LDFLAGS to linker for some tests. * testsuite/ld-i386/export-class.exp: Likewise. * testsuite/ld-i386/i386.exp: Likewise. * testsuite/ld-i386/ibt-plt-2a.d: Pass $NO_DT_RELR_LDFLAGS to linker. * testsuite/ld-i386/ibt-plt-3a.d: Likewise. * testsuite/ld-i386/ibt-plt-3c.d: Likewise. * testsuite/ld-i386/pr26869.d: Likewise. * testsuite/ld-i386/report-reloc-1.d: Likewise. * testsuite/ld-ifunc/ifunc-2-i386-now.d: Likewise. * testsuite/ld-ifunc/ifunc-2-local-i386-now.d: Likewise. * testsuite/ld-ifunc/ifunc-2-local-x86-64-now.d: Likewise. * testsuite/ld-ifunc/ifunc-2-x86-64-now.d: Likewise. * testsuite/ld-ifunc/pr17154-x86-64.d: Likewise. * testsuite/ld-x86-64/bnd-branch-1-now.d: Likewise. * testsuite/ld-x86-64/bnd-ifunc-1-now.d: Likewise. * testsuite/ld-x86-64/bnd-ifunc-2-now.d: Likewise. * testsuite/ld-x86-64/bnd-ifunc-2.d: Likewise. * testsuite/ld-x86-64/bnd-plt-1-now.d: Likewise. * testsuite/ld-x86-64/bnd-plt-1.d: Likewise. * testsuite/ld-x86-64/ibt-plt-2a-x32.d: Likewise. * testsuite/ld-x86-64/ibt-plt-2a.d: Likewise. * testsuite/ld-x86-64/ibt-plt-3a-x32.d: Likewise. * testsuite/ld-x86-64/ibt-plt-3a.d: Likewise. * testsuite/ld-x86-64/ilp32-4.d: Likewise. * testsuite/ld-x86-64/load1c.d: Likewise. * testsuite/ld-x86-64/load1d.d: Likewise. * testsuite/ld-x86-64/pr13082-2b.d: Likewise. * testsuite/ld-x86-64/pr14207.d: Likewise. * testsuite/ld-x86-64/pr18176.d: Likewise. * testsuite/ld-x86-64/pr19162.d: Likewise. * testsuite/ld-x86-64/pr19636-2d.d: Likewise. * testsuite/ld-x86-64/pr19636-2l.d: Likewise. * testsuite/ld-x86-64/pr20253-1d.d: Likewise. * testsuite/ld-x86-64/pr20253-1f.d: Likewise. * testsuite/ld-x86-64/pr20253-1j.d: Likewise. * testsuite/ld-x86-64/pr20253-1l.d: Likewise. * testsuite/ld-x86-64/report-reloc-1-x32.d: Likewise. * testsuite/ld-x86-64/report-reloc-1.d: Likewise. * testsuite/ld-x86-64/export-class.exp (x86_64_export_class_test): Pass $NO_DT_RELR_LDFLAGS to linker. * testsuite/ld-x86-64/x86-64.exp: Pass $NO_DT_RELR_LDFLAGS to linker for some tests.
Diffstat (limited to 'ld/testsuite/config/default.exp')
-rw-r--r--ld/testsuite/config/default.exp40
1 files changed, 40 insertions, 0 deletions
diff --git a/ld/testsuite/config/default.exp b/ld/testsuite/config/default.exp
index c988d5d..fb4f151 100644
--- a/ld/testsuite/config/default.exp
+++ b/ld/testsuite/config/default.exp
@@ -313,6 +313,46 @@ if ![info exists LDFLAGS] then {
set LDFLAGS {}
}
+if { ![info exists DT_RELR_LDFLAGS] } then {
+ if { [istarget "i?86-*-linux*"] \
+ || [istarget "x86_64-*-linux*"] \
+ || [istarget "i?86-*-gnu**"] } then {
+ set DT_RELR_LDFLAGS "-z pack-relative-relocs"
+ } else {
+ set DT_RELR_LDFLAGS {}
+ }
+}
+
+if { ![info exists DT_RELR_CC_LDFLAGS] } then {
+ if { [istarget "i?86-*-linux*"] \
+ || [istarget "x86_64-*-linux*"] \
+ || [istarget "i?86-*-gnu**"] } then {
+ set DT_RELR_CC_LDFLAGS "-Wl,-z,pack-relative-relocs"
+ } else {
+ set DT_RELR_CC_LDFLAGS {}
+ }
+}
+
+if { ![info exists NO_DT_RELR_LDFLAGS] } then {
+ if { [istarget "i?86-*-linux*"] \
+ || [istarget "x86_64-*-linux*"] \
+ || [istarget "i?86-*-gnu**"] } then {
+ set NO_DT_RELR_LDFLAGS "-z nopack-relative-relocs"
+ } else {
+ set NO_DT_RELR_LDFLAGS {}
+ }
+}
+
+if { ![info exists NO_DT_RELR_CC_LDFLAGS] } then {
+ if { [istarget "i?86-*-linux*"] \
+ || [istarget "x86_64-*-linux*"] \
+ || [istarget "i?86-*-gnu**"] } then {
+ set NO_DT_RELR_CC_LDFLAGS "-Wl,-z,nopack-relative-relocs"
+ } else {
+ set NO_DT_RELR_CC_LDFLAGS {}
+ }
+}
+
# Set LD_CLASS to "64bit" for a 64-bit *host* linker.
if { ![info exists LD_CLASS] } then {
set REAL_LD [findfile $base_dir/.libs/ld-new .libs/ld-new $LD [transform ld]]