testsuite supports_dt_relr
authorAlan Modra <amodra@gmail.com>
Thu, 13 Jan 2022 02:21:12 +0000 (12:51 +1030)
committerAlan Modra <amodra@gmail.com>
Thu, 13 Jan 2022 03:42:43 +0000 (14:12 +1030)
Tidy, and fix "FAIL: Build dt-relr-glibc-1b.so" on all non-x86
linux targets.

binutils/
* binutils-common.exp (supports_dt_relr): New proc.
ld/
* testsuite/config/default.exp (DT_RELR_LDFLAGS, NO_DT_RELR_LDFLAGS),
(DT_RELR_CC_LDFLAGS, NO_DT_RELR_CC_LDFLAGS): Use supports_dt_relr.
* testsuite/ld-elf/dt-relr.exp: Don't run unless supports_dt_relr.
* testsuite/ld-elf/dt-relr-1a.d: Likewise.
* testsuite/ld-elf/dt-relr-1b.d: Likewise.
* testsuite/ld-elf/dt-relr-1c.d: Likewise.
* testsuite/ld-elf/dt-relr-2a.d: Likewise.
* testsuite/ld-elf/dt-relr-2b.d: Likewise.
* testsuite/ld-elf/dt-relr-2c.d: Likewise.
* testsuite/ld-elf/dt-relr-2d.d: Likewise.
* testsuite/ld-elf/dt-relr-2e.d: Likewise.
* testsuite/ld-elf/dt-relr-2f.d: Likewise.
* testsuite/ld-elf/dt-relr-2g.d: Likewise.
* testsuite/ld-elf/dt-relr-2h.d: Likewise.
* testsuite/ld-elf/dt-relr-3a.d: Likewise.
* testsuite/ld-elf/dt-relr-3b.d: Likewise.

16 files changed:
binutils/testsuite/lib/binutils-common.exp
ld/testsuite/config/default.exp
ld/testsuite/ld-elf/dt-relr-1a.d
ld/testsuite/ld-elf/dt-relr-1b.d
ld/testsuite/ld-elf/dt-relr-1c.d
ld/testsuite/ld-elf/dt-relr-2a.d
ld/testsuite/ld-elf/dt-relr-2b.d
ld/testsuite/ld-elf/dt-relr-2c.d
ld/testsuite/ld-elf/dt-relr-2d.d
ld/testsuite/ld-elf/dt-relr-2e.d
ld/testsuite/ld-elf/dt-relr-2f.d
ld/testsuite/ld-elf/dt-relr-2g.d
ld/testsuite/ld-elf/dt-relr-2h.d
ld/testsuite/ld-elf/dt-relr-3a.d
ld/testsuite/ld-elf/dt-relr-3b.d
ld/testsuite/ld-elf/dt-relr.exp

index 88fdc1a71c756485bfe5b6f033c723b0ea2e4c33..93603b0be68518d789844ba5e39019a94204ce8a 100644 (file)
@@ -427,6 +427,16 @@ proc supports_persistent_section {} {
     return 0;
 }
 
+# Whether a target support DT_RELR sections.
+proc supports_dt_relr {} {
+    if { ([istarget x86_64-*-*] || [istarget i?86-*-*])
+        && ([istarget *-*-linux*]
+            || [istarget *-*-gnu*]) } {
+       return 1
+    }
+    return 0
+}
+
 # Compare two files line-by-line.  FILE_1 is the actual output and FILE_2
 # is the expected output.  Ignore blank lines in either file.
 #
index fb4f151eddcf03f0cb9affb3fbbfcbe493b89085..2c3cec684342f51127222c646e7379a050599db1 100644 (file)
@@ -314,9 +314,7 @@ if ![info exists LDFLAGS] then {
 }
 
 if { ![info exists DT_RELR_LDFLAGS] } then {
-    if { [istarget "i?86-*-linux*"] \
-        || [istarget "x86_64-*-linux*"] \
-        || [istarget "i?86-*-gnu**"] } then {
+    if { [supports_dt_relr] } then {
        set DT_RELR_LDFLAGS "-z pack-relative-relocs"
     } else {
        set DT_RELR_LDFLAGS {}
@@ -324,9 +322,7 @@ if { ![info exists DT_RELR_LDFLAGS] } then {
 }
 
 if { ![info exists DT_RELR_CC_LDFLAGS] } then {
-    if { [istarget "i?86-*-linux*"] \
-        || [istarget "x86_64-*-linux*"] \
-        || [istarget "i?86-*-gnu**"] } then {
+    if { [supports_dt_relr] } then {
        set DT_RELR_CC_LDFLAGS "-Wl,-z,pack-relative-relocs"
     } else {
        set DT_RELR_CC_LDFLAGS {}
@@ -334,9 +330,7 @@ if { ![info exists DT_RELR_CC_LDFLAGS] } then {
 }
 
 if { ![info exists NO_DT_RELR_LDFLAGS] } then {
-    if { [istarget "i?86-*-linux*"] \
-        || [istarget "x86_64-*-linux*"] \
-        || [istarget "i?86-*-gnu**"] } then {
+    if { [supports_dt_relr] } then {
        set NO_DT_RELR_LDFLAGS "-z nopack-relative-relocs"
     } else {
        set NO_DT_RELR_LDFLAGS {}
@@ -344,9 +338,7 @@ if { ![info exists NO_DT_RELR_LDFLAGS] } then {
 }
 
 if { ![info exists NO_DT_RELR_CC_LDFLAGS] } then {
-    if { [istarget "i?86-*-linux*"] \
-        || [istarget "x86_64-*-linux*"] \
-        || [istarget "i?86-*-gnu**"] } then {
+    if { [supports_dt_relr] } then {
        set NO_DT_RELR_CC_LDFLAGS "-Wl,-z,nopack-relative-relocs"
     } else {
        set NO_DT_RELR_CC_LDFLAGS {}
index 55c93cefb59d836a46c557b881107e132ad78741..5280f628da776a83b41418fe0d27f7ba4137cc17 100644 (file)
@@ -1,7 +1,7 @@
 #source: dt-relr-1.s
 #ld: -e _start $DT_RELR_LDFLAGS
 #readelf: -rW -d
-#target: x86_64-*-linux* i?86-*-linux-gnu i?86-*-gnu*
+#target: [supports_dt_relr]
 
 #...
 There is no dynamic section in this file.
index 2b78f75d3782f5765bf529222f248b9a8e3dfba0..f9d75d3de124b32057433bd7b8d16072fef39652 100644 (file)
@@ -1,7 +1,7 @@
 #source: dt-relr-1.s
 #ld: -e _start -pie $DT_RELR_LDFLAGS
 #readelf: -rW -d
-#target: x86_64-*-linux* i?86-*-linux-gnu i?86-*-gnu*
+#target: [supports_dt_relr]
 
 #failif
 #...
index 14f6cda683275d1f918b3f9668d7fd4499c1a990..7e3d52071461129e4c40042b17fd8b7b26414ef9 100644 (file)
@@ -1,7 +1,7 @@
 #source: dt-relr-1.s
 #ld: -shared $DT_RELR_LDFLAGS
 #readelf: -rW -d
-#target: x86_64-*-linux* i?86-*-linux-gnu i?86-*-gnu*
+#target: [supports_dt_relr]
 
 #failif
 #...
index 31ef9e8e80e8093fe5926b9ae2ad7eed51daa415..eb00ea0c0570686999461893e4ba2cda007a6e56 100644 (file)
@@ -1,7 +1,7 @@
 #source: dt-relr-2.s
 #ld: -e _start $DT_RELR_LDFLAGS
 #readelf: -rW -d
-#target: x86_64-*-linux* i?86-*-linux-gnu i?86-*-gnu*
+#target: [supports_dt_relr]
 
 #...
 There is no dynamic section in this file.
index 7c401732a5675564e9e8d1e68d77111d338a4f2a..cea2931e37de3fb8b6d1ed9e98c3c99b698fdbaa 100644 (file)
@@ -1,7 +1,7 @@
 #source: dt-relr-2.s
 #ld: -e _start -pie $DT_RELR_LDFLAGS
 #readelf: -rW -d
-#target: x86_64-*-linux* i?86-*-linux-gnu i?86-*-gnu*
+#target: [supports_dt_relr]
 
 #...
  0x[0-9a-f]+ \(RELR\)    +0x[0-9a-f]+
index 63877b2f90fd918d137b96f0c8b53e398ee6797f..73087a67533ecd5944b8dd4e55f7ca52b10a83d4 100644 (file)
@@ -1,7 +1,7 @@
 #source: dt-relr-2.s
 #ld: -shared $DT_RELR_LDFLAGS
 #readelf: -rW -d
-#target: x86_64-*-linux* i?86-*-linux-gnu i?86-*-gnu*
+#target: [supports_dt_relr]
 
 #...
  0x[0-9a-f]+ \(RELR\)    +0x[0-9a-f]+
index e11528f395c4ad25e13aee10f3c6da751de051f3..4987b0865a3e727d2e8dd22764c510089f63e09f 100644 (file)
@@ -1,7 +1,7 @@
 #source: dt-relr-2.s
 #ld: -e _start -pie $DT_RELR_LDFLAGS --no-relax
 #readelf: -rW -d
-#target: x86_64-*-linux* i?86-*-linux-gnu i?86-*-gnu*
+#target: [supports_dt_relr]
 
 #...
  0x[0-9a-f]+ \(RELR\)    +0x[0-9a-f]+
index 9cd268f9e7311f9090733e8538ef963a2b26734d..24ce6cc007051e9cc97acdc7a7af281e16f9fc87 100644 (file)
@@ -1,7 +1,7 @@
 #source: dt-relr-2.s
 #ld: -e _start -pie $DT_RELR_LDFLAGS -z nocombreloc
 #readelf: -rW -d
-#target: x86_64-*-linux* i?86-*-linux-gnu i?86-*-gnu*
+#target: [supports_dt_relr]
 
 #...
  0x[0-9a-f]+ \(RELR\)    +0x[0-9a-f]+
index 4ad592f71fbab14a921831c31ca3a37a16046a73..6e2d86b2a74137de3ff7633eaf17f86b38cf16a5 100644 (file)
@@ -1,7 +1,7 @@
 #source: dt-relr-2.s
 #ld: -r $DT_RELR_LDFLAGS
 #readelf: -rW
-#target: x86_64-*-linux* i?86-*-linux-gnu i?86-*-gnu*
+#target: [supports_dt_relr]
 
 #...
 Relocation section '\.rel(a|)\.data' at offset 0x[0-9a-f]+ contains 5 entries:
index 78e370068af8d170a72225849b1b4d024f00ae69..bbdcf123286df11e88fdcb8c82d06b2e832051c6 100644 (file)
@@ -1,7 +1,7 @@
 #source: dt-relr-2.s
 #ld: -e _start -pie $NO_DT_RELR_LDFLAGS
 #readelf: -rW -d
-#target: x86_64-*-linux* i?86-*-linux-gnu i?86-*-gnu*
+#target: [supports_dt_relr]
 
 #failif
 #...
index 312373fb1797ea6b5c22b9290ea1bf77c158a865..3d0bdfc710361f814f8d45627cacab7157ba0187 100644 (file)
@@ -1,7 +1,7 @@
 #source: dt-relr-2.s
 #ld: -e _start -shared $NO_DT_RELR_LDFLAGS
 #readelf: -rW -d
-#target: x86_64-*-linux* i?86-*-linux-gnu i?86-*-gnu*
+#target: [supports_dt_relr]
 
 #failif
 #...
index 5a8a014803d1e8b6c46b0513b988cb3b9d6e6dc0..44180a989ecdaa1bcd82b388d5b150a8c938717f 100644 (file)
@@ -1,7 +1,7 @@
 #source: dt-relr-3.s
 #ld: -e _start -pie $DT_RELR_LDFLAGS
 #readelf: -rW -d
-#target: x86_64-*-linux* i?86-*-linux-gnu i?86-*-gnu*
+#target: [supports_dt_relr]
 
 #failif
 #...
index 6c38e6968dc18b96e3f57d47d5e267f523e634ca..20d1f75fd413cb832ddde996140b0a24e6fa6e62 100644 (file)
@@ -1,7 +1,7 @@
 #source: dt-relr-3.s
 #ld: -shared $DT_RELR_LDFLAGS
 #readelf: -rW -d
-#target: x86_64-*-linux* i?86-*-linux-gnu i?86-*-gnu*
+#target: [supports_dt_relr]
 
 #failif
 #...
index 51d21e400ab48cde97fc9f267e224323c9fe3361..280373ec17a57a63bfb30a2c371bb6ea49b6cab1 100644 (file)
@@ -19,8 +19,7 @@
 # MA 02110-1301, USA.
 #
 
-# Linux tests.
-if { ![istarget "*-*-linux*"] } {
+if { ![supports_dt_relr] } {
     return
 }