h8300-linux ld testsuite

Message ID 20200325042107.GC4583@bubble.grove.modra.org
State New
Headers show
Series
  • h8300-linux ld testsuite
Related show

Commit Message

H.J. Lu via Binutils March 25, 2020, 4:21 a.m.
This fixes lots of fails caused by h8300-linux not supporting -shared
and related options.  I've also fixed ld-h8300 tests to accept the
valid h8300-linux -m options .

pr22450.d is also fixed for avr, crx, ip2k, m68hc11 and xc16x, and the
new pr25708 test for hppa64.

	* testsuite/ld-elf/compress1c.d: xfail h8300.
	* testsuite/ld-elf/compressed1c.d: Likewise.
	* testsuite/ld-elf/compressed1e.d: Likewise.
	* testsuite/ld-elf/dynamic1.d: Likewise.
	* testsuite/ld-elf/dynsym1.d: Likewise.
	* testsuite/ld-elf/ehdr_start-shared.d: Likewise.
	* testsuite/ld-elf/exclude3b.d: Likewise.
	* testsuite/ld-elf/export-class.exp: Don't run without -shared support.
	* testsuite/ld-elf/global1.d: xfail h8300.
	* testsuite/ld-elf/hash.d: Likewise.
	* testsuite/ld-elf/loadaddr1.d: Likewise.
	* testsuite/ld-elf/loadaddr2.d: Likewise.
	* testsuite/ld-elf/local1.d: Likewise.
	* testsuite/ld-elf/mbind1b.d: Likewise.
	* testsuite/ld-elf/mbind1c.d: Likewise.
	* testsuite/ld-elf/now-1.d: Likewise.
	* testsuite/ld-elf/now-2.d: Likewise.
	* testsuite/ld-elf/now-3.d: Likewise.
	* testsuite/ld-elf/now-4.d: Likewise.
	* testsuite/ld-elf/pie.d: Likewise.
	* testsuite/ld-elf/pr12975.d: Likewise.
	* testsuite/ld-elf/pr13177.d: Likewise.
	* testsuite/ld-elf/pr13195.d: Likewise.
	* testsuite/ld-elf/pr16322.d: Likewise.
	* testsuite/ld-elf/pr16498a.d: Likewise.
	* testsuite/ld-elf/pr16498b.d: Likewise.
	* testsuite/ld-elf/pr17615.d: Likewise.
	* testsuite/ld-elf/pr19162.d: Likewise.
	* testsuite/ld-elf/pr19539.d: Likewise.
	* testsuite/ld-elf/pr19617a.d: Likewise.
	* testsuite/ld-elf/pr19698.d: Likewise.
	* testsuite/ld-elf/pr20513c.d: Likewise.
	* testsuite/ld-elf/pr20513d.d: Likewise.
	* testsuite/ld-elf/pr21389a.d: Likewise.
	* testsuite/ld-elf/pr21389b.d: Likewise.
	* testsuite/ld-elf/pr21389c.d: Likewise.
	* testsuite/ld-elf/pr21562a.d: Likewise.
	* testsuite/ld-elf/pr21562b.d: Likewise.
	* testsuite/ld-elf/pr21562c.d: Likewise.
	* testsuite/ld-elf/pr21562d.d: Likewise.
	* testsuite/ld-elf/pr21562e.d: Likewise.
	* testsuite/ld-elf/pr21562f.d: Likewise.
	* testsuite/ld-elf/pr21562g.d: Likewise.
	* testsuite/ld-elf/pr21562h.d: Likewise.
	* testsuite/ld-elf/pr21562i.d: Likewise.
	* testsuite/ld-elf/pr21562j.d: Likewise.
	* testsuite/ld-elf/pr21562k.d: Likewise.
	* testsuite/ld-elf/pr21562l.d: Likewise.
	* testsuite/ld-elf/pr21562m.d: Likewise.
	* testsuite/ld-elf/pr21562n.d: Likewise.
	* testsuite/ld-elf/pr21903a.d: Likewise.
	* testsuite/ld-elf/pr21903b.d: Likewise.
	* testsuite/ld-elf/pr21903d.d: Likewise.
	* testsuite/ld-elf/pr22269a.d: Likewise.
	* testsuite/ld-elf/pr22269b.d: Likewise.
	* testsuite/ld-elf/pr22393-1a.d: Likewise.
	* testsuite/ld-elf/pr22393-1b.d: Likewise.
	* testsuite/ld-elf/pr22393-1c.d: Likewise.
	* testsuite/ld-elf/pr22393-1d.d: Likewise.
	* testsuite/ld-elf/pr22393-1e.d: Likewise.
	* testsuite/ld-elf/pr22393-1f.d: Likewise.
	* testsuite/ld-elf/pr22423.d: Likewise.
	* testsuite/ld-elf/pr22450.d: xfail avr, crx, h8300, ip2k, m68hc11,
	and xc16x.
	* testsuite/ld-elf/pr23658-1c.d: xfail h8300.
	* testsuite/ld-elf/pr25708.d: xfail h8300 and hppa64.
	* testsuite/ld-elf/rpath-1.d: xfail h8300.
	* testsuite/ld-elf/rpath-2.d: Likewise.
	* testsuite/ld-elf/runpath-1.d: Likewise.
	* testsuite/ld-elf/runpath-2.d: Likewise.
	* testsuite/ld-elf/sizeofb.d: Likewise.
	* testsuite/ld-elf/startofb.d: Likewise.
	* testsuite/ld-elf/strtab.d: Likewise.
	* testsuite/ld-elf/textaddr1.d: Likewise.
	* testsuite/ld-elf/textaddr2.d: Likewise.
	* testsuite/ld-elf/textaddr4.d: Likewise.
	* testsuite/ld-elf/textaddr5.d: Likewise.
	* testsuite/ld-elf/textaddr6.d: Likewise.
	* testsuite/ld-elf/unknown2.d: Likewise.
	* testsuite/ld-undefined/entry-3.d: Likewise.
	* testsuite/ld-undefined/entry-4.d: Likewise.
	* testsuite/ld-h8300/h8300.exp: Pass appropriate ld -m option.
	* testsuite/ld-h8300/gcsection.d: Remove ld -m option and relax
	file format match.
	* testsuite/ld-h8300/relax-2.d: Likewise.
	* testsuite/ld-h8300/relax-3.d: Likewise.
	* testsuite/ld-h8300/relax-4.d: Likewise.
	* testsuite/ld-h8300/relax-5.d: Likewise.
	* testsuite/ld-h8300/relax-6.d: Likewise.
	* testsuite/ld-h8300/relax-7.d: Likewise.
	* testsuite/ld-h8300/relax.d: Relax file format match.


-- 
Alan Modra
Australia Development Lab, IBM

Patch

diff --git a/ld/testsuite/ld-elf/compress1c.d b/ld/testsuite/ld-elf/compress1c.d
index 73f716e1ad..d95f4ff7b8 100644
--- a/ld/testsuite/ld-elf/compress1c.d
+++ b/ld/testsuite/ld-elf/compress1c.d
@@ -3,6 +3,7 @@ 
 #ld: -shared
 #readelf: -S --wide
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #failif
 #...
diff --git a/ld/testsuite/ld-elf/compressed1c.d b/ld/testsuite/ld-elf/compressed1c.d
index 7fc57ef74b..e056429cc2 100644
--- a/ld/testsuite/ld-elf/compressed1c.d
+++ b/ld/testsuite/ld-elf/compressed1c.d
@@ -3,6 +3,7 @@ 
 #ld: -shared --compress-debug-sections=none
 #readelf: -t
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #failif
 #...
diff --git a/ld/testsuite/ld-elf/compressed1e.d b/ld/testsuite/ld-elf/compressed1e.d
index 9b54618a17..db93f7016c 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: cris*-*-elf frv-*-elf
+#xfail: h8300-*-*
 
 #failif
 #...
diff --git a/ld/testsuite/ld-elf/dynamic1.d b/ld/testsuite/ld-elf/dynamic1.d
index a4bbe3c959..95717f6696 100644
--- a/ld/testsuite/ld-elf/dynamic1.d
+++ b/ld/testsuite/ld-elf/dynamic1.d
@@ -1,6 +1,7 @@ 
 #ld: -shared -T dynamic1.ld
 #readelf: -l --wide
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #...
  Section to Segment mapping:
diff --git a/ld/testsuite/ld-elf/dynsym1.d b/ld/testsuite/ld-elf/dynsym1.d
index 273ce3d460..6e534fc02b 100644
--- a/ld/testsuite/ld-elf/dynsym1.d
+++ b/ld/testsuite/ld-elf/dynsym1.d
@@ -2,6 +2,7 @@ 
 #ld: -shared
 #readelf: --dyn-syms
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #...
  +[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 55f9a584a4..2baf1593ec 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-*-*
+#xfail: cris*-*-* frv-*-* h8300-*-*
 
 #...
 [0-9a-f]*000 [Adrt] __ehdr_start
diff --git a/ld/testsuite/ld-elf/exclude3b.d b/ld/testsuite/ld-elf/exclude3b.d
index ac8407d2c7..cee6c1dab6 100644
--- a/ld/testsuite/ld-elf/exclude3b.d
+++ b/ld/testsuite/ld-elf/exclude3b.d
@@ -2,6 +2,7 @@ 
 #ld: --shared
 #readelf: -S --wide
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #failif
 #...
diff --git a/ld/testsuite/ld-elf/export-class.exp b/ld/testsuite/ld-elf/export-class.exp
index daaf00448a..01a008524a 100644
--- a/ld/testsuite/ld-elf/export-class.exp
+++ b/ld/testsuite/ld-elf/export-class.exp
@@ -25,7 +25,7 @@ 
 #
 
 # Exclude non-ELF targets.
-if { ![is_elf_format] } {
+if { ![is_elf_format] || ![check_shared_lib_support] } {
     return
 }
 
diff --git a/ld/testsuite/ld-elf/global1.d b/ld/testsuite/ld-elf/global1.d
index 726525b993..71e956160e 100644
--- a/ld/testsuite/ld-elf/global1.d
+++ b/ld/testsuite/ld-elf/global1.d
@@ -2,6 +2,7 @@ 
 #ld: -shared -z global
 #readelf: -d
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #...
  0x0*6ffffffb \(FLAGS_1\) *Flags: GLOBAL
diff --git a/ld/testsuite/ld-elf/hash.d b/ld/testsuite/ld-elf/hash.d
index efe675e0c7..d21c1c9239 100644
--- a/ld/testsuite/ld-elf/hash.d
+++ b/ld/testsuite/ld-elf/hash.d
@@ -2,6 +2,7 @@ 
 #readelf: -d -s -D
 #ld: -shared --hash-style=gnu
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 #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 0e38b64cdc..e118163c25 100644
--- a/ld/testsuite/ld-elf/loadaddr1.d
+++ b/ld/testsuite/ld-elf/loadaddr1.d
@@ -2,6 +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-*-*
 
 #...
   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 5fbfa54e55..eb1517e890 100644
--- a/ld/testsuite/ld-elf/loadaddr2.d
+++ b/ld/testsuite/ld-elf/loadaddr2.d
@@ -2,6 +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-*-*
 
 #...
   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 be3d24a19b..c5b7876a12 100644
--- a/ld/testsuite/ld-elf/local1.d
+++ b/ld/testsuite/ld-elf/local1.d
@@ -1,6 +1,7 @@ 
 #ld: -shared --version-script local1.map
 #readelf: -s --wide
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #...
     .*: [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 49316a1faf..9c36b2692f 100644
--- a/ld/testsuite/ld-elf/mbind1b.d
+++ b/ld/testsuite/ld-elf/mbind1b.d
@@ -2,6 +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-*-*
 
 #...
   \[[ 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 40cc852dd6..1c794c1364 100644
--- a/ld/testsuite/ld-elf/mbind1c.d
+++ b/ld/testsuite/ld-elf/mbind1c.d
@@ -2,6 +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-*-*
 
 #...
   \[[ 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 bc3ccf8e98..41c47380e6 100644
--- a/ld/testsuite/ld-elf/now-1.d
+++ b/ld/testsuite/ld-elf/now-1.d
@@ -2,6 +2,7 @@ 
 #readelf: -d -W
 #ld: -shared -z now --enable-new-dtags
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #failif
 #...
diff --git a/ld/testsuite/ld-elf/now-2.d b/ld/testsuite/ld-elf/now-2.d
index 0e337975af..6c50dc0e72 100644
--- a/ld/testsuite/ld-elf/now-2.d
+++ b/ld/testsuite/ld-elf/now-2.d
@@ -2,6 +2,7 @@ 
 #readelf: -d -W
 #ld: -shared -z now --enable-new-dtags
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #...
  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 b8ff534199..34e0fad255 100644
--- a/ld/testsuite/ld-elf/now-3.d
+++ b/ld/testsuite/ld-elf/now-3.d
@@ -2,6 +2,7 @@ 
 #readelf: -d -W
 #ld: -shared -z now --disable-new-dtags
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #failif
 #...
diff --git a/ld/testsuite/ld-elf/now-4.d b/ld/testsuite/ld-elf/now-4.d
index f4e9259d4c..e3058ed38a 100644
--- a/ld/testsuite/ld-elf/now-4.d
+++ b/ld/testsuite/ld-elf/now-4.d
@@ -2,6 +2,7 @@ 
 #readelf: -d -W
 #ld: -shared -z now --disable-new-dtags
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #...
  0x[0-9a-f]+ +\(BIND_NOW\) +
diff --git a/ld/testsuite/ld-elf/pie.d b/ld/testsuite/ld-elf/pie.d
index aa7b855d40..94511dd683 100644
--- a/ld/testsuite/ld-elf/pie.d
+++ b/ld/testsuite/ld-elf/pie.d
@@ -2,6 +2,7 @@ 
 #readelf: -d -W
 #ld: -pie
 #target: *-*-linux* *-*-gnu* *-*-solaris* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #...
  +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 054df31f19..bd33db2258 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] hppa64-*-* mep-*-* mn10200-*-*
+#xfail: [is_generic] h8300-*-* hppa64-*-* mep-*-* mn10200-*-*
 # 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 bc23650669..30b9ce68eb 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] hppa64-*-* mep-*-* mn10200-*-*
+#xfail: [is_generic] h8300-*-* hppa64-*-* mep-*-* mn10200-*-*
 # 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 8a0f9bd805..4e58929e5a 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] hppa64-*-* mep-*-* mn10200-*-*
+#xfail: [is_generic] 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/pr16322.d b/ld/testsuite/ld-elf/pr16322.d
index d0e349d024..6e7c22a956 100644
--- a/ld/testsuite/ld-elf/pr16322.d
+++ b/ld/testsuite/ld-elf/pr16322.d
@@ -1,6 +1,7 @@ 
 #ld: -shared -z relro -z noseparate-code
 #readelf: -l --wide
 #target: *-*-linux-gnu *-*-gnu* *-*-nacl* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #...
   GNU_RELRO .*
diff --git a/ld/testsuite/ld-elf/pr16498a.d b/ld/testsuite/ld-elf/pr16498a.d
index 7726d3bc47..3d6554e779 100644
--- a/ld/testsuite/ld-elf/pr16498a.d
+++ b/ld/testsuite/ld-elf/pr16498a.d
@@ -1,6 +1,7 @@ 
 #ld: -shared -T pr16498a.t
 #readelf: -l --wide
 #target: *-*-linux* *-*-gnu* *-*-nacl* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #...
   TLS .*
diff --git a/ld/testsuite/ld-elf/pr16498b.d b/ld/testsuite/ld-elf/pr16498b.d
index e599d90d27..dcddbfd93b 100644
--- a/ld/testsuite/ld-elf/pr16498b.d
+++ b/ld/testsuite/ld-elf/pr16498b.d
@@ -2,6 +2,7 @@ 
 #ld: -shared -T pr16498b.t
 #readelf: -l --wide
 #target: *-*-linux* *-*-gnu* *-*-nacl* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #...
   TLS .*
diff --git a/ld/testsuite/ld-elf/pr17615.d b/ld/testsuite/ld-elf/pr17615.d
index 6ab0d0e39e..a5af4d33a5 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] hppa64-*-* mep-*-* mn10200-*-*
+#xfail: [is_generic] 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/pr19162.d b/ld/testsuite/ld-elf/pr19162.d
index 218da4035c..aa0a69cc9a 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: hppa*-*-*
+#xfail: h8300-*-* hppa*-*-*
 # hppa fails due to PR 12376.
 
 #...
diff --git a/ld/testsuite/ld-elf/pr19539.d b/ld/testsuite/ld-elf/pr19539.d
index 04e6791406..24a9b17484 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*-*-*
+#xfail: cris*-*-* h8300-*-*
 
 Symbol table '\.dynsym' contains [0-9]+ entr(y|ies):
 #pass
diff --git a/ld/testsuite/ld-elf/pr19617a.d b/ld/testsuite/ld-elf/pr19617a.d
index c315f3d386..969bdc4373 100644
--- a/ld/testsuite/ld-elf/pr19617a.d
+++ b/ld/testsuite/ld-elf/pr19617a.d
@@ -2,6 +2,7 @@ 
 #ld: -E --no-dynamic-linker --hash-style=sysv
 #readelf : --dyn-syms --wide
 #target: *-*-linux* *-*-gnu* *-*-solaris* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 Symbol table '\.dynsym' contains [0-9]+ entries:
  +Num: +Value +Size Type +Bind +Vis +Ndx Name
diff --git a/ld/testsuite/ld-elf/pr19698.d b/ld/testsuite/ld-elf/pr19698.d
index a82677c471..f7b8aae498 100644
--- a/ld/testsuite/ld-elf/pr19698.d
+++ b/ld/testsuite/ld-elf/pr19698.d
@@ -1,6 +1,7 @@ 
 #ld: -shared $srcdir/$subdir/pr19698.t
 #readelf : --dyn-syms --wide
 #target: *-*-linux* *-*-gnu* *-*-solaris* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 Symbol table '\.dynsym' contains [0-9]+ entries:
 #...
diff --git a/ld/testsuite/ld-elf/pr20513c.d b/ld/testsuite/ld-elf/pr20513c.d
index af81161e22..e7c2dde656 100644
--- a/ld/testsuite/ld-elf/pr20513c.d
+++ b/ld/testsuite/ld-elf/pr20513c.d
@@ -3,6 +3,7 @@ 
 #ld: -shared
 #readelf: -S --wide
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #failif
 #...
diff --git a/ld/testsuite/ld-elf/pr20513d.d b/ld/testsuite/ld-elf/pr20513d.d
index f1a455c553..c3797a8bea 100644
--- a/ld/testsuite/ld-elf/pr20513d.d
+++ b/ld/testsuite/ld-elf/pr20513d.d
@@ -3,6 +3,7 @@ 
 #ld: -shared
 #readelf: -S --wide
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #failif
 #...
diff --git a/ld/testsuite/ld-elf/pr21389a.d b/ld/testsuite/ld-elf/pr21389a.d
index da50d8a320..ff86c769cc 100644
--- a/ld/testsuite/ld-elf/pr21389a.d
+++ b/ld/testsuite/ld-elf/pr21389a.d
@@ -2,6 +2,7 @@ 
 #ld: -shared --version-script pr21389.map -soname=pr21389.so
 #objdump: -p
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #...
 Version definitions:
diff --git a/ld/testsuite/ld-elf/pr21389b.d b/ld/testsuite/ld-elf/pr21389b.d
index fe39e9c67b..8f2049f3e7 100644
--- a/ld/testsuite/ld-elf/pr21389b.d
+++ b/ld/testsuite/ld-elf/pr21389b.d
@@ -2,6 +2,7 @@ 
 #ld: -shared --version-script pr21389.map -soname=pr21389.so
 #readelf: -d
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #...
  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 31759f1513..7db04179ad 100644
--- a/ld/testsuite/ld-elf/pr21389c.d
+++ b/ld/testsuite/ld-elf/pr21389c.d
@@ -2,6 +2,7 @@ 
 #ld: -shared -soname=pr21389.so
 #readelf: -d
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #...
  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 c36dd3c7ca..159292e7e1 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] hppa64-*-* mep-*-* mn10200-*-*
+#xfail: [is_generic] 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/pr21562b.d b/ld/testsuite/ld-elf/pr21562b.d
index a751f2ee5d..5e891b8655 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] hppa64-*-* mep-*-* mn10200-*-*
+#xfail: [is_generic] 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/pr21562c.d b/ld/testsuite/ld-elf/pr21562c.d
index 4dc4b7fbf5..758be5cdaf 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] hppa64-*-* mep-*-* mn10200-*-*
+#xfail: [is_generic] 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/pr21562d.d b/ld/testsuite/ld-elf/pr21562d.d
index 5323b49fb9..d5a6955d91 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] hppa64-*-* mep-*-* mn10200-*-*
+#xfail: [is_generic] 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/pr21562e.d b/ld/testsuite/ld-elf/pr21562e.d
index efe1c5a325..a68960add3 100644
--- a/ld/testsuite/ld-elf/pr21562e.d
+++ b/ld/testsuite/ld-elf/pr21562e.d
@@ -2,6 +2,7 @@ 
 #ld: -shared -z defs
 #readelf: -s -S --wide
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #...
   \[[ 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 077c84e70d..b3f34cae7c 100644
--- a/ld/testsuite/ld-elf/pr21562f.d
+++ b/ld/testsuite/ld-elf/pr21562f.d
@@ -2,6 +2,7 @@ 
 #ld: -shared -z defs
 #readelf: -s -S --wide
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #...
   \[[ 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 4f2c8006d3..4bee6f6a28 100644
--- a/ld/testsuite/ld-elf/pr21562g.d
+++ b/ld/testsuite/ld-elf/pr21562g.d
@@ -2,6 +2,7 @@ 
 #ld: -shared -z defs -T pr21562a.t
 #readelf: -s -S --wide
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #...
   \[[ 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 d500013e70..a93fe40b13 100644
--- a/ld/testsuite/ld-elf/pr21562h.d
+++ b/ld/testsuite/ld-elf/pr21562h.d
@@ -2,6 +2,7 @@ 
 #ld: -shared -z defs -T pr21562a.t
 #readelf: -s -S --wide
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #...
   \[[ 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 ccdebede28..2c9d9dddd6 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] hppa64-*-* mep-*-* mn10200-*-*
+#xfail: [is_generic] 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/pr21562j.d b/ld/testsuite/ld-elf/pr21562j.d
index 97eee51c3f..28b45a8600 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] hppa64-*-* mep-*-* mn10200-*-*
+#xfail: [is_generic] 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 21d78973c9..24c29d9962 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] hppa64-*-* mep-*-* mn10200-*-*
+#xfail: [is_generic] 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/pr21562l.d b/ld/testsuite/ld-elf/pr21562l.d
index 2233c66d1c..2dd0d98a13 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] hppa64-*-* mep-*-* mn10200-*-*
+#xfail: [is_generic] 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/pr21562m.d b/ld/testsuite/ld-elf/pr21562m.d
index 62d2949d06..2bc714f7ef 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] hppa64-*-* mep-*-* mn10200-*-*
+#xfail: [is_generic] 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/pr21562n.d b/ld/testsuite/ld-elf/pr21562n.d
index 5b4a3261c2..8b210bb2c0 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] hppa64-*-* mep-*-* mn10200-*-*
+#xfail: [is_generic] 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/pr21903a.d b/ld/testsuite/ld-elf/pr21903a.d
index a688df5c38..12e53f1fbb 100644
--- a/ld/testsuite/ld-elf/pr21903a.d
+++ b/ld/testsuite/ld-elf/pr21903a.d
@@ -2,6 +2,7 @@ 
 #ld: -shared --no-define-common
 #readelf: --dyn-syms
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #...
 .*: 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 52893c31a8..6ad77ea929 100644
--- a/ld/testsuite/ld-elf/pr21903b.d
+++ b/ld/testsuite/ld-elf/pr21903b.d
@@ -2,6 +2,7 @@ 
 #ld: -shared
 #readelf: --dyn-syms
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #...
 .*: [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 2e3088e23f..ac77d3edf8 100644
--- a/ld/testsuite/ld-elf/pr21903d.d
+++ b/ld/testsuite/ld-elf/pr21903d.d
@@ -1,4 +1,5 @@ 
 #source: pr21903.s
 #ld: --no-define-common -pie
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 #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 2b3c94cdae..47775d30ae 100644
--- a/ld/testsuite/ld-elf/pr22269a.d
+++ b/ld/testsuite/ld-elf/pr22269a.d
@@ -3,6 +3,7 @@ 
 #ld: -pie --no-dynamic-linker
 #readelf: -r -x .data.rel.ro
 #target: *-*-linux* *-*-gnu* *-*-nacl* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 There are no relocations in this file.
 
diff --git a/ld/testsuite/ld-elf/pr22269b.d b/ld/testsuite/ld-elf/pr22269b.d
index bbfadc9bac..9e61a12701 100644
--- a/ld/testsuite/ld-elf/pr22269b.d
+++ b/ld/testsuite/ld-elf/pr22269b.d
@@ -4,6 +4,7 @@ 
 #readelf: -r -x .data.rel.ro
 #warning: -z dynamic-undefined-weak ignored
 #target: *-*-linux* *-*-gnu* *-*-nacl* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 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 57f254bd32..c4fd3ba6ea 100644
--- a/ld/testsuite/ld-elf/pr22393-1a.d
+++ b/ld/testsuite/ld-elf/pr22393-1a.d
@@ -2,6 +2,7 @@ 
 #ld: -shared -z separate-code -z relro
 #readelf: -l --wide
 #target: *-*-linux-gnu *-*-gnu* *-*-nacl* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #failif
 #...
diff --git a/ld/testsuite/ld-elf/pr22393-1b.d b/ld/testsuite/ld-elf/pr22393-1b.d
index c7e58718b5..41cc8a0209 100644
--- a/ld/testsuite/ld-elf/pr22393-1b.d
+++ b/ld/testsuite/ld-elf/pr22393-1b.d
@@ -2,6 +2,7 @@ 
 #ld: -shared -z relro -z separate-code
 #readelf: -l --wide
 #target: *-*-linux-gnu *-*-gnu* *-*-nacl* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #failif
 #...
diff --git a/ld/testsuite/ld-elf/pr22393-1c.d b/ld/testsuite/ld-elf/pr22393-1c.d
index aea589080f..664e20ecf8 100644
--- a/ld/testsuite/ld-elf/pr22393-1c.d
+++ b/ld/testsuite/ld-elf/pr22393-1c.d
@@ -2,6 +2,7 @@ 
 #ld: -pie -z separate-code
 #readelf: -l --wide
 #target: *-*-linux-gnu *-*-gnu* *-*-nacl* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #failif
 #...
diff --git a/ld/testsuite/ld-elf/pr22393-1d.d b/ld/testsuite/ld-elf/pr22393-1d.d
index e74dc10ce5..573dabf7aa 100644
--- a/ld/testsuite/ld-elf/pr22393-1d.d
+++ b/ld/testsuite/ld-elf/pr22393-1d.d
@@ -2,6 +2,7 @@ 
 #ld: -pie -z separate-code
 #readelf: -l --wide
 #target: *-*-linux-gnu *-*-gnu* *-*-nacl* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #failif
 #...
diff --git a/ld/testsuite/ld-elf/pr22393-1e.d b/ld/testsuite/ld-elf/pr22393-1e.d
index cef1a4c6c4..272a85f9ac 100644
--- a/ld/testsuite/ld-elf/pr22393-1e.d
+++ b/ld/testsuite/ld-elf/pr22393-1e.d
@@ -2,6 +2,7 @@ 
 #ld: -z separate-code
 #readelf: -l --wide
 #target: *-*-linux-gnu *-*-gnu* *-*-nacl* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #failif
 #...
diff --git a/ld/testsuite/ld-elf/pr22393-1f.d b/ld/testsuite/ld-elf/pr22393-1f.d
index 9724e0e387..7507c40b70 100644
--- a/ld/testsuite/ld-elf/pr22393-1f.d
+++ b/ld/testsuite/ld-elf/pr22393-1f.d
@@ -2,6 +2,7 @@ 
 #ld: -z separate-code
 #readelf: -l --wide
 #target: *-*-linux-gnu *-*-gnu* *-*-nacl* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #failif
 #...
diff --git a/ld/testsuite/ld-elf/pr22423.d b/ld/testsuite/ld-elf/pr22423.d
index 9255c7e77b..5cd1ffb963 100644
--- a/ld/testsuite/ld-elf/pr22423.d
+++ b/ld/testsuite/ld-elf/pr22423.d
@@ -2,6 +2,7 @@ 
 #readelf: -l -W
 #ld: -pie --dynamic-linker=/usr/lib/ld.so.1
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #...
  +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/pr22450.d b/ld/testsuite/ld-elf/pr22450.d
index 30754ec6a5..08905aabbd 100644
--- a/ld/testsuite/ld-elf/pr22450.d
+++ b/ld/testsuite/ld-elf/pr22450.d
@@ -1,7 +1,7 @@ 
 #source: pr22450.s
 #readelf: --notes --wide
 #ld: -r
-#xfail: z80-*-*
+#xfail: avr-*-* crx-*-* h8300-*-* ip2k-*-* m68hc11-*-* xc16x-*-* z80-*-*
 # Fails on H8300 because it does not generate the correct relocs for the size fields.
 # Fails on AVR, IP2K, M68HC11, XC16C because the assembler does not calculate the correct values for the differences of local symbols.
 # Fails on CRX because readelf does not know how to apply CRX reloc number 20 (R_CRX_SWITCH32).
diff --git a/ld/testsuite/ld-elf/pr23658-1c.d b/ld/testsuite/ld-elf/pr23658-1c.d
index 6d8fd7e537..166186d094 100644
--- a/ld/testsuite/ld-elf/pr23658-1c.d
+++ b/ld/testsuite/ld-elf/pr23658-1c.d
@@ -6,6 +6,7 @@ 
 #ld: --build-id -shared
 #readelf: -l --wide
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #...
  +[0-9]+ +\.note\.4 \.note\.1 +
diff --git a/ld/testsuite/ld-elf/pr25708.d b/ld/testsuite/ld-elf/pr25708.d
index e487d227b3..49957cc75d 100644
--- a/ld/testsuite/ld-elf/pr25708.d
+++ b/ld/testsuite/ld-elf/pr25708.d
@@ -2,6 +2,8 @@ 
 #ld: -shared -version-script pr13195.t
 #nm: -D
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-* hppa64-*-*
+# h8300 doesn't support -shared, and hppa64 creates .foo
 
 #..
 0+ A VERS_2.0
diff --git a/ld/testsuite/ld-elf/rpath-1.d b/ld/testsuite/ld-elf/rpath-1.d
index 61da219a59..4efdabd4ca 100644
--- a/ld/testsuite/ld-elf/rpath-1.d
+++ b/ld/testsuite/ld-elf/rpath-1.d
@@ -2,6 +2,7 @@ 
 #readelf: -d -W
 #ld: -shared -rpath=. --disable-new-dtags
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #failif
 #...
diff --git a/ld/testsuite/ld-elf/rpath-2.d b/ld/testsuite/ld-elf/rpath-2.d
index 8bb19f85ad..cf8c1da439 100644
--- a/ld/testsuite/ld-elf/rpath-2.d
+++ b/ld/testsuite/ld-elf/rpath-2.d
@@ -2,6 +2,7 @@ 
 #readelf: -d -W
 #ld: -shared -rpath=. --disable-new-dtags
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #...
  +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 72667e8b2f..db010929d8 100644
--- a/ld/testsuite/ld-elf/runpath-1.d
+++ b/ld/testsuite/ld-elf/runpath-1.d
@@ -2,6 +2,7 @@ 
 #readelf: -d -W
 #ld: -shared -rpath . --enable-new-dtags
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #failif
 #...
diff --git a/ld/testsuite/ld-elf/runpath-2.d b/ld/testsuite/ld-elf/runpath-2.d
index 97a9532f11..2cd86a6785 100644
--- a/ld/testsuite/ld-elf/runpath-2.d
+++ b/ld/testsuite/ld-elf/runpath-2.d
@@ -2,6 +2,7 @@ 
 #readelf: -d -W
 #ld: -shared -rpath . --enable-new-dtags
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #...
  +0x[0-9a-f]+ +\(RUNPATH\) +Library runpath: +\[.\]
diff --git a/ld/testsuite/ld-elf/sizeofb.d b/ld/testsuite/ld-elf/sizeofb.d
index 31cafa6c92..567ed46af2 100644
--- a/ld/testsuite/ld-elf/sizeofb.d
+++ b/ld/testsuite/ld-elf/sizeofb.d
@@ -2,6 +2,7 @@ 
 #ld: -shared
 #readelf: -sW
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 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 0320328291..833d2b62f3 100644
--- a/ld/testsuite/ld-elf/startofb.d
+++ b/ld/testsuite/ld-elf/startofb.d
@@ -2,6 +2,7 @@ 
 #ld: -shared
 #readelf: -sW
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 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 bf346d6ada..51199f43a3 100644
--- a/ld/testsuite/ld-elf/strtab.d
+++ b/ld/testsuite/ld-elf/strtab.d
@@ -1,6 +1,7 @@ 
 #ld: -shared
 #readelf: -W -x .strtab
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #failif
 #...
diff --git a/ld/testsuite/ld-elf/textaddr1.d b/ld/testsuite/ld-elf/textaddr1.d
index f004ea7f7d..f9c04f3aea 100644
--- a/ld/testsuite/ld-elf/textaddr1.d
+++ b/ld/testsuite/ld-elf/textaddr1.d
@@ -2,6 +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-*-*
 
 #...
   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 73d88b0fe5..62eb091d76 100644
--- a/ld/testsuite/ld-elf/textaddr2.d
+++ b/ld/testsuite/ld-elf/textaddr2.d
@@ -2,6 +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-*-*
 
 #...
   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 746ec46779..736592fdae 100644
--- a/ld/testsuite/ld-elf/textaddr4.d
+++ b/ld/testsuite/ld-elf/textaddr4.d
@@ -2,6 +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-*-*
 
 #...
   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 3ce8d1d290..3b2c96aec7 100644
--- a/ld/testsuite/ld-elf/textaddr5.d
+++ b/ld/testsuite/ld-elf/textaddr5.d
@@ -1,4 +1,5 @@ 
 #source: maxpage1.s
 #ld: -shared -z max-page-size=0x200000 -Ttext-segment 0x10000
 #target: *-*-linux-gnu *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 #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 aa5cf56f48..6afc646510 100644
--- a/ld/testsuite/ld-elf/textaddr6.d
+++ b/ld/testsuite/ld-elf/textaddr6.d
@@ -2,6 +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-*-*
 
 #...
   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 2e92a5a341..ec89fb12e1 100644
--- a/ld/testsuite/ld-elf/unknown2.d
+++ b/ld/testsuite/ld-elf/unknown2.d
@@ -2,6 +2,7 @@ 
 #ld: -shared
 #readelf: -S
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #...
   \[[ 0-9]+\] \.note.foo[ \t]+NOTE[ \t]+.*
diff --git a/ld/testsuite/ld-h8300/gcsection.d b/ld/testsuite/ld-h8300/gcsection.d
index 638d985749..acf39be8d7 100644
--- a/ld/testsuite/ld-h8300/gcsection.d
+++ b/ld/testsuite/ld-h8300/gcsection.d
@@ -1,7 +1,8 @@ 
 # name: H8300 GCC section test case
-# ld: --gc-sections  -m h8300helf
+# ld: --gc-sections
 # objdump: -d --no-show-raw-insn
-.*:     file format .*-h8300
+
+.*:     file format .*
 
 Disassembly of section .text:
 
diff --git a/ld/testsuite/ld-h8300/h8300.exp b/ld/testsuite/ld-h8300/h8300.exp
index 75112528b5..1bd6519222 100644
--- a/ld/testsuite/ld-h8300/h8300.exp
+++ b/ld/testsuite/ld-h8300/h8300.exp
@@ -27,11 +27,16 @@  if ![istarget h8300-*-*] {
     return
 }
 
+set emul elf
+if [istarget *-*-linux*] {
+    set emul elf_linux
+}
+
 run_dump_test relax
-run_dump_test relax-2
-run_dump_test relax-3
-run_dump_test relax-4
-run_dump_test relax-5
-run_dump_test relax-6
-run_dump_test relax-7
-run_dump_test gcsection	
+run_dump_test relax-2 [list [list ld "-m h8300h$emul"]]
+run_dump_test relax-3 [list [list ld "-m h8300s$emul"]]
+run_dump_test relax-4 [list [list ld "-m h8300s$emul"]]
+run_dump_test relax-5 [list [list ld "-m h8300s$emul"]]
+run_dump_test relax-6 [list [list ld "-m h8300s$emul"]]
+run_dump_test relax-7 [list [list ld "-m h8300s$emul"]]
+run_dump_test gcsection	[list [list ld "-m h8300h$emul"]]
diff --git a/ld/testsuite/ld-h8300/relax-2.d b/ld/testsuite/ld-h8300/relax-2.d
index b79f5c20fc..7e7964b5c8 100644
--- a/ld/testsuite/ld-h8300/relax-2.d
+++ b/ld/testsuite/ld-h8300/relax-2.d
@@ -1,8 +1,8 @@ 
 # name: H8300 Relaxation Test 2
-# ld: --relax -m h8300helf
+# ld: --relax
 # objdump: -d --no-show-raw-insn
 
-.*:     file format .*-h8300
+.*:     file format .*
 
 Disassembly of section .text:
 
diff --git a/ld/testsuite/ld-h8300/relax-3.d b/ld/testsuite/ld-h8300/relax-3.d
index b9eded21c6..f5a9390b78 100644
--- a/ld/testsuite/ld-h8300/relax-3.d
+++ b/ld/testsuite/ld-h8300/relax-3.d
@@ -1,8 +1,8 @@ 
 # name: H8300 Relaxation Test 3
-# ld: --relax -m h8300self
+# ld: --relax
 # objdump: -d
 
-.*:     file format .*-h8300
+.*:     file format .*
 
 Disassembly of section .text:
 
diff --git a/ld/testsuite/ld-h8300/relax-4.d b/ld/testsuite/ld-h8300/relax-4.d
index b8d38ce882..ee80bc3964 100644
--- a/ld/testsuite/ld-h8300/relax-4.d
+++ b/ld/testsuite/ld-h8300/relax-4.d
@@ -1,8 +1,8 @@ 
 # name: H8300 Relaxation Test 4
-# ld: --relax -m h8300self
+# ld: --relax
 # objdump: -d --no-show-raw-insn
 
-.*:     file format .*-h8300
+.*:     file format .*
 
 Disassembly of section .text:
 
diff --git a/ld/testsuite/ld-h8300/relax-5.d b/ld/testsuite/ld-h8300/relax-5.d
index 01e12a52e5..00c4fa89ee 100644
--- a/ld/testsuite/ld-h8300/relax-5.d
+++ b/ld/testsuite/ld-h8300/relax-5.d
@@ -1,9 +1,9 @@ 
 # name: H8300 Relaxation Test 5
 # source: relax-5.s
-# ld: --relax -m h8300self
+# ld: --relax
 # objdump: -d --no-show-raw-insn
 
-.*:     file format .*-h8300
+.*:     file format .*
 
 Disassembly of section .text:
 
diff --git a/ld/testsuite/ld-h8300/relax-6.d b/ld/testsuite/ld-h8300/relax-6.d
index 023af78a29..54853ef6db 100644
--- a/ld/testsuite/ld-h8300/relax-6.d
+++ b/ld/testsuite/ld-h8300/relax-6.d
@@ -1,9 +1,9 @@ 
 # name: H8300 Relaxation Test 6
 # source: relax-6.s
-# ld: --relax -m h8300self
+# ld: --relax
 # objdump: -d --no-show-raw-insn
 
-.*:     file format .*-h8300
+.*:     file format .*
 Disassembly of section .text:
 
 00000100 <_start>:
diff --git a/ld/testsuite/ld-h8300/relax-7.d b/ld/testsuite/ld-h8300/relax-7.d
index ecf1a106ca..9bd68626c7 100644
--- a/ld/testsuite/ld-h8300/relax-7.d
+++ b/ld/testsuite/ld-h8300/relax-7.d
@@ -1,9 +1,9 @@ 
 # name: H8300 Relaxation Test 7
 # source: relax-7?.s
-# ld: --relax -m h8300self
+# ld: --relax
 # objdump: -d -s --no-show-raw-insn
 
-.*:     file format .*-h8300
+.*:     file format .*
 
 Contents of section .text:
  0100 1a801aa2 7a01ffff 80000100 6f2201d0  [^\000]*
diff --git a/ld/testsuite/ld-h8300/relax.d b/ld/testsuite/ld-h8300/relax.d
index e7315a1c3d..fb863586bf 100644
--- a/ld/testsuite/ld-h8300/relax.d
+++ b/ld/testsuite/ld-h8300/relax.d
@@ -5,7 +5,7 @@ 
 # Based on the test case reported by Kazu Hirata:
 # http://sources.redhat.com/ml/binutils/2002-11/msg00301.html
 
-.*:     file format .*-h8300
+.*:     file format .*
 
 Disassembly of section .text:
 
diff --git a/ld/testsuite/ld-undefined/entry-3.d b/ld/testsuite/ld-undefined/entry-3.d
index 474a6d934d..3a01bc1d49 100644
--- a/ld/testsuite/ld-undefined/entry-3.d
+++ b/ld/testsuite/ld-undefined/entry-3.d
@@ -3,6 +3,7 @@ 
 #ld: -shared --entry foo tmpdir/libentry.a
 #nm: -n
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #...
 [0-9a-f]+ T +foo
diff --git a/ld/testsuite/ld-undefined/entry-4.d b/ld/testsuite/ld-undefined/entry-4.d
index fa390a486a..a072e9b278 100644
--- a/ld/testsuite/ld-undefined/entry-4.d
+++ b/ld/testsuite/ld-undefined/entry-4.d
@@ -3,6 +3,7 @@ 
 #ld: -shared --entry foo -u foo tmpdir/libentry.a
 #nm: -n
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
+#xfail: h8300-*-*
 
 #...
 [0-9a-f]+ T +foo