elf: Support DT_RELR in linker tests
authorH.J. Lu <hjl.tools@gmail.com>
Wed, 5 Jan 2022 15:12:03 +0000 (07:12 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Wed, 12 Jan 2022 14:04:51 +0000 (06:04 -0800)
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.

43 files changed:
binutils/testsuite/lib/binutils-common.exp
ld/testsuite/config/default.exp
ld/testsuite/ld-elf/shared.exp
ld/testsuite/ld-i386/export-class.exp
ld/testsuite/ld-i386/i386.exp
ld/testsuite/ld-i386/ibt-plt-2a.d
ld/testsuite/ld-i386/ibt-plt-3a.d
ld/testsuite/ld-i386/ibt-plt-3c.d
ld/testsuite/ld-i386/pr26869.d
ld/testsuite/ld-i386/report-reloc-1.d
ld/testsuite/ld-ifunc/ifunc-2-i386-now.d
ld/testsuite/ld-ifunc/ifunc-2-local-i386-now.d
ld/testsuite/ld-ifunc/ifunc-2-local-x86-64-now.d
ld/testsuite/ld-ifunc/ifunc-2-x86-64-now.d
ld/testsuite/ld-ifunc/pr17154-x86-64-now.d
ld/testsuite/ld-ifunc/pr17154-x86-64.d
ld/testsuite/ld-x86-64/bnd-branch-1-now.d
ld/testsuite/ld-x86-64/bnd-ifunc-1-now.d
ld/testsuite/ld-x86-64/bnd-ifunc-2-now.d
ld/testsuite/ld-x86-64/bnd-ifunc-2.d
ld/testsuite/ld-x86-64/bnd-plt-1-now.d
ld/testsuite/ld-x86-64/bnd-plt-1.d
ld/testsuite/ld-x86-64/export-class.exp
ld/testsuite/ld-x86-64/ibt-plt-2a-x32.d
ld/testsuite/ld-x86-64/ibt-plt-2a.d
ld/testsuite/ld-x86-64/ibt-plt-3a-x32.d
ld/testsuite/ld-x86-64/ibt-plt-3a.d
ld/testsuite/ld-x86-64/ilp32-4.d
ld/testsuite/ld-x86-64/load1c.d
ld/testsuite/ld-x86-64/load1d.d
ld/testsuite/ld-x86-64/pr13082-2b.d
ld/testsuite/ld-x86-64/pr14207.d
ld/testsuite/ld-x86-64/pr18176.d
ld/testsuite/ld-x86-64/pr19162.d
ld/testsuite/ld-x86-64/pr19636-2d.d
ld/testsuite/ld-x86-64/pr19636-2l.d
ld/testsuite/ld-x86-64/pr20253-1d.d
ld/testsuite/ld-x86-64/pr20253-1f.d
ld/testsuite/ld-x86-64/pr20253-1j.d
ld/testsuite/ld-x86-64/pr20253-1l.d
ld/testsuite/ld-x86-64/report-reloc-1-x32.d
ld/testsuite/ld-x86-64/report-reloc-1.d
ld/testsuite/ld-x86-64/x86-64.exp

index 0e0ba8e5aeea2a351bc177f9bd00fb524d401bf4..88fdc1a71c756485bfe5b6f033c723b0ea2e4c33 100644 (file)
@@ -855,6 +855,7 @@ proc run_dump_test { name {extra_options {}} } {
     global ELFEDIT ELFEDITFLAGS LD LDFLAGS NM NMFLAGS OBJCOPY OBJCOPYFLAGS
     global OBJDUMP OBJDUMPFLAGS READELF READELFFLAGS STRIP STRIPFLAGS
     global copyfile env runtests srcdir subdir verbose
+    global DT_RELR_LDFLAGS NO_DT_RELR_LDFLAGS
 
     if [string match "*/*" $name] {
        set file $name
index c988d5d29241dd27f17400a8b8d8f99dc236bbad..fb4f151eddcf03f0cb9affb3fbbfcbe493b89085 100644 (file)
@@ -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]]
index cb3b8c15cfc59864ed1b2a40152dda38eb93d783..1381544e6f8efbf3a7dc0f652c347d79fb398111 100644 (file)
@@ -452,7 +452,8 @@ setup_xfail mips*-*-* bfin-*-*
 clear_xfail bfin-*-linux*
 run_ld_link_tests [list \
     [list "-Bsymbolic-functions" \
-       "-shared -Bsymbolic-functions" "" "$AFLAGS_PIC" \
+       "-shared -Bsymbolic-functions $NO_DT_RELR_LDFLAGS" \
+       "" "$AFLAGS_PIC" \
        {symbolic-func.s} {{readelf {-r --wide} symbolic-func.r}} \
        "symbolic-func.so"] \
 ]
index 47b2c0f0056739db16e074cd982ff69101321a97..04bc6a0d83647d0993d3454005f32c66f03b0741 100644 (file)
@@ -74,7 +74,7 @@ run_ld_link_tests [list \
 run_ld_link_tests [list \
     [list \
        "$testname (final shared object)" \
-       "-shared -Tdata=0x12340000 tmpdir/i386-export-class-ref-r.o tmpdir/i386-export-class-lib.so" "" \
+       "-shared $NO_DT_RELR_LDFLAGS -Tdata=0x12340000 tmpdir/i386-export-class-ref-r.o tmpdir/i386-export-class-lib.so" "" \
        "" \
        { ../ld-elf/export-class-dep.s ../ld-elf/export-class-def.s } \
        { \
index 3ed6e42e78fdf7290794aee1779c7e837b6ea4e1..c2d8d8268c3a15f34e6df5ad981ac3afbb0535e9 100644 (file)
@@ -177,12 +177,6 @@ set i386tests {
      {{readelf -Ssrl tlsbindesc.rd} {objdump -drj.text tlsbindesc.dd}
       {objdump -sj.got tlsbindesc.sd} {objdump -sj.tdata tlsbindesc.td}}
       "tlsbindesc"}
-    {"TLS -fno-pic -shared"
-     "-shared -melf_i386 --no-ld-generated-unwind-info -z notext \
-      -z noseparate-code --hash-style=sysv" ""
-     "--32" {tlsnopic1.s tlsnopic2.s}
-     {{readelf -Ssrl tlsnopic.rd} {objdump -drj.text tlsnopic.dd}
-      {objdump -sj.got tlsnopic.sd}} "libtlsnopic.so"}
     {"TLS with global dynamic and descriptors"
      "-shared -melf_i386 --no-ld-generated-unwind-info \
       -z noseparate-code --hash-style=sysv" ""
@@ -293,6 +287,20 @@ iamcu_tests
 
 run_ld_link_tests $i386tests
 
+run_ld_link_tests [list \
+    [list \
+       "TLS -fno-pic -shared" \
+       "-shared -melf_i386 --no-ld-generated-unwind-info -z notext \
+        -z noseparate-code --hash-style=sysv $NO_DT_RELR_LDFLAGS" \
+       "" "--32" \
+       {tlsnopic1.s tlsnopic2.s} \
+       {{readelf -Ssrl tlsnopic.rd} \
+        {objdump -drj.text tlsnopic.dd} \
+        {objdump -sj.got tlsnopic.sd}} \
+       "libtlsnopic.so" \
+    ] \
+]
+
 run_dump_test "abs"
 run_dump_test "pcrel8"
 run_dump_test "pcrel16"
index 42aa2ce74103ea54fcc776fd6dbb4019055a5619..98b6fb9a5aa0fd68b6833e63d7f9f4223fc3408d 100644 (file)
@@ -1,6 +1,6 @@
 #source: ibt-plt-2.s
 #as: --32
-#ld: -shared -m elf_i386 -z ibtplt --hash-style=sysv -z noseparate-code
+#ld: -shared -m elf_i386 -z ibtplt --hash-style=sysv -z noseparate-code $NO_DT_RELR_LDFLAGS
 #objdump: -dw
 
 .*: +file format .*
index b357a74a33b1cb00dc8c221d97c1fa0e0590ec5c..91f2023db3530579686eef598d79d81ef8e6d7f0 100644 (file)
@@ -1,6 +1,6 @@
 #source: ibt-plt-3.s
 #as: --32
-#ld: -shared -m elf_i386 -z ibtplt --hash-style=sysv -z noseparate-code
+#ld: -shared -m elf_i386 -z ibtplt --hash-style=sysv -z noseparate-code $NO_DT_RELR_LDFLAGS
 #objdump: -dw
 
 .*: +file format .*
index b357a74a33b1cb00dc8c221d97c1fa0e0590ec5c..91f2023db3530579686eef598d79d81ef8e6d7f0 100644 (file)
@@ -1,6 +1,6 @@
 #source: ibt-plt-3.s
 #as: --32
-#ld: -shared -m elf_i386 -z ibtplt --hash-style=sysv -z noseparate-code
+#ld: -shared -m elf_i386 -z ibtplt --hash-style=sysv -z noseparate-code $NO_DT_RELR_LDFLAGS
 #objdump: -dw
 
 .*: +file format .*
index bfd00a70e9baaec121e0099942694050e17cef76..c8b1acc51aee2aa6ee0f62f5ec3fe7a727e612c1 100644 (file)
@@ -1,5 +1,5 @@
 #as: --32
-#ld: -shared -melf_i386
+#ld: -shared -melf_i386 $NO_DT_RELR_LDFLAGS
 #readelf: -r -s --wide
 
 Relocation section '.rel.dyn' at offset 0x[a-f0-9]+ contains 1 entry:
index 51fbbd8d105ce062dd0ca018251c9e15d62facdc..162161592a19b690914ba9b796f5cdf6bd5e02d9 100644 (file)
@@ -1,6 +1,6 @@
 #source: report-reloc-1.s
 #as: --32
-#ld: -pie -melf_i386 -z report-relative-reloc
+#ld: -pie -melf_i386 -z report-relative-reloc $NO_DT_RELR_LDFLAGS
 #warning_output: report-reloc-1.l
 #readelf: -r --wide
 
index 0d3f7b80d06f30945e4f2feba309b06e813d0996..aae24b2809d124614ddfaf59392b425443793225 100644 (file)
@@ -1,5 +1,5 @@
 #source: ifunc-2-i386.s
-#ld: -z now -m elf_i386 -shared --hash-style=sysv -z noseparate-code
+#ld: -z now -m elf_i386 -shared --hash-style=sysv -z noseparate-code $NO_DT_RELR_LDFLAGS
 #as: --32
 #objdump: -dw
 #target: x86_64-*-* i?86-*-*
index 48d2084d38feac323c44dca5ec9e76e25436afca..86083c12a080e0fe95c889ad4a726d8b3151a066 100644 (file)
@@ -1,5 +1,5 @@
 #source: ifunc-2-local-i386.s
-#ld: -z now -m elf_i386 -shared --hash-style=sysv -z noseparate-code
+#ld: -z now -m elf_i386 -shared --hash-style=sysv -z noseparate-code $NO_DT_RELR_LDFLAGS
 #as: --32
 #objdump: -dw
 #target: x86_64-*-* i?86-*-*
index 14866a8f6cc041b6680b1147e8a5c05db78a4b80..be3da08e12b40619324ce462687622177e8a370a 100644 (file)
@@ -1,6 +1,6 @@
 #source: ifunc-2-local-x86-64.s
 #as: --64
-#ld: -z now -shared -melf_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code
+#ld: -z now -shared -melf_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
 #objdump: -dw
 #target: x86_64-*-*
 
index 1cd60941ac0a1f94f9a156e633e07d4d1cfe7469..b504f9adedd01766f13cf4f32c5d5e523e7d8cd9 100644 (file)
@@ -1,6 +1,6 @@
 #source: ifunc-2-x86-64.s
 #as: --64
-#ld: -z now -shared -melf_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code
+#ld: -z now -shared -melf_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
 #objdump: -dw
 #target: x86_64-*-*
 
index 4cc1dc206d5d6ddfe7b5db2ed8eacbb08cb79327..f6920272b6340f68c5419d8898b14eafb5213c4b 100644 (file)
@@ -1,6 +1,6 @@
 #source: pr17154-x86.s
 #as: --64
-#ld: -z now -shared -melf_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code
+#ld: -z now -shared -melf_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
 #objdump: -dw
 #target: x86_64-*-*
 
index 9fb23d410e31b4b1c234524a06fda5403cf11083..90918426ee549efe113bbcaf5644a2c8ddc40c51 100644 (file)
@@ -1,6 +1,6 @@
 #source: pr17154-x86.s
 #as: --64
-#ld: -shared -melf_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code
+#ld: -shared -melf_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
 #objdump: -dw
 #target: x86_64-*-*
 
index b7bc4e526cc810767ad01cd00d3fd827cc938c62..b1bcea3cf4c78b569c83ace9781a3b991ab8c72b 100644 (file)
@@ -1,6 +1,6 @@
 #source: bnd-branch-1.s -mx86-used-note=no
 #as: --64
-#ld: -z now -shared -melf_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code
+#ld: -z now -shared -melf_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
 #objdump: -dw
 
 .*: +file format .*
index 15ecfe1cc50a39ea207519fb3ab381af023751c7..86ba30a46d5edb2fa7a6d97b6e5f7363f4d80c30 100644 (file)
@@ -1,6 +1,6 @@
 #source: bnd-ifunc-1.s
 #as: --64 -madd-bnd-prefix -mx86-used-note=no
-#ld: -z now -shared -melf_x86_64 -z bndplt --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code
+#ld: -z now -shared -melf_x86_64 -z bndplt --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
 #objdump: -dw
 
 .*: +file format .*
index 211d72d233546ec03732cb5c573a80ad54e6ceb2..fa7ec07aaf0116fc7d929feed3ca65018641ab4a 100644 (file)
@@ -1,6 +1,6 @@
 #source: bnd-ifunc-2.s
 #as: --64 -madd-bnd-prefix -mx86-used-note=no
-#ld: -z now -shared -melf_x86_64 -z bndplt --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code
+#ld: -z now -shared -melf_x86_64 -z bndplt --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
 #objdump: -dw
 
 .*: +file format .*
index f80ba15aa35c40be57d45d4cb9488a8059d80bf5..36534b14feb30aea86eab27ef3b6d28225b48483 100644 (file)
@@ -1,5 +1,5 @@
 #as: --64 -madd-bnd-prefix -mx86-used-note=no
-#ld: -shared -melf_x86_64 -z bndplt --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code
+#ld: -shared -melf_x86_64 -z bndplt --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
 #objdump: -dw
 
 #...
index 24e28210a0a23c467217aeea188c238f85a874e8..47289a04f4377931c15572e7d5ad13215b05a016 100644 (file)
@@ -1,6 +1,6 @@
 #source: bnd-branch-1.s
 #as: --64 -mx86-used-note=no
-#ld: -z now -shared -melf_x86_64 -z bndplt --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code
+#ld: -z now -shared -melf_x86_64 -z bndplt --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
 #objdump: -dw
 
 .*: +file format .*
index 0df32555c1890b82e9831d8f6357b7c887418b48..f047da897cee8bfd4caf527973ec95fb3cd3cde4 100644 (file)
@@ -1,6 +1,6 @@
 #source: bnd-branch-1.s
 #as: --64 -mx86-used-note=no
-#ld: -shared -melf_x86_64 -z bndplt --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code
+#ld: -shared -melf_x86_64 -z bndplt --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
 #objdump: -dw
 
 .*: +file format .*
index 26896d1ca87d187e3c74f20b4577fede279a0e5e..14c2d240facc8530fde6cfaa5115825f92f3c364 100644 (file)
@@ -31,6 +31,7 @@ if { ![istarget x86_64*-*-linux*] } {
 }
 
 proc x86_64_export_class_test { abi flag emul } {
+    global NO_DT_RELR_LDFLAGS
 
     set testname "x86-64 $abi symbol export class test"
 
@@ -75,7 +76,7 @@ proc x86_64_export_class_test { abi flag emul } {
     run_ld_link_tests [list \
        [list \
            "$testname (final shared object)" \
-           "$LDFLAGS -shared -Tdata=0x12340000 tmpdir/x86-64-$abi-export-class-ref-r.o tmpdir/x86-64-$abi-export-class-lib.so" "" \
+           "$LDFLAGS $NO_DT_RELR_LDFLAGS -shared -Tdata=0x12340000 tmpdir/x86-64-$abi-export-class-ref-r.o tmpdir/x86-64-$abi-export-class-lib.so" "" \
            "$AFLAGS" \
            { ../ld-elf/export-class-dep.s ../ld-elf/export-class-def.s } \
            [list \
index a19cece98e8e0ca92a3522a4945e1cc58c68202c..23e31e62f5562591048818eac4d0d73053a73c1d 100644 (file)
@@ -1,6 +1,6 @@
 #source: ibt-plt-2.s
 #as: --x32
-#ld: -shared -m elf32_x86_64 -z ibtplt --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code
+#ld: -shared -m elf32_x86_64 -z ibtplt --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
 #objdump: -dw
 
 .*: +file format .*
index 92785929092e39a5c5022c3a6714258b6271f693..adbbf62e84d4653b0e4737b2661517dde35026e7 100644 (file)
@@ -1,6 +1,6 @@
 #source: ibt-plt-2.s
 #as: --64 -defsym __64_bit__=1
-#ld: -shared -m elf_x86_64 -z ibtplt --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code
+#ld: -shared -m elf_x86_64 -z ibtplt --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
 #objdump: -dw
 
 .*: +file format .*
index d6f8bb3afbeac6eb90e1e328ece41fce6135ecb9..f52b1cc796fe0b2702805ff3c7ad3d550f5a92b5 100644 (file)
@@ -1,6 +1,6 @@
 #source: ibt-plt-3.s
 #as: --x32
-#ld: -shared -m elf32_x86_64 -z ibtplt --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code
+#ld: -shared -m elf32_x86_64 -z ibtplt --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
 #objdump: -dw
 
 .*: +file format .*
index 9c15ed4f9285ea4d68d743eba6ca255cd4651320..8bd8851ea7359849e7cf5dbb0f75c9722c7b02b5 100644 (file)
@@ -1,6 +1,6 @@
 #source: ibt-plt-3.s
 #as: --64 -defsym __64_bit__=1
-#ld: -shared -m elf_x86_64 -z ibtplt --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code
+#ld: -shared -m elf_x86_64 -z ibtplt --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
 #objdump: -dw
 
 .*: +file format .*
index 34be012056e6c0ab723e2ea1d2a73cd8a2b11d4f..ad5c9cdf858673edc78025eacb12bbe0554c1dbb 100644 (file)
@@ -1,5 +1,5 @@
 #as: --x32
-#ld: -m elf32_x86_64 -shared --no-ld-generated-unwind-info --hash-style=sysv
+#ld: -m elf32_x86_64 -shared --no-ld-generated-unwind-info --hash-style=sysv $NO_DT_RELR_LDFLAGS
 #readelf: -d -S --wide
 #target: x86_64-*-linux*
 
index db9c69fadbff2672c4ed4afe7dcbd9c4dea92173..7404c7093b45fb8e2acfc514d9fe4e1a700a2950 100644 (file)
@@ -1,6 +1,6 @@
 #source: load1.s
 #as: --64
-#ld: -shared -melf_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code
+#ld: -shared -melf_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
 #objdump: -dw
 
 .*: +file format .*
index 7ccae532f27ad3a0f9ec294b3ddedc08651888f2..1b474a375c7ea4ba4ec54fbaa0f8c664eb7b50de 100644 (file)
@@ -1,6 +1,6 @@
 #source: load1.s
 #as: --x32
-#ld: -shared -melf32_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code
+#ld: -shared -melf32_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
 #objdump: -dw
 
 .*: +file format .*
index c218eafe34cff94f8d678d133dcbf5f37aa9ec14..71c44fc0ee54a05a4c2f99d82f58028790e9137d 100644 (file)
@@ -1,7 +1,7 @@
 #source: pr13082-2.s
 #name: PR ld/13082-2 (b)
 #as: --x32
-#ld: -pie -melf32_x86_64
+#ld: -pie -melf32_x86_64 $NO_DT_RELR_LDFLAGS
 #readelf: -r --wide
 
 Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entry:
index f330600b9163bbed7e602a980d92877274d374ee..e3af36146c6af3752cfe57764fadc6fad16c4b0c 100644 (file)
@@ -1,6 +1,6 @@
 #name: PR ld/14207
 #as: --64
-#ld: -melf_x86_64 -shared -z relro -z now --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code
+#ld: -melf_x86_64 -shared -z relro -z now --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
 #readelf: -l --wide
 #target: x86_64-*-linux*
 
index 4e3ad9ff08d559270e66099db0283fc71b9943e5..a99ff15ac6bee23984d9c8bb70d2c586a710150b 100644 (file)
@@ -1,6 +1,6 @@
 #name: PR ld/18176
 #as: --64
-#ld: -melf_x86_64 -shared -z relro -T pr18176.t -z max-page-size=0x200000 -z common-page-size=0x1000
+#ld: -melf_x86_64 -shared -z relro -T pr18176.t -z max-page-size=0x200000 -z common-page-size=0x1000 $NO_DT_RELR_LDFLAGS
 #readelf: -l --wide
 #target: x86_64-*-linux*
 
index 2d51dabe7297c6b11e4142d6a8ffdcfd47a09481..f458853d8e5409416bfc34af5db68fce511a3f12 100644 (file)
@@ -1,7 +1,7 @@
 #source: pr19162a.s
 #source: pr19162b.s
 #as: --64
-#ld: -melf_x86_64 -shared -z noseparate-code -z max-page-size=0x200000 -z common-page-size=0x1000 --hash-style=sysv
+#ld: -melf_x86_64 -shared -z noseparate-code -z max-page-size=0x200000 -z common-page-size=0x1000 --hash-style=sysv $NO_DT_RELR_LDFLAGS
 #readelf: -l --wide
 #target: x86_64-*-linux*
 
index 3bd33a9a9151ca68b34c4b037af7e26f2c69ae01..092992be9d47e0135b285b19a38cf3c7e4f4ff19 100644 (file)
@@ -1,6 +1,6 @@
 #source: pr19636-2.s
 #as: --64 -mrelax-relocations=no
-#ld: -pie -m elf_x86_64 --no-dynamic-linker --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code
+#ld: -pie -m elf_x86_64 --no-dynamic-linker --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
 #objdump: -dw
 
 .*: +file format .*
index 1b894b3e97c4d8a449d6d6346bb11a10dbd6160d..8c23c0b741172c4e3c286f13b88adb358d13c053 100644 (file)
@@ -1,6 +1,6 @@
 #source: pr19636-2.s
 #as: --64 -mrelax-relocations=no
-#ld: -pie -m elf_x86_64 --no-dynamic-linker --hash-style=sysv -z dynamic-undefined-weak -z max-page-size=0x200000 -z noseparate-code
+#ld: -pie -m elf_x86_64 --no-dynamic-linker --hash-style=sysv -z dynamic-undefined-weak -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
 #objdump: -dw
 #warning: -z dynamic-undefined-weak ignored
 
index f9f03ba8403405a8158c9c368c41cfd214fbb2bd..057577bdc57aea93adcb2bf74b9811d13308cfc7 100644 (file)
@@ -1,6 +1,6 @@
 #source: pr20253-1.s
 #as: --64
-#ld: -pie -melf_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code
+#ld: -pie -melf_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
 #objdump: -dw
 
 .*: +file format .*
index 6666bcaf1472f175d2c6c56d81900286ca7afcab..479db8202e800e49f498eecd49f23e03b9349604 100644 (file)
@@ -1,6 +1,6 @@
 #source: pr20253-1.s
 #as: --64
-#ld: -shared -melf_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code
+#ld: -shared -melf_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
 #objdump: -dw
 
 .*: +file format .*
index 88c9715ad75bdd63cce3d2a324f75d2d5895f47a..20176a2d35758d648f76bd599682ded26071f2a6 100644 (file)
@@ -1,6 +1,6 @@
 #source: pr20253-1.s
 #as: --x32
-#ld: -pie -melf32_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code
+#ld: -pie -melf32_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
 #objdump: -dw
 
 .*: +file format .*
index 7428a721b16810e7fd8ac7ee3af4fd5531c63110..4b179077dec6a1f68f74d39a456bc8c25539230c 100644 (file)
@@ -1,6 +1,6 @@
 #source: pr20253-1.s
 #as: --x32
-#ld: -shared -melf32_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code
+#ld: -shared -melf32_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
 #objdump: -dw
 
 .*: +file format .*
index c66f956c473cd937f36d3f6c745e78f21d795e44..63fe7b1bb8a872f04e37256197c1dc38ae6d64ba 100644 (file)
@@ -1,6 +1,6 @@
 #source: report-reloc-1.s
 #as: --x32
-#ld: -pie -melf32_x86_64 -z report-relative-reloc
+#ld: -pie -melf32_x86_64 -z report-relative-reloc $NO_DT_RELR_LDFLAGS
 #warning_output: report-reloc-1.l
 #readelf: -r --wide
 
index 1b5f91fdd3f1184c5705575f8885fd3bf472ef7c..69f164c9434a6e90ce0d0b0b9e8d81dfe50b0fb0 100644 (file)
@@ -1,6 +1,6 @@
 #source: report-reloc-1.s
 #as: --64
-#ld: -pie -melf_x86_64 -z report-relative-reloc
+#ld: -pie -melf_x86_64 -z report-relative-reloc $NO_DT_RELR_LDFLAGS
 #warning_output: report-reloc-1.l
 #readelf: -r --wide
 
index c100879397e05537d41ea792d713b9177dbae25b..b404812805718274efea21f5d819cfbafd659386 100644 (file)
@@ -45,28 +45,6 @@ set x86_64tests {
     {"basic PLT generation"
      "-melf_x86_64 tmpdir/libpltlib.so" "" "--64" {plt.s}
      {{objdump -drj.plt plt.pd}} "plt"}
-    {"TLS -fpic -shared transitions"
-     "-shared -melf_x86_64 --no-ld-generated-unwind-info \
-      -z noseparate-code -z max-page-size=0x200000 --hash-style=sysv" ""
-     "--64" {tlspic1.s tlspic2.s}
-     {{readelf -WSsrl tlspic.rd} {objdump -drj.text\ -Mintel64 tlspic.dd}
-      {objdump -sj.got tlspic.sd} {objdump -sj.tdata tlspic.td}}
-      "libtlspic.so"}
-    {"TLS -fpic -shared transitions with r15 as GOT base"
-     "-shared -melf_x86_64 --no-ld-generated-unwind-info \
-      -z noseparate-code -z max-page-size=0x200000 --hash-style=sysv" ""
-     "--64 -mrelax-relocations=yes"
-     {tlspic3.s tlspic2.s}
-     {{readelf -WSsrl tlspic2.rd} {objdump -drj.text\ -Mintel64 tlspic2.dd}
-      {objdump -sj.got tlspic2.sd} {objdump -sj.tdata tlspic2.td}}
-      "libtlspic2.so"}
-    {"TLS descriptor -fpic -shared transitions"
-     "-shared -melf_x86_64 --no-ld-generated-unwind-info \
-      -z noseparate-code -z max-page-size=0x200000 --hash-style=sysv" ""
-     "--64" {tlsdesc.s tlspic2.s}
-     {{readelf -WSsrld tlsdesc.rd} {objdump -drj.text tlsdesc.dd}
-      {objdump "-s -j.got -j.got.plt" tlsdesc.sd} {objdump -sj.tdata tlsdesc.td}
-      {objdump -drj.plt tlsdesc.pd}} "libtlsdesc.so"}
     {"Helper shared library" "-shared -melf_x86_64" ""
      "--64" {tlslib.s} {} "libtlslib.so"}
     {"TLS -fpic and -fno-pic exec transitions"
@@ -240,6 +218,49 @@ set x86_64tests {
 
 run_ld_link_tests $x86_64tests
 
+run_ld_link_tests [list \
+    [list \
+       "TLS -fpic -shared transitions" \
+       "-shared -melf_x86_64 --no-ld-generated-unwind-info \
+        -z noseparate-code -z max-page-size=0x200000 --hash-style=sysv \
+        $NO_DT_RELR_LDFLAGS" \
+       "" "--64" \
+       {tlspic1.s tlspic2.s} \
+       {{readelf -WSsrl tlspic.rd} \
+        {objdump {-drj.text -Mintel64} tlspic.dd} \
+        {objdump -sj.got tlspic.sd} \
+        {objdump -sj.tdata tlspic.td}} \
+       "libtlspic.so" \
+    ] \
+    [list \
+       "TLS -fpic -shared transitions with r15 as GOT base" \
+       "-shared -melf_x86_64 --no-ld-generated-unwind-info \
+        -z noseparate-code -z max-page-size=0x200000 --hash-style=sysv \
+        $NO_DT_RELR_LDFLAGS" \
+        "" "--64 -mrelax-relocations=yes" \
+       {tlspic3.s tlspic2.s} \
+       {{readelf -WSsrl tlspic2.rd} \
+        {objdump {-drj.text -Mintel64} tlspic2.dd} \
+        {objdump -sj.got tlspic2.sd} \
+        {objdump -sj.tdata tlspic2.td}} \
+       "libtlspic2.so" \
+    ] \
+    [list \
+       "TLS descriptor -fpic -shared transitions" \
+       "-shared -melf_x86_64 --no-ld-generated-unwind-info \
+        -z noseparate-code -z max-page-size=0x200000 --hash-style=sysv \
+        $NO_DT_RELR_LDFLAGS" \
+       "" "--64" \
+       {tlsdesc.s tlspic2.s} \
+       {{readelf -WSsrld tlsdesc.rd} \
+        {objdump -drj.text tlsdesc.dd} \
+        {objdump {-s -j.got -j.got.plt} tlsdesc.sd} \
+        {objdump -sj.tdata tlsdesc.td} \
+        {objdump -drj.plt tlsdesc.pd}} \
+        "libtlsdesc.so" \
+    ] \
+]
+
 set test_name "Mixed x86_64 and i386 input test 1"
 set test mixed1
 if { ![ld_link $ld tmpdir/$test "-m$emul tmpdir/${test}a.o tmpdir/${test}b.o"] } {