summaryrefslogtreecommitdiff
path: root/ld/testsuite
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2020-04-30 13:49:30 +0100
committerNick Clifton <nickc@redhat.com>2020-04-30 13:49:30 +0100
commit8a8a1171237d45e20b2ebb18ee2d3f8686e01b82 (patch)
tree5369d51cd7cda1444cb313684cfa573e243b615a /ld/testsuite
parent627c7fb8ea16388f349b6b26e20bf017d71e51fe (diff)
downloadbinutils-gdb-8a8a1171237d45e20b2ebb18ee2d3f8686e01b82.tar.gz
Add generic tests for linker support of the -shared or -pie options to tests which use them.
binutils* testsuite/lib/binutils-common.exp (check_pie_support): New proc. ld * testsuite/ld-elf/compress1c.d: XFAIL if thet target linker does not support the -shared command line option. * /ld-elf/compressed1c.d: Likewise. * /ld-elf/compressed1e.d: Likewise. * /ld-elf/dynamic1.d: Likewise. * /ld-elf/dynsym1.d: Likewise. * /ld-elf/ehdr_start-shared.d: Likewise. * /ld-elf/exclude3b.d: Likewise. * /ld-elf/global1.d: Likewise. * /ld-elf/hash.d: Likewise. * /ld-elf/local1.d: Likewise. * /ld-elf/mbind1b.d: Likewise. * /ld-elf/now-1.d: Likewise. * /ld-elf/now-2.d: Likewise. * /ld-elf/now-3.d: Likewise. * /ld-elf/now-4.d: Likewise. * /ld-elf/pr12975.d: Likewise. * /ld-elf/pr13177.d: Likewise. * /ld-elf/pr13195.d: Likewise. * /ld-elf/pr16322.d: Likewise. * /ld-elf/pr16498a.d: Likewise. * /ld-elf/pr16498b.d: Likewise. * /ld-elf/pr17615.d: Likewise. * /ld-elf/pr19162.d: Likewise. * /ld-elf/pr19698.d: Likewise. * /ld-elf/pr20513c.d: Likewise. * /ld-elf/pr20513d.d: Likewise. * /ld-elf/pr21389a.d: Likewise. * /ld-elf/pr21389b.d: Likewise. * /ld-elf/pr21389c.d: Likewise. * /ld-elf/pr21562a.d: Likewise. * /ld-elf/pr21562b.d: Likewise. * /ld-elf/pr21562c.d: Likewise. * /ld-elf/pr21562d.d: Likewise. * /ld-elf/pr21562e.d: Likewise. * /ld-elf/pr21562f.d: Likewise. * /ld-elf/pr21562g.d: Likewise. * /ld-elf/pr21562h.d: Likewise. * /ld-elf/pr21562i.d: Likewise. * /ld-elf/pr21562j.d: Likewise. * /ld-elf/pr21562k.d: Likewise. * /ld-elf/pr21562l.d: Likewise. * /ld-elf/pr21562m.d: Likewise. * /ld-elf/pr21562n.d: Likewise. * /ld-elf/pr21903a.d: Likewise. * /ld-elf/pr21903b.d: Likewise. * /ld-elf/pr22269b.d: Likewise. * /ld-elf/pr22393-1a.d: Likewise. * /ld-elf/pr22393-1b.d: Likewise. * /ld-elf/pr23658-1c.d: Likewise. * /ld-elf/pr25708.d: Likewise. * /ld-elf/rpath-1.d: Likewise. * /ld-elf/rpath-2.d: Likewise. * /ld-elf/runpath-1.d: Likewise. * /ld-elf/runpath-2.d: Likewise. * /ld-elf/sizeofb.d: Likewise. * /ld-elf/startofb.d: Likewise. * /ld-elf/strtab.d: Likewise. * /ld-elf/textaddr2.d: Likewise. * /ld-elf/textaddr5.d: Likewise. * /ld-elf/textaddr6.d: Likewise. * /ld-elf/unknown2.d: Likewise. * /ld-undefined/entry-3.d: Likewise. * /ld-undefined/entry-4.d: Likewise. * /ld-elf/mbind1c.d: XFAIL if the target linker does not support the -pie option. * /ld-elf/pie.d: Likewise. * /ld-elf/pr19539.d: Likewise. * /ld-elf/pr21903d.d: Likewise. * /ld-elf/pr22269a.d: Likewise. * /ld-elf/pr22393-1c.d: Likewise. * /ld-elf/pr22393-1d.d: Likewise. * /ld-elf/pr22423.d: Likewise. * /ld-elf/loadaddr1.d: Expect to fail on the rx-linux target. * /ld-elf/loadaddr2.d: Likewise. * /ld-elf/pr22393-1e.d: Likewise. * /ld-elf/pr22393-1f.d: Likewise. * /ld-elf/textaddr1.d: Likewise. * /ld-elf/textaddr4.d: Likewise.
Diffstat (limited to 'ld/testsuite')
-rw-r--r--ld/testsuite/ld-elf/compress1c.d2
-rw-r--r--ld/testsuite/ld-elf/compressed1c.d2
-rw-r--r--ld/testsuite/ld-elf/compressed1e.d2
-rw-r--r--ld/testsuite/ld-elf/dynamic1.d2
-rw-r--r--ld/testsuite/ld-elf/dynsym1.d2
-rw-r--r--ld/testsuite/ld-elf/ehdr_start-shared.d2
-rw-r--r--ld/testsuite/ld-elf/exclude3b.d2
-rw-r--r--ld/testsuite/ld-elf/global1.d2
-rw-r--r--ld/testsuite/ld-elf/hash.d2
-rw-r--r--ld/testsuite/ld-elf/loadaddr1.d2
-rw-r--r--ld/testsuite/ld-elf/loadaddr2.d2
-rw-r--r--ld/testsuite/ld-elf/local1.d2
-rw-r--r--ld/testsuite/ld-elf/mbind1b.d2
-rw-r--r--ld/testsuite/ld-elf/mbind1c.d2
-rw-r--r--ld/testsuite/ld-elf/now-1.d2
-rw-r--r--ld/testsuite/ld-elf/now-2.d2
-rw-r--r--ld/testsuite/ld-elf/now-3.d2
-rw-r--r--ld/testsuite/ld-elf/now-4.d2
-rw-r--r--ld/testsuite/ld-elf/pie.d2
-rw-r--r--ld/testsuite/ld-elf/pr12975.d2
-rw-r--r--ld/testsuite/ld-elf/pr13177.d2
-rw-r--r--ld/testsuite/ld-elf/pr13195.d2
-rw-r--r--ld/testsuite/ld-elf/pr16322.d2
-rw-r--r--ld/testsuite/ld-elf/pr16498a.d2
-rw-r--r--ld/testsuite/ld-elf/pr16498b.d2
-rw-r--r--ld/testsuite/ld-elf/pr17615.d2
-rw-r--r--ld/testsuite/ld-elf/pr19162.d2
-rw-r--r--ld/testsuite/ld-elf/pr19539.d2
-rw-r--r--ld/testsuite/ld-elf/pr19698.d2
-rw-r--r--ld/testsuite/ld-elf/pr20513c.d2
-rw-r--r--ld/testsuite/ld-elf/pr20513d.d2
-rw-r--r--ld/testsuite/ld-elf/pr21389a.d2
-rw-r--r--ld/testsuite/ld-elf/pr21389b.d2
-rw-r--r--ld/testsuite/ld-elf/pr21389c.d2
-rw-r--r--ld/testsuite/ld-elf/pr21562a.d2
-rw-r--r--ld/testsuite/ld-elf/pr21562b.d2
-rw-r--r--ld/testsuite/ld-elf/pr21562c.d2
-rw-r--r--ld/testsuite/ld-elf/pr21562d.d2
-rw-r--r--ld/testsuite/ld-elf/pr21562e.d2
-rw-r--r--ld/testsuite/ld-elf/pr21562f.d2
-rw-r--r--ld/testsuite/ld-elf/pr21562g.d2
-rw-r--r--ld/testsuite/ld-elf/pr21562h.d2
-rw-r--r--ld/testsuite/ld-elf/pr21562i.d2
-rw-r--r--ld/testsuite/ld-elf/pr21562j.d2
-rw-r--r--ld/testsuite/ld-elf/pr21562k.d2
-rw-r--r--ld/testsuite/ld-elf/pr21562l.d2
-rw-r--r--ld/testsuite/ld-elf/pr21562m.d2
-rw-r--r--ld/testsuite/ld-elf/pr21562n.d2
-rw-r--r--ld/testsuite/ld-elf/pr21903a.d2
-rw-r--r--ld/testsuite/ld-elf/pr21903b.d2
-rw-r--r--ld/testsuite/ld-elf/pr21903d.d2
-rw-r--r--ld/testsuite/ld-elf/pr22269a.d2
-rw-r--r--ld/testsuite/ld-elf/pr22269b.d2
-rw-r--r--ld/testsuite/ld-elf/pr22393-1a.d2
-rw-r--r--ld/testsuite/ld-elf/pr22393-1b.d2
-rw-r--r--ld/testsuite/ld-elf/pr22393-1c.d2
-rw-r--r--ld/testsuite/ld-elf/pr22393-1d.d2
-rw-r--r--ld/testsuite/ld-elf/pr22393-1e.d2
-rw-r--r--ld/testsuite/ld-elf/pr22393-1f.d2
-rw-r--r--ld/testsuite/ld-elf/pr22423.d2
-rw-r--r--ld/testsuite/ld-elf/pr23658-1c.d2
-rw-r--r--ld/testsuite/ld-elf/pr25708.d2
-rw-r--r--ld/testsuite/ld-elf/rpath-1.d2
-rw-r--r--ld/testsuite/ld-elf/rpath-2.d2
-rw-r--r--ld/testsuite/ld-elf/runpath-1.d2
-rw-r--r--ld/testsuite/ld-elf/runpath-2.d2
-rw-r--r--ld/testsuite/ld-elf/sizeofb.d2
-rw-r--r--ld/testsuite/ld-elf/startofb.d2
-rw-r--r--ld/testsuite/ld-elf/strtab.d2
-rw-r--r--ld/testsuite/ld-elf/textaddr1.d2
-rw-r--r--ld/testsuite/ld-elf/textaddr2.d2
-rw-r--r--ld/testsuite/ld-elf/textaddr4.d2
-rw-r--r--ld/testsuite/ld-elf/textaddr5.d2
-rw-r--r--ld/testsuite/ld-elf/textaddr6.d2
-rw-r--r--ld/testsuite/ld-elf/unknown2.d2
-rw-r--r--ld/testsuite/ld-undefined/entry-3.d2
-rw-r--r--ld/testsuite/ld-undefined/entry-4.d2
77 files changed, 77 insertions, 77 deletions
diff --git a/ld/testsuite/ld-elf/compress1c.d b/ld/testsuite/ld-elf/compress1c.d
index d95f4ff7b89..dab0f30d470 100644
--- a/ld/testsuite/ld-elf/compress1c.d
+++ b/ld/testsuite/ld-elf/compress1c.d
@@ -3,7 +3,7 @@
#ld: -shared
#readelf: -S --wide
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#failif
#...
diff --git a/ld/testsuite/ld-elf/compressed1c.d b/ld/testsuite/ld-elf/compressed1c.d
index e056429cc28..32af4762c83 100644
--- a/ld/testsuite/ld-elf/compressed1c.d
+++ b/ld/testsuite/ld-elf/compressed1c.d
@@ -3,7 +3,7 @@
#ld: -shared --compress-debug-sections=none
#readelf: -t
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#failif
#...
diff --git a/ld/testsuite/ld-elf/compressed1e.d b/ld/testsuite/ld-elf/compressed1e.d
index db93f7016c6..f8604c445d9 100644
--- a/ld/testsuite/ld-elf/compressed1e.d
+++ b/ld/testsuite/ld-elf/compressed1e.d
@@ -3,7 +3,7 @@
#ld: -shared --compress-debug-sections=zlib-gnu
#readelf: -SW
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#failif
#...
diff --git a/ld/testsuite/ld-elf/dynamic1.d b/ld/testsuite/ld-elf/dynamic1.d
index 95717f66963..5bebd175c0f 100644
--- a/ld/testsuite/ld-elf/dynamic1.d
+++ b/ld/testsuite/ld-elf/dynamic1.d
@@ -1,7 +1,7 @@
#ld: -shared -T dynamic1.ld
#readelf: -l --wide
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#...
Section to Segment mapping:
diff --git a/ld/testsuite/ld-elf/dynsym1.d b/ld/testsuite/ld-elf/dynsym1.d
index 6e534fc02ba..171c5f75ba7 100644
--- a/ld/testsuite/ld-elf/dynsym1.d
+++ b/ld/testsuite/ld-elf/dynsym1.d
@@ -2,7 +2,7 @@
#ld: -shared
#readelf: --dyn-syms
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#...
+[0-9]+: +[0-9a-f]+ +[0-9]+ +FUNC +GLOBAL +DEFAULT +[1-9] _start
diff --git a/ld/testsuite/ld-elf/ehdr_start-shared.d b/ld/testsuite/ld-elf/ehdr_start-shared.d
index 2baf1593ecf..6cbaa3a3416 100644
--- a/ld/testsuite/ld-elf/ehdr_start-shared.d
+++ b/ld/testsuite/ld-elf/ehdr_start-shared.d
@@ -2,7 +2,7 @@
#ld: -e _start -shared
#nm: -n
#target: *-*-linux* *-*-gnu* *-*-nacl* arm*-*-uclinuxfdpiceabi
-#xfail: cris*-*-* frv-*-* h8300-*-*
+#xfail: cris*-*-* frv-*-* ![check_shared_lib_support]
#...
[0-9a-f]*000 [Adrt] __ehdr_start
diff --git a/ld/testsuite/ld-elf/exclude3b.d b/ld/testsuite/ld-elf/exclude3b.d
index cee6c1dab6d..632d0b56803 100644
--- a/ld/testsuite/ld-elf/exclude3b.d
+++ b/ld/testsuite/ld-elf/exclude3b.d
@@ -2,7 +2,7 @@
#ld: --shared
#readelf: -S --wide
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#failif
#...
diff --git a/ld/testsuite/ld-elf/global1.d b/ld/testsuite/ld-elf/global1.d
index 71e956160ec..f1c24cdaee0 100644
--- a/ld/testsuite/ld-elf/global1.d
+++ b/ld/testsuite/ld-elf/global1.d
@@ -2,7 +2,7 @@
#ld: -shared -z global
#readelf: -d
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#...
0x0*6ffffffb \(FLAGS_1\) *Flags: GLOBAL
diff --git a/ld/testsuite/ld-elf/hash.d b/ld/testsuite/ld-elf/hash.d
index 61d84e44a6e..ab278c00040 100644
--- a/ld/testsuite/ld-elf/hash.d
+++ b/ld/testsuite/ld-elf/hash.d
@@ -2,7 +2,7 @@
#readelf: -d -s -D
#ld: -shared --hash-style=gnu
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#xfail: mips*-*-*
# MIPS uses a different style of GNU hash due to psABI restrictions
# on dynsym table ordering.
diff --git a/ld/testsuite/ld-elf/loadaddr1.d b/ld/testsuite/ld-elf/loadaddr1.d
index e118163c254..814afc13766 100644
--- a/ld/testsuite/ld-elf/loadaddr1.d
+++ b/ld/testsuite/ld-elf/loadaddr1.d
@@ -2,7 +2,7 @@
#ld: -T loadaddr1.t -T loadaddr.t -z max-page-size=0x200000 -z noseparate-code
#readelf: -l --wide
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: h8300-*-* rx-*-linux*
#...
LOAD +0x000000 0xf*80000000 0xf*80000000 0x100050 0x100050 RWE 0x200000
diff --git a/ld/testsuite/ld-elf/loadaddr2.d b/ld/testsuite/ld-elf/loadaddr2.d
index eb1517e890f..64843c2a7d4 100644
--- a/ld/testsuite/ld-elf/loadaddr2.d
+++ b/ld/testsuite/ld-elf/loadaddr2.d
@@ -2,7 +2,7 @@
#ld: -T loadaddr2.t -T loadaddr.t -z max-page-size=0x200000 -z noseparate-code
#readelf: -l --wide
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: h8300-*-* rx-*-linux*
#...
LOAD +0x000000 0xf*80000000 0xf*80000000 0x100050 0x100050 RWE 0x200000
diff --git a/ld/testsuite/ld-elf/local1.d b/ld/testsuite/ld-elf/local1.d
index c5b7876a126..4cb4faa4f93 100644
--- a/ld/testsuite/ld-elf/local1.d
+++ b/ld/testsuite/ld-elf/local1.d
@@ -1,7 +1,7 @@
#ld: -shared --version-script local1.map
#readelf: -s --wide
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#...
.*: [0-9a-f]* +[0-9a-f]+ +OBJECT +LOCAL +DEFAULT +[0-9] +foo
diff --git a/ld/testsuite/ld-elf/mbind1b.d b/ld/testsuite/ld-elf/mbind1b.d
index 9c36b2692f8..137f8b67a03 100644
--- a/ld/testsuite/ld-elf/mbind1b.d
+++ b/ld/testsuite/ld-elf/mbind1b.d
@@ -2,7 +2,7 @@
#ld: -shared -z common-page-size=0x1000 -z max-page-size=0x200000
#readelf: -S -l --wide
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#...
\[[ 0-9]+\] \.mbind\.text[ ]+PROGBITS[ ]+[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 00 AXD 0 0 4096
diff --git a/ld/testsuite/ld-elf/mbind1c.d b/ld/testsuite/ld-elf/mbind1c.d
index 1c794c13640..9cc333e9f79 100644
--- a/ld/testsuite/ld-elf/mbind1c.d
+++ b/ld/testsuite/ld-elf/mbind1c.d
@@ -2,7 +2,7 @@
#ld: -pie -z common-page-size=0x1000 -z max-page-size=0x200000
#readelf: -S -l --wide
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_pie_support]
#...
\[[ 0-9]+\] \.mbind\.text[ ]+PROGBITS[ ]+[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 00 AXD 0 0 4096
diff --git a/ld/testsuite/ld-elf/now-1.d b/ld/testsuite/ld-elf/now-1.d
index 41c47380e6c..060d1ebed57 100644
--- a/ld/testsuite/ld-elf/now-1.d
+++ b/ld/testsuite/ld-elf/now-1.d
@@ -2,7 +2,7 @@
#readelf: -d -W
#ld: -shared -z now --enable-new-dtags
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#failif
#...
diff --git a/ld/testsuite/ld-elf/now-2.d b/ld/testsuite/ld-elf/now-2.d
index 6c50dc0e729..970878c0777 100644
--- a/ld/testsuite/ld-elf/now-2.d
+++ b/ld/testsuite/ld-elf/now-2.d
@@ -2,7 +2,7 @@
#readelf: -d -W
#ld: -shared -z now --enable-new-dtags
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#...
0x[0-9a-f]+ +\(FLAGS\) +BIND_NOW
diff --git a/ld/testsuite/ld-elf/now-3.d b/ld/testsuite/ld-elf/now-3.d
index 34e0fad2552..2ffb5271e49 100644
--- a/ld/testsuite/ld-elf/now-3.d
+++ b/ld/testsuite/ld-elf/now-3.d
@@ -2,7 +2,7 @@
#readelf: -d -W
#ld: -shared -z now --disable-new-dtags
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#failif
#...
diff --git a/ld/testsuite/ld-elf/now-4.d b/ld/testsuite/ld-elf/now-4.d
index e3058ed38a5..0c0c8e144a5 100644
--- a/ld/testsuite/ld-elf/now-4.d
+++ b/ld/testsuite/ld-elf/now-4.d
@@ -2,7 +2,7 @@
#readelf: -d -W
#ld: -shared -z now --disable-new-dtags
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#...
0x[0-9a-f]+ +\(BIND_NOW\) +
diff --git a/ld/testsuite/ld-elf/pie.d b/ld/testsuite/ld-elf/pie.d
index 94511dd683e..11f3b9034db 100644
--- a/ld/testsuite/ld-elf/pie.d
+++ b/ld/testsuite/ld-elf/pie.d
@@ -2,7 +2,7 @@
#readelf: -d -W
#ld: -pie
#target: *-*-linux* *-*-gnu* *-*-solaris* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_pie_support]
#...
+0x[0-9a-f]+ +\(FLAGS_1\) +Flags: +PIE
diff --git a/ld/testsuite/ld-elf/pr12975.d b/ld/testsuite/ld-elf/pr12975.d
index bd33db2258a..2f5551ea0bb 100644
--- a/ld/testsuite/ld-elf/pr12975.d
+++ b/ld/testsuite/ld-elf/pr12975.d
@@ -1,7 +1,7 @@
#ld: --gc-sections -shared -version-script pr12975.t
#readelf: -s --wide
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: [is_generic] h8300-*-* hppa64-*-* mep-*-* mn10200-*-*
+#xfail: [is_generic] hppa64-*-* mep-*-* mn10200-*-* ![check_shared_lib_support]
# generic linker targets don't support --gc-sections, nor do a bunch of others
#failif
diff --git a/ld/testsuite/ld-elf/pr13177.d b/ld/testsuite/ld-elf/pr13177.d
index 30b9ce68ebc..c67ee122dfe 100644
--- a/ld/testsuite/ld-elf/pr13177.d
+++ b/ld/testsuite/ld-elf/pr13177.d
@@ -2,7 +2,7 @@
#ld: --gc-sections -shared
#readelf: -s -D --wide
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: [is_generic] h8300-*-* hppa64-*-* mep-*-* mn10200-*-*
+#xfail: [is_generic] hppa64-*-* mep-*-* mn10200-*-* ![check_shared_lib_support]
# generic linker targets don't support --gc-sections, nor do a bunch of others
#failif
diff --git a/ld/testsuite/ld-elf/pr13195.d b/ld/testsuite/ld-elf/pr13195.d
index c22de0e6ce2..0409c7102ec 100644
--- a/ld/testsuite/ld-elf/pr13195.d
+++ b/ld/testsuite/ld-elf/pr13195.d
@@ -1,7 +1,7 @@
#ld: --gc-sections -shared -version-script pr13195.t
#readelf: -s --wide -D
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: [is_generic] h8300-*-* hppa64-*-* mep-*-* mn10200-*-*
+#xfail: [is_generic] hppa64-*-* mep-*-* mn10200-*-* ![check_shared_lib_support]
# generic linker targets don't support --gc-sections, nor do a bunch of others
#...
diff --git a/ld/testsuite/ld-elf/pr16322.d b/ld/testsuite/ld-elf/pr16322.d
index 6e7c22a956e..7bd1a6ff1ae 100644
--- a/ld/testsuite/ld-elf/pr16322.d
+++ b/ld/testsuite/ld-elf/pr16322.d
@@ -1,7 +1,7 @@
#ld: -shared -z relro -z noseparate-code
#readelf: -l --wide
#target: *-*-linux-gnu *-*-gnu* *-*-nacl* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#...
GNU_RELRO .*
diff --git a/ld/testsuite/ld-elf/pr16498a.d b/ld/testsuite/ld-elf/pr16498a.d
index 3d6554e7794..de683896122 100644
--- a/ld/testsuite/ld-elf/pr16498a.d
+++ b/ld/testsuite/ld-elf/pr16498a.d
@@ -1,7 +1,7 @@
#ld: -shared -T pr16498a.t
#readelf: -l --wide
#target: *-*-linux* *-*-gnu* *-*-nacl* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#...
TLS .*
diff --git a/ld/testsuite/ld-elf/pr16498b.d b/ld/testsuite/ld-elf/pr16498b.d
index dcddbfd93b1..aceb307df70 100644
--- a/ld/testsuite/ld-elf/pr16498b.d
+++ b/ld/testsuite/ld-elf/pr16498b.d
@@ -2,7 +2,7 @@
#ld: -shared -T pr16498b.t
#readelf: -l --wide
#target: *-*-linux* *-*-gnu* *-*-nacl* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#...
TLS .*
diff --git a/ld/testsuite/ld-elf/pr17615.d b/ld/testsuite/ld-elf/pr17615.d
index a5af4d33a52..6dc2c16cad9 100644
--- a/ld/testsuite/ld-elf/pr17615.d
+++ b/ld/testsuite/ld-elf/pr17615.d
@@ -1,7 +1,7 @@
#ld: --gc-sections -shared
#readelf: -S --wide --dyn-syms
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: [is_generic] h8300-*-* hppa64-*-* mep-*-* mn10200-*-*
+#xfail: [is_generic] hppa64-*-* mep-*-* mn10200-*-* ![check_shared_lib_support]
# generic linker targets don't support --gc-sections, nor do a bunch of others
#...
diff --git a/ld/testsuite/ld-elf/pr19162.d b/ld/testsuite/ld-elf/pr19162.d
index aa0a69cc9af..1e7c1a9f227 100644
--- a/ld/testsuite/ld-elf/pr19162.d
+++ b/ld/testsuite/ld-elf/pr19162.d
@@ -3,7 +3,7 @@
#ld: -shared -z max-page-size=0x200000 -z noseparate-code
#readelf: -l --wide
#target: *-*-linux* *-*-gnu* *-*-nacl* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-* hppa*-*-*
+#xfail: hppa*-*-* ![check_shared_lib_support]
# hppa fails due to PR 12376.
#...
diff --git a/ld/testsuite/ld-elf/pr19539.d b/ld/testsuite/ld-elf/pr19539.d
index 24a9b174847..c9f91ce6634 100644
--- a/ld/testsuite/ld-elf/pr19539.d
+++ b/ld/testsuite/ld-elf/pr19539.d
@@ -3,7 +3,7 @@
#ld: -pie -T pr19539.t
#readelf : --dyn-syms --wide
#target: *-*-linux* *-*-gnu* *-*-solaris* arm*-*-uclinuxfdpiceabi
-#xfail: cris*-*-* h8300-*-*
+#xfail: cris*-*-* ![check_pie_support]
Symbol table '\.dynsym' contains [0-9]+ entr(y|ies):
#pass
diff --git a/ld/testsuite/ld-elf/pr19698.d b/ld/testsuite/ld-elf/pr19698.d
index f7b8aae4980..b3d3caf5e48 100644
--- a/ld/testsuite/ld-elf/pr19698.d
+++ b/ld/testsuite/ld-elf/pr19698.d
@@ -1,7 +1,7 @@
#ld: -shared $srcdir/$subdir/pr19698.t
#readelf : --dyn-syms --wide
#target: *-*-linux* *-*-gnu* *-*-solaris* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
Symbol table '\.dynsym' contains [0-9]+ entries:
#...
diff --git a/ld/testsuite/ld-elf/pr20513c.d b/ld/testsuite/ld-elf/pr20513c.d
index e7c2dde656c..80059735df9 100644
--- a/ld/testsuite/ld-elf/pr20513c.d
+++ b/ld/testsuite/ld-elf/pr20513c.d
@@ -3,7 +3,7 @@
#ld: -shared
#readelf: -S --wide
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#failif
#...
diff --git a/ld/testsuite/ld-elf/pr20513d.d b/ld/testsuite/ld-elf/pr20513d.d
index c3797a8bea8..8848adba6cd 100644
--- a/ld/testsuite/ld-elf/pr20513d.d
+++ b/ld/testsuite/ld-elf/pr20513d.d
@@ -3,7 +3,7 @@
#ld: -shared
#readelf: -S --wide
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#failif
#...
diff --git a/ld/testsuite/ld-elf/pr21389a.d b/ld/testsuite/ld-elf/pr21389a.d
index ff86c769cc7..22c8601cecb 100644
--- a/ld/testsuite/ld-elf/pr21389a.d
+++ b/ld/testsuite/ld-elf/pr21389a.d
@@ -2,7 +2,7 @@
#ld: -shared --version-script pr21389.map -soname=pr21389.so
#objdump: -p
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#...
Version definitions:
diff --git a/ld/testsuite/ld-elf/pr21389b.d b/ld/testsuite/ld-elf/pr21389b.d
index 8f2049f3e7c..4e5393a045b 100644
--- a/ld/testsuite/ld-elf/pr21389b.d
+++ b/ld/testsuite/ld-elf/pr21389b.d
@@ -2,7 +2,7 @@
#ld: -shared --version-script pr21389.map -soname=pr21389.so
#readelf: -d
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#...
0x[0-9a-f]* \(SONAME\) +Library soname: \[pr21389.so\]
diff --git a/ld/testsuite/ld-elf/pr21389c.d b/ld/testsuite/ld-elf/pr21389c.d
index 7db04179adc..cdd5f380c09 100644
--- a/ld/testsuite/ld-elf/pr21389c.d
+++ b/ld/testsuite/ld-elf/pr21389c.d
@@ -2,7 +2,7 @@
#ld: -shared -soname=pr21389.so
#readelf: -d
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#...
0x[0-9a-f]* \(SONAME\) +Library soname: \[pr21389.so\]
diff --git a/ld/testsuite/ld-elf/pr21562a.d b/ld/testsuite/ld-elf/pr21562a.d
index 159292e7e17..bcd561461c1 100644
--- a/ld/testsuite/ld-elf/pr21562a.d
+++ b/ld/testsuite/ld-elf/pr21562a.d
@@ -1,7 +1,7 @@
#ld: -shared -z defs --gc-sections
#readelf: -s -S --wide
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: [is_generic] h8300-*-* hppa64-*-* mep-*-* mn10200-*-*
+#xfail: [is_generic] hppa64-*-* mep-*-* mn10200-*-* ![check_shared_lib_support]
# generic linker targets don't support --gc-sections, nor do a bunch of others
#...
diff --git a/ld/testsuite/ld-elf/pr21562b.d b/ld/testsuite/ld-elf/pr21562b.d
index 5e891b8655e..0345e81f860 100644
--- a/ld/testsuite/ld-elf/pr21562b.d
+++ b/ld/testsuite/ld-elf/pr21562b.d
@@ -1,7 +1,7 @@
#ld: -shared -z defs --gc-sections
#readelf: -s -S --wide
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: [is_generic] h8300-*-* hppa64-*-* mep-*-* mn10200-*-*
+#xfail: [is_generic] h8300-*-* hppa64-*-* mep-*-* mn10200-*-* ![check_shared_lib_support]
# generic linker targets don't support --gc-sections, nor do a bunch of others
#...
diff --git a/ld/testsuite/ld-elf/pr21562c.d b/ld/testsuite/ld-elf/pr21562c.d
index 758be5cdaf3..944d3f48f0f 100644
--- a/ld/testsuite/ld-elf/pr21562c.d
+++ b/ld/testsuite/ld-elf/pr21562c.d
@@ -2,7 +2,7 @@
#ld: -shared -z defs --gc-sections -T pr21562a.t
#readelf: -s -S --wide
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: [is_generic] h8300-*-* hppa64-*-* mep-*-* mn10200-*-*
+#xfail: [is_generic] h8300-*-* hppa64-*-* mep-*-* mn10200-*-* ![check_shared_lib_support]
# generic linker targets don't support --gc-sections, nor do a bunch of others
#...
diff --git a/ld/testsuite/ld-elf/pr21562d.d b/ld/testsuite/ld-elf/pr21562d.d
index d5a6955d912..6bf24ea9647 100644
--- a/ld/testsuite/ld-elf/pr21562d.d
+++ b/ld/testsuite/ld-elf/pr21562d.d
@@ -2,7 +2,7 @@
#ld: -shared -z defs --gc-sections -T pr21562a.t
#readelf: -s -S --wide
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: [is_generic] h8300-*-* hppa64-*-* mep-*-* mn10200-*-*
+#xfail: [is_generic] h8300-*-* hppa64-*-* mep-*-* mn10200-*-* ![check_shared_lib_support]
# generic linker targets don't support --gc-sections, nor do a bunch of others
#...
diff --git a/ld/testsuite/ld-elf/pr21562e.d b/ld/testsuite/ld-elf/pr21562e.d
index a68960add35..a230f04f7e0 100644
--- a/ld/testsuite/ld-elf/pr21562e.d
+++ b/ld/testsuite/ld-elf/pr21562e.d
@@ -2,7 +2,7 @@
#ld: -shared -z defs
#readelf: -s -S --wide
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: h8300-*-* ![check_shared_lib_support]
#...
\[[ 0-9]+\] scnfoo[ \t]+PROGBITS[ \t]+[0-9a-f]+ +[0-9a-f]+ +0*10[ \t]+.*
diff --git a/ld/testsuite/ld-elf/pr21562f.d b/ld/testsuite/ld-elf/pr21562f.d
index b3f34cae7ce..53f2ec77c3a 100644
--- a/ld/testsuite/ld-elf/pr21562f.d
+++ b/ld/testsuite/ld-elf/pr21562f.d
@@ -2,7 +2,7 @@
#ld: -shared -z defs
#readelf: -s -S --wide
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: h8300-*-* ![check_shared_lib_support]
#...
\[[ 0-9]+\] scnfoo[ \t]+PROGBITS[ \t]+[0-9a-f]+ +[0-9a-f]+ +0*10[ \t]+.*
diff --git a/ld/testsuite/ld-elf/pr21562g.d b/ld/testsuite/ld-elf/pr21562g.d
index 4bee6f6a28f..7f8d994fb75 100644
--- a/ld/testsuite/ld-elf/pr21562g.d
+++ b/ld/testsuite/ld-elf/pr21562g.d
@@ -2,7 +2,7 @@
#ld: -shared -z defs -T pr21562a.t
#readelf: -s -S --wide
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: h8300-*-* ![check_shared_lib_support]
#...
\[[ 0-9]+\] scnfoo[ \t]+PROGBITS[ \t]+[0-9a-f]+ +[0-9a-f]+ +0*10[ \t]+.*
diff --git a/ld/testsuite/ld-elf/pr21562h.d b/ld/testsuite/ld-elf/pr21562h.d
index a93fe40b13a..98966ef88dd 100644
--- a/ld/testsuite/ld-elf/pr21562h.d
+++ b/ld/testsuite/ld-elf/pr21562h.d
@@ -2,7 +2,7 @@
#ld: -shared -z defs -T pr21562a.t
#readelf: -s -S --wide
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: h8300-*-* ![check_shared_lib_support]
#...
\[[ 0-9]+\] scnfoo[ \t]+PROGBITS[ \t]+[0-9a-f]+ +[0-9a-f]+ +0*10[ \t]+.*
diff --git a/ld/testsuite/ld-elf/pr21562i.d b/ld/testsuite/ld-elf/pr21562i.d
index 2c9d9dddd64..617898c4023 100644
--- a/ld/testsuite/ld-elf/pr21562i.d
+++ b/ld/testsuite/ld-elf/pr21562i.d
@@ -2,7 +2,7 @@
#ld: -shared -z defs --gc-sections -T pr21562b.t
#readelf: -s -S --wide
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: [is_generic] h8300-*-* hppa64-*-* mep-*-* mn10200-*-*
+#xfail: [is_generic] h8300-*-* hppa64-*-* mep-*-* mn10200-*-* ![check_shared_lib_support]
# generic linker targets don't support --gc-sections, nor do a bunch of others
#...
diff --git a/ld/testsuite/ld-elf/pr21562j.d b/ld/testsuite/ld-elf/pr21562j.d
index 28b45a8600f..fff201a82b3 100644
--- a/ld/testsuite/ld-elf/pr21562j.d
+++ b/ld/testsuite/ld-elf/pr21562j.d
@@ -2,7 +2,7 @@
#ld: -shared -z defs --gc-sections -T pr21562b.t
#readelf: -s -S --wide
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: [is_generic] h8300-*-* hppa64-*-* mep-*-* mn10200-*-*
+#xfail: [is_generic] ![check_shared_lib_support] h8300-*-* hppa64-*-* mep-*-* mn10200-*-*
# generic linker targets don't support --gc-sections, nor do a bunch of others
#...
diff --git a/ld/testsuite/ld-elf/pr21562k.d b/ld/testsuite/ld-elf/pr21562k.d
index 24c29d99622..b210333df04 100644
--- a/ld/testsuite/ld-elf/pr21562k.d
+++ b/ld/testsuite/ld-elf/pr21562k.d
@@ -2,7 +2,7 @@
#ld: -shared -z defs --gc-sections -T pr21562c.t
#readelf: -s -S --wide
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: [is_generic] h8300-*-* hppa64-*-* mep-*-* mn10200-*-*
+#xfail: [is_generic] hppa64-*-* mep-*-* mn10200-*-* ![check_shared_lib_support]
# generic linker targets don't support --gc-sections, nor do a bunch of others
#...
diff --git a/ld/testsuite/ld-elf/pr21562l.d b/ld/testsuite/ld-elf/pr21562l.d
index 2dd0d98a13c..6dde202852d 100644
--- a/ld/testsuite/ld-elf/pr21562l.d
+++ b/ld/testsuite/ld-elf/pr21562l.d
@@ -2,7 +2,7 @@
#ld: -shared -z defs --gc-sections -T pr21562c.t
#readelf: -s -S --wide
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: [is_generic] h8300-*-* hppa64-*-* mep-*-* mn10200-*-*
+#xfail: [is_generic] hppa64-*-* mep-*-* mn10200-*-* ![check_shared_lib_support]
# generic linker targets don't support --gc-sections, nor do a bunch of others
#...
diff --git a/ld/testsuite/ld-elf/pr21562m.d b/ld/testsuite/ld-elf/pr21562m.d
index 2bc714f7ef6..5b3a28bd5fb 100644
--- a/ld/testsuite/ld-elf/pr21562m.d
+++ b/ld/testsuite/ld-elf/pr21562m.d
@@ -2,7 +2,7 @@
#ld: -shared -z defs --gc-sections -T pr21562d.t
#readelf: -s -S --wide
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: [is_generic] h8300-*-* hppa64-*-* mep-*-* mn10200-*-*
+#xfail: [is_generic] hppa64-*-* mep-*-* mn10200-*-* ![check_shared_lib_support]
# generic linker targets don't support --gc-sections, nor do a bunch of others
#...
diff --git a/ld/testsuite/ld-elf/pr21562n.d b/ld/testsuite/ld-elf/pr21562n.d
index 8b210bb2c0c..029390327c9 100644
--- a/ld/testsuite/ld-elf/pr21562n.d
+++ b/ld/testsuite/ld-elf/pr21562n.d
@@ -2,7 +2,7 @@
#ld: -shared -z defs --gc-sections -T pr21562d.t
#readelf: -s -S --wide
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: [is_generic] h8300-*-* hppa64-*-* mep-*-* mn10200-*-*
+#xfail: [is_generic] hppa64-*-* mep-*-* mn10200-*-* ![check_shared_lib_support]
# generic linker targets don't support --gc-sections, nor do a bunch of others
#...
diff --git a/ld/testsuite/ld-elf/pr21903a.d b/ld/testsuite/ld-elf/pr21903a.d
index 12e53f1fbbe..5bca5176620 100644
--- a/ld/testsuite/ld-elf/pr21903a.d
+++ b/ld/testsuite/ld-elf/pr21903a.d
@@ -2,7 +2,7 @@
#ld: -shared --no-define-common
#readelf: --dyn-syms
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#...
.*: 0+0 +0 +OBJECT +GLOBAL +DEFAULT +UND foo
diff --git a/ld/testsuite/ld-elf/pr21903b.d b/ld/testsuite/ld-elf/pr21903b.d
index 6ad77ea9292..c1f3db2d274 100644
--- a/ld/testsuite/ld-elf/pr21903b.d
+++ b/ld/testsuite/ld-elf/pr21903b.d
@@ -2,7 +2,7 @@
#ld: -shared
#readelf: --dyn-syms
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#...
.*: [0-9a-f]+ +4 +OBJECT +GLOBAL +DEFAULT +[0-9]+ foo
diff --git a/ld/testsuite/ld-elf/pr21903d.d b/ld/testsuite/ld-elf/pr21903d.d
index ac77d3edf88..be0ae096198 100644
--- a/ld/testsuite/ld-elf/pr21903d.d
+++ b/ld/testsuite/ld-elf/pr21903d.d
@@ -1,5 +1,5 @@
#source: pr21903.s
#ld: --no-define-common -pie
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_pie_support]
#error: --no-define-common may not be used without -shared
diff --git a/ld/testsuite/ld-elf/pr22269a.d b/ld/testsuite/ld-elf/pr22269a.d
index 47775d30aec..1ac29aef43c 100644
--- a/ld/testsuite/ld-elf/pr22269a.d
+++ b/ld/testsuite/ld-elf/pr22269a.d
@@ -3,7 +3,7 @@
#ld: -pie --no-dynamic-linker
#readelf: -r -x .data.rel.ro
#target: *-*-linux* *-*-gnu* *-*-nacl* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_pie_support]
There are no relocations in this file.
diff --git a/ld/testsuite/ld-elf/pr22269b.d b/ld/testsuite/ld-elf/pr22269b.d
index 9e61a12701d..d3eed582054 100644
--- a/ld/testsuite/ld-elf/pr22269b.d
+++ b/ld/testsuite/ld-elf/pr22269b.d
@@ -4,7 +4,7 @@
#readelf: -r -x .data.rel.ro
#warning: -z dynamic-undefined-weak ignored
#target: *-*-linux* *-*-gnu* *-*-nacl* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_pie_support]
There are no relocations in this file.
diff --git a/ld/testsuite/ld-elf/pr22393-1a.d b/ld/testsuite/ld-elf/pr22393-1a.d
index c4fd3ba6ea4..c08ecaa3b0c 100644
--- a/ld/testsuite/ld-elf/pr22393-1a.d
+++ b/ld/testsuite/ld-elf/pr22393-1a.d
@@ -2,7 +2,7 @@
#ld: -shared -z separate-code -z relro
#readelf: -l --wide
#target: *-*-linux-gnu *-*-gnu* *-*-nacl* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#failif
#...
diff --git a/ld/testsuite/ld-elf/pr22393-1b.d b/ld/testsuite/ld-elf/pr22393-1b.d
index 41cc8a02090..b0020a17142 100644
--- a/ld/testsuite/ld-elf/pr22393-1b.d
+++ b/ld/testsuite/ld-elf/pr22393-1b.d
@@ -2,7 +2,7 @@
#ld: -shared -z relro -z separate-code
#readelf: -l --wide
#target: *-*-linux-gnu *-*-gnu* *-*-nacl* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#failif
#...
diff --git a/ld/testsuite/ld-elf/pr22393-1c.d b/ld/testsuite/ld-elf/pr22393-1c.d
index 664e20ecf83..c34dab3ceea 100644
--- a/ld/testsuite/ld-elf/pr22393-1c.d
+++ b/ld/testsuite/ld-elf/pr22393-1c.d
@@ -2,7 +2,7 @@
#ld: -pie -z separate-code
#readelf: -l --wide
#target: *-*-linux-gnu *-*-gnu* *-*-nacl* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_pie_support]
#failif
#...
diff --git a/ld/testsuite/ld-elf/pr22393-1d.d b/ld/testsuite/ld-elf/pr22393-1d.d
index 573dabf7aa8..4723e53e13a 100644
--- a/ld/testsuite/ld-elf/pr22393-1d.d
+++ b/ld/testsuite/ld-elf/pr22393-1d.d
@@ -2,7 +2,7 @@
#ld: -pie -z separate-code
#readelf: -l --wide
#target: *-*-linux-gnu *-*-gnu* *-*-nacl* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_pie_support]
#failif
#...
diff --git a/ld/testsuite/ld-elf/pr22393-1e.d b/ld/testsuite/ld-elf/pr22393-1e.d
index 272a85f9ac1..51d74fa1381 100644
--- a/ld/testsuite/ld-elf/pr22393-1e.d
+++ b/ld/testsuite/ld-elf/pr22393-1e.d
@@ -2,7 +2,7 @@
#ld: -z separate-code
#readelf: -l --wide
#target: *-*-linux-gnu *-*-gnu* *-*-nacl* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: h8300-*-* rx-*-linux*
#failif
#...
diff --git a/ld/testsuite/ld-elf/pr22393-1f.d b/ld/testsuite/ld-elf/pr22393-1f.d
index 7507c40b709..2a44955d0f1 100644
--- a/ld/testsuite/ld-elf/pr22393-1f.d
+++ b/ld/testsuite/ld-elf/pr22393-1f.d
@@ -2,7 +2,7 @@
#ld: -z separate-code
#readelf: -l --wide
#target: *-*-linux-gnu *-*-gnu* *-*-nacl* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: h8300-*-* rx-*-linux*
#failif
#...
diff --git a/ld/testsuite/ld-elf/pr22423.d b/ld/testsuite/ld-elf/pr22423.d
index 5cd1ffb963d..38c3be03f17 100644
--- a/ld/testsuite/ld-elf/pr22423.d
+++ b/ld/testsuite/ld-elf/pr22423.d
@@ -2,7 +2,7 @@
#readelf: -l -W
#ld: -pie --dynamic-linker=/usr/lib/ld.so.1
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_pie_support]
#...
+PHDR +0x[0-9a-f]+ +0x[0-9a-f]+ +0x[0-9a-f]+ +0x[0-9a-f]+ +0x[0-9a-f]+ +R +0x[48]?
diff --git a/ld/testsuite/ld-elf/pr23658-1c.d b/ld/testsuite/ld-elf/pr23658-1c.d
index 166186d0945..87acecaabe1 100644
--- a/ld/testsuite/ld-elf/pr23658-1c.d
+++ b/ld/testsuite/ld-elf/pr23658-1c.d
@@ -6,7 +6,7 @@
#ld: --build-id -shared
#readelf: -l --wide
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#...
+[0-9]+ +\.note\.4 \.note\.1 +
diff --git a/ld/testsuite/ld-elf/pr25708.d b/ld/testsuite/ld-elf/pr25708.d
index 49957cc75d5..30cae8cd516 100644
--- a/ld/testsuite/ld-elf/pr25708.d
+++ b/ld/testsuite/ld-elf/pr25708.d
@@ -2,7 +2,7 @@
#ld: -shared -version-script pr13195.t
#nm: -D
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-* hppa64-*-*
+#xfail: hppa64-*-* ![check_shared_lib_support]
# h8300 doesn't support -shared, and hppa64 creates .foo
#..
diff --git a/ld/testsuite/ld-elf/rpath-1.d b/ld/testsuite/ld-elf/rpath-1.d
index 4efdabd4ca4..b1651c3bbf5 100644
--- a/ld/testsuite/ld-elf/rpath-1.d
+++ b/ld/testsuite/ld-elf/rpath-1.d
@@ -2,7 +2,7 @@
#readelf: -d -W
#ld: -shared -rpath=. --disable-new-dtags
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#failif
#...
diff --git a/ld/testsuite/ld-elf/rpath-2.d b/ld/testsuite/ld-elf/rpath-2.d
index cf8c1da4392..3a457d0f3a8 100644
--- a/ld/testsuite/ld-elf/rpath-2.d
+++ b/ld/testsuite/ld-elf/rpath-2.d
@@ -2,7 +2,7 @@
#readelf: -d -W
#ld: -shared -rpath=. --disable-new-dtags
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#...
+0x[0-9a-f]+ +\(RPATH\) +Library rpath: +\[.\]
diff --git a/ld/testsuite/ld-elf/runpath-1.d b/ld/testsuite/ld-elf/runpath-1.d
index db010929d84..03931dc9809 100644
--- a/ld/testsuite/ld-elf/runpath-1.d
+++ b/ld/testsuite/ld-elf/runpath-1.d
@@ -2,7 +2,7 @@
#readelf: -d -W
#ld: -shared -rpath . --enable-new-dtags
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#failif
#...
diff --git a/ld/testsuite/ld-elf/runpath-2.d b/ld/testsuite/ld-elf/runpath-2.d
index 2cd86a6785c..2f21b8299cb 100644
--- a/ld/testsuite/ld-elf/runpath-2.d
+++ b/ld/testsuite/ld-elf/runpath-2.d
@@ -2,7 +2,7 @@
#readelf: -d -W
#ld: -shared -rpath . --enable-new-dtags
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#...
+0x[0-9a-f]+ +\(RUNPATH\) +Library runpath: +\[.\]
diff --git a/ld/testsuite/ld-elf/sizeofb.d b/ld/testsuite/ld-elf/sizeofb.d
index 567ed46af2b..3d075792858 100644
--- a/ld/testsuite/ld-elf/sizeofb.d
+++ b/ld/testsuite/ld-elf/sizeofb.d
@@ -2,7 +2,7 @@
#ld: -shared
#readelf: -sW
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
Symbol table '\.dynsym' contains [0-9]+ entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
diff --git a/ld/testsuite/ld-elf/startofb.d b/ld/testsuite/ld-elf/startofb.d
index 833d2b62f32..4465fc58e48 100644
--- a/ld/testsuite/ld-elf/startofb.d
+++ b/ld/testsuite/ld-elf/startofb.d
@@ -2,7 +2,7 @@
#ld: -shared
#readelf: -sW
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
Symbol table '\.dynsym' contains [0-9]+ entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
diff --git a/ld/testsuite/ld-elf/strtab.d b/ld/testsuite/ld-elf/strtab.d
index 51199f43a39..8ca6793ece6 100644
--- a/ld/testsuite/ld-elf/strtab.d
+++ b/ld/testsuite/ld-elf/strtab.d
@@ -1,7 +1,7 @@
#ld: -shared
#readelf: -W -x .strtab
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#failif
#...
diff --git a/ld/testsuite/ld-elf/textaddr1.d b/ld/testsuite/ld-elf/textaddr1.d
index f9c04f3aea7..169cf817797 100644
--- a/ld/testsuite/ld-elf/textaddr1.d
+++ b/ld/testsuite/ld-elf/textaddr1.d
@@ -2,7 +2,7 @@
#ld: -Ttext-segment 0x7000000 -z max-page-size=0x200000 -z noseparate-code
#readelf: -l --wide
#target: *-*-linux-gnu *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: h8300-*-* rx-*-linux*
#...
LOAD +0x0+ 0x0*7000000 0x0*7000000 0x0*[0-9a-f][0-9a-f][0-9a-f] 0x0*[0-9a-f][0-9a-f][0-9a-f] R E 0x200000
diff --git a/ld/testsuite/ld-elf/textaddr2.d b/ld/testsuite/ld-elf/textaddr2.d
index 62eb091d76a..6689c923bc5 100644
--- a/ld/testsuite/ld-elf/textaddr2.d
+++ b/ld/testsuite/ld-elf/textaddr2.d
@@ -2,7 +2,7 @@
#ld: -shared -Ttext-segment 0x7000000 -z max-page-size=0x200000 -z noseparate-code
#readelf: -l --wide
#target: *-*-linux-gnu *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#...
LOAD +0x0+ 0x0*7000000 0x0*7000000 0x0*[0-9a-f]+ 0x0*[0-9a-f]+ R[ W]E 0x200000
diff --git a/ld/testsuite/ld-elf/textaddr4.d b/ld/testsuite/ld-elf/textaddr4.d
index 736592fdae0..02350ea7801 100644
--- a/ld/testsuite/ld-elf/textaddr4.d
+++ b/ld/testsuite/ld-elf/textaddr4.d
@@ -2,7 +2,7 @@
#ld: -z max-page-size=0x10000 -Ttext-segment 0x10000 -z noseparate-code
#readelf: -l --wide
#target: *-*-linux-gnu *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: h8300-*-* rx-*-linux*
#...
LOAD +0x0+ 0x0*10000 0x0*10000 0x0*[0-9a-f][0-9a-f][0-9a-f] 0x0*[0-9a-f][0-9a-f][0-9a-f] R E 0x10000
diff --git a/ld/testsuite/ld-elf/textaddr5.d b/ld/testsuite/ld-elf/textaddr5.d
index 3b2c96aec71..ab1097f40cf 100644
--- a/ld/testsuite/ld-elf/textaddr5.d
+++ b/ld/testsuite/ld-elf/textaddr5.d
@@ -1,5 +1,5 @@
#source: maxpage1.s
#ld: -shared -z max-page-size=0x200000 -Ttext-segment 0x10000
#target: *-*-linux-gnu *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#warning: .*address of `text-segment' isn't multiple of maximum page size
diff --git a/ld/testsuite/ld-elf/textaddr6.d b/ld/testsuite/ld-elf/textaddr6.d
index 6afc646510c..7e4e3c665c4 100644
--- a/ld/testsuite/ld-elf/textaddr6.d
+++ b/ld/testsuite/ld-elf/textaddr6.d
@@ -2,7 +2,7 @@
#ld: -shared -z max-page-size=0x10000 -Ttext-segment 0x10000 -z noseparate-code
#readelf: -l --wide
#target: *-*-linux-gnu *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#...
LOAD +0x0+ 0x0*10000 0x0*10000 0x0*[0-9a-f]+ 0x0*[0-9a-f]+ R[ W]E 0x10000
diff --git a/ld/testsuite/ld-elf/unknown2.d b/ld/testsuite/ld-elf/unknown2.d
index ec89fb12e1a..ef9b40f6b38 100644
--- a/ld/testsuite/ld-elf/unknown2.d
+++ b/ld/testsuite/ld-elf/unknown2.d
@@ -2,7 +2,7 @@
#ld: -shared
#readelf: -S
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#...
\[[ 0-9]+\] \.note.foo[ \t]+NOTE[ \t]+.*
diff --git a/ld/testsuite/ld-undefined/entry-3.d b/ld/testsuite/ld-undefined/entry-3.d
index 3a01bc1d490..8f93e455278 100644
--- a/ld/testsuite/ld-undefined/entry-3.d
+++ b/ld/testsuite/ld-undefined/entry-3.d
@@ -3,7 +3,7 @@
#ld: -shared --entry foo tmpdir/libentry.a
#nm: -n
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#...
[0-9a-f]+ T +foo
diff --git a/ld/testsuite/ld-undefined/entry-4.d b/ld/testsuite/ld-undefined/entry-4.d
index a072e9b2789..774d0589730 100644
--- a/ld/testsuite/ld-undefined/entry-4.d
+++ b/ld/testsuite/ld-undefined/entry-4.d
@@ -3,7 +3,7 @@
#ld: -shared --entry foo -u foo tmpdir/libentry.a
#nm: -n
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: h8300-*-*
+#xfail: ![check_shared_lib_support]
#...
[0-9a-f]+ T +foo