Support tcl procedure calls in run_dump_test xfail
authorAlan Modra <amodra@gmail.com>
Wed, 29 May 2019 13:24:37 +0000 (22:54 +0930)
committerAlan Modra <amodra@gmail.com>
Wed, 29 May 2019 15:22:08 +0000 (00:52 +0930)
Also support tcl procedure calls in the run_ld_link_tests and
run_ld_link_exec_tests optional "xfail" args.  Implements "is_generic"
and renames "is_generic_elf" to "uses_genelf", then uses these procs
in lots of ld tests.

moxie-elf  -FAIL: ld-elf/orphan3
mt-elf  -FAIL: ld-elf/merge
s12z-elf  -FAIL: ld-discard/extern
s12z-elf  -FAIL: ld-discard/start
s12z-elf  -FAIL: ld-discard/static
s12z-elf  -FAIL: PR ld/21703
s12z-elf  -FAIL: PR ld/21703 -r
s12z-elf  -FAIL: Symbol flags copy
s12z-elf  -FAIL: ld-elf/group1
s12z-elf  -FAIL: ld-elf/group3b
s12z-elf  -FAIL: ld-elf/group8a
s12z-elf  -FAIL: ld-elf/group8b
s12z-elf  -FAIL: ld-elf/group9a
s12z-elf  -FAIL: ld-elf/group9b
s12z-elf  -FAIL: ld-elf/linkonce2
s12z-elf  -FAIL: ld-elf/merge2
s12z-elf  -FAIL: ld-elf/merge3
s12z-elf  -FAIL: ld-elf/pr12851
s12z-elf  -FAIL: ld-elf/pr17550c
s12z-elf  -FAIL: ld-elf/pr17550d
s12z-elf  -FAIL: ld-elf/pr22677
s12z-elf  -FAIL: ld-elf/pr22836-1a
s12z-elf  -FAIL: ld-elf/pr22836-1b
s12z-elf  -FAIL: ld-elf/warn1
s12z-elf  -FAIL: ld-elf/warn3

binutils/
* testsuite/lib/binutils-common.exp (run_dump_test): Support
tcl procedures for xfail args.
ld/
* testsuite/lib/ld-lib.exp (run_ld_link_tests): Support procedure
calls in optional "xfail" args.
(run_ld_link_exec_tests): Likewise.
(is_generic): New.
(uses_genelf): Rename from is_generic_elf.  Delete bogus semicolons.
* testsuite/ld-scripts/align.exp: Rename is_generic_elf call.
* testsuite/ld-elf/elf.exp: Use is_generic and uses_genelf.  Delete
xfail_implib var.
* testsuite/ld-elf/sec64k.exp: Use is_generic.
* testsuite/ld-elf/shared.exp: Likewise.
* testsuite/ld-discard/extern.d: Use is_generic in xfail.
* testsuite/ld-discard/start.d: Likewise.
* testsuite/ld-discard/static.d: Likewise.
* testsuite/ld-elf/attributes.d: Likewise.
* testsuite/ld-elf/group1.d: Likewise.
* testsuite/ld-elf/group3b.d: Likewise.
* testsuite/ld-elf/group8a.d: Likewise.
* testsuite/ld-elf/group8b.d: Likewise.
* testsuite/ld-elf/group9a.d: Likewise.
* testsuite/ld-elf/group9b.d: Likewise.
* testsuite/ld-elf/linkonce2.d: Likewise.
* testsuite/ld-elf/merge2.d: Likewise.
* testsuite/ld-elf/merge3.d: Likewise.
* testsuite/ld-elf/pr12851.d: Likewise.
* testsuite/ld-elf/pr12975.d: Likewise.
* testsuite/ld-elf/pr13177.d: Likewise.
* testsuite/ld-elf/pr13195.d: Likewise.
* testsuite/ld-elf/pr17550c.d: Likewise.
* testsuite/ld-elf/pr17550d.d: Likewise.
* testsuite/ld-elf/pr17615.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/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/pr22677.d: Likewise.
* testsuite/ld-elf/pr22836-1a.d: Likewise.
* testsuite/ld-elf/pr22836-1b.d: Likewise.
* testsuite/ld-elf/warn3.d: Likewise.
* testsuite/ld-elf/warn1.d: Likewise and xfail sparc solaris
targets rather than notarget.
* testsuite/ld-elf/compressed1d.d: Use uses_genelf in xfail.
* testsuite/ld-elf/orphan-10.d: Likewise.
* testsuite/ld-elf/orphan-9.d: Likewise.
* testsuite/ld-elf/orphan-region.d: Likewise.
* testsuite/ld-elf/orphan.d: Likewise.
* testsuite/ld-elf/orphan3.d: Likewise.
* testsuite/ld-elf/pr20528a.d: Likewise.
* testsuite/ld-elf/pr20528b.d: Likewise.
* testsuite/ld-elf/pr23658-1a.d: Likewise.
* testsuite/ld-elf/pr23658-1b.d: Likewise.
* testsuite/ld-elf/pr349.d: Likewise.
* testsuite/ld-elf/warn2.d: Likewise and xfail sparc solaris
targets rather than notarget.
* testsuite/ld-elf/merge.d: Correct ms1-*-* to mt-*-*.

56 files changed:
binutils/ChangeLog
binutils/testsuite/lib/binutils-common.exp
ld/ChangeLog
ld/testsuite/ld-discard/extern.d
ld/testsuite/ld-discard/start.d
ld/testsuite/ld-discard/static.d
ld/testsuite/ld-elf/attributes.d
ld/testsuite/ld-elf/compressed1d.d
ld/testsuite/ld-elf/elf.exp
ld/testsuite/ld-elf/group1.d
ld/testsuite/ld-elf/group3b.d
ld/testsuite/ld-elf/group8a.d
ld/testsuite/ld-elf/group8b.d
ld/testsuite/ld-elf/group9a.d
ld/testsuite/ld-elf/group9b.d
ld/testsuite/ld-elf/linkonce2.d
ld/testsuite/ld-elf/merge.d
ld/testsuite/ld-elf/merge2.d
ld/testsuite/ld-elf/merge3.d
ld/testsuite/ld-elf/orphan-10.d
ld/testsuite/ld-elf/orphan-9.d
ld/testsuite/ld-elf/orphan-region.d
ld/testsuite/ld-elf/orphan.d
ld/testsuite/ld-elf/orphan3.d
ld/testsuite/ld-elf/pr12851.d
ld/testsuite/ld-elf/pr12975.d
ld/testsuite/ld-elf/pr13177.d
ld/testsuite/ld-elf/pr13195.d
ld/testsuite/ld-elf/pr17550c.d
ld/testsuite/ld-elf/pr17550d.d
ld/testsuite/ld-elf/pr17615.d
ld/testsuite/ld-elf/pr20528a.d
ld/testsuite/ld-elf/pr20528b.d
ld/testsuite/ld-elf/pr21562a.d
ld/testsuite/ld-elf/pr21562b.d
ld/testsuite/ld-elf/pr21562c.d
ld/testsuite/ld-elf/pr21562d.d
ld/testsuite/ld-elf/pr21562i.d
ld/testsuite/ld-elf/pr21562j.d
ld/testsuite/ld-elf/pr21562k.d
ld/testsuite/ld-elf/pr21562l.d
ld/testsuite/ld-elf/pr21562m.d
ld/testsuite/ld-elf/pr21562n.d
ld/testsuite/ld-elf/pr22677.d
ld/testsuite/ld-elf/pr22836-1a.d
ld/testsuite/ld-elf/pr22836-1b.d
ld/testsuite/ld-elf/pr23658-1a.d
ld/testsuite/ld-elf/pr23658-1b.d
ld/testsuite/ld-elf/pr349.d
ld/testsuite/ld-elf/sec64k.exp
ld/testsuite/ld-elf/shared.exp
ld/testsuite/ld-elf/warn1.d
ld/testsuite/ld-elf/warn2.d
ld/testsuite/ld-elf/warn3.d
ld/testsuite/ld-scripts/align.exp
ld/testsuite/lib/ld-lib.exp

index 413e2c1..7f43a89 100644 (file)
@@ -1,3 +1,8 @@
+2019-05-30  Alan Modra  <amodra@gmail.com>
+
+       * testsuite/lib/binutils-common.exp (run_dump_test): Support
+       tcl procedures for xfail args.
+
 2019-05-29  Nick Clifton  <nickc@redhat.com>
 
        * README-how-to-make-a-release: Add libctf to list of directories
index 8f622ba..9511d28 100644 (file)
@@ -974,7 +974,10 @@ proc run_dump_test { name {extra_options {}} } {
 
     # Time to setup xfailures.
     foreach targ $opts(xfail) {
-       setup_xfail $targ
+       if [match_target $targ] {
+           setup_xfail "*-*-*"
+           break
+       }
     }
 
     foreach as_flags $as_final_flags {
index 54bc874..586f4b1 100644 (file)
@@ -1,3 +1,66 @@
+2019-05-30  Alan Modra  <amodra@gmail.com>
+
+       * testsuite/lib/ld-lib.exp (run_ld_link_tests): Support procedure
+       calls in optional "xfail" args.
+       (run_ld_link_exec_tests): Likewise.
+       (is_generic): New.
+       (uses_genelf): Rename from is_generic_elf.  Delete bogus semicolons.
+       * testsuite/ld-scripts/align.exp: Rename is_generic_elf call.
+       * testsuite/ld-elf/elf.exp: Use is_generic and uses_genelf.  Delete
+       xfail_implib var.
+       * testsuite/ld-elf/sec64k.exp: Use is_generic.
+       * testsuite/ld-elf/shared.exp: Likewise.
+       * testsuite/ld-discard/extern.d: Use is_generic in xfail.
+       * testsuite/ld-discard/start.d: Likewise.
+       * testsuite/ld-discard/static.d: Likewise.
+       * testsuite/ld-elf/attributes.d: Likewise.
+       * testsuite/ld-elf/group1.d: Likewise.
+       * testsuite/ld-elf/group3b.d: Likewise.
+       * testsuite/ld-elf/group8a.d: Likewise.
+       * testsuite/ld-elf/group8b.d: Likewise.
+       * testsuite/ld-elf/group9a.d: Likewise.
+       * testsuite/ld-elf/group9b.d: Likewise.
+       * testsuite/ld-elf/linkonce2.d: Likewise.
+       * testsuite/ld-elf/merge2.d: Likewise.
+       * testsuite/ld-elf/merge3.d: Likewise.
+       * testsuite/ld-elf/pr12851.d: Likewise.
+       * testsuite/ld-elf/pr12975.d: Likewise.
+       * testsuite/ld-elf/pr13177.d: Likewise.
+       * testsuite/ld-elf/pr13195.d: Likewise.
+       * testsuite/ld-elf/pr17550c.d: Likewise.
+       * testsuite/ld-elf/pr17550d.d: Likewise.
+       * testsuite/ld-elf/pr17615.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/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/pr22677.d: Likewise.
+       * testsuite/ld-elf/pr22836-1a.d: Likewise.
+       * testsuite/ld-elf/pr22836-1b.d: Likewise.
+       * testsuite/ld-elf/warn3.d: Likewise.
+       * testsuite/ld-elf/warn1.d: Likewise and xfail sparc solaris
+       targets rather than notarget.
+       * testsuite/ld-elf/compressed1d.d: Use uses_genelf in xfail.
+       * testsuite/ld-elf/orphan-10.d: Likewise.
+       * testsuite/ld-elf/orphan-9.d: Likewise.
+       * testsuite/ld-elf/orphan-region.d: Likewise.
+       * testsuite/ld-elf/orphan.d: Likewise.
+       * testsuite/ld-elf/orphan3.d: Likewise.
+       * testsuite/ld-elf/pr20528a.d: Likewise.
+       * testsuite/ld-elf/pr20528b.d: Likewise.
+       * testsuite/ld-elf/pr23658-1a.d: Likewise.
+       * testsuite/ld-elf/pr23658-1b.d: Likewise.
+       * testsuite/ld-elf/pr349.d: Likewise.
+       * testsuite/ld-elf/warn2.d: Likewise and xfail sparc solaris
+       targets rather than notarget.
+       * testsuite/ld-elf/merge.d: Correct ms1-*-* to mt-*-*.
+
 2019-05-28  Faraz Shahbazker  <fshahbazker@wavecomp.com>
 
        * testsuite/ld-mips-elf/undefweak-overflow.s: Remove test case
index 223c06b..0d5bca9 100644 (file)
@@ -2,7 +2,7 @@
 #ld: -T discard.ld
 #error: .*data.* referenced in section `\.text' of tmpdir/extern.o: defined in discarded section `\.data\.exit' of tmpdir/extern.o
 #objdump: -p
-#xfail: d30v-*-* dlx-*-* pj*-*-* xgate-*-*
+#xfail: [is_generic]
 #pass
 # The expected warning used to start with "`data' referenced..." but
 # this has two problems: 1) It does not include the name of the linker
index 274befc..f77f95d 100644 (file)
@@ -3,5 +3,5 @@
 #ld: -T discard.ld
 #error: `data' referenced in section `\.text' of tmpdir/start.o: defined in discarded section `\.data\.exit' of tmpdir/exit.o
 #objdump: -p
-#xfail: d30v-*-* dlx-*-* pj*-*-* xgate-*-*
+#xfail: [is_generic]
 #pass
index 2b49d84..830e81c 100644 (file)
@@ -2,5 +2,5 @@
 #ld: -T discard.ld
 #error: `(\.data\.exit|data)' referenced in section `\.text' of tmpdir/static.o: defined in discarded section `\.data\.exit' of tmpdir/static.o
 #objdump: -p
-#xfail: d30v-*-* dlx-*-* pj*-*-* xgate-*-*
+#xfail: [is_generic]
 #pass
index 9ca6d98..58b595a 100644 (file)
@@ -1,7 +1,7 @@
 #name: Symbol flags copy
 #ld: -T attributes.ld
 #objdump: -t
-#xfail: pj-*-* dlx-*-* d30v-*-* xgate-*-*
+#xfail: [is_generic]
 
 #...
 0+0000000 g     F .text        0+0000000 __start
index cd6a49b..df7ce34 100644 (file)
@@ -2,9 +2,8 @@
 #as: --compress-debug-sections=none
 #ld: -r --compress-debug-sections=zlib-gnu
 #readelf: -SW
-#xfail: d30v-*-* dlx-*-* fr30-*-* frv-*-elf ft32-*-* iq2000-*-*
-#xfail: mn10200-*-* moxie-*-* msp430-*-* mt-*-* pj-*-* riscv*-*-*
-#xfail: xgate-*-*
+#xfail: [uses_genelf]
+#xfail: riscv*-*-*
 # Not all ELF targets use the elf.em emulation...
 # RISC-V has linker relaxations that delete code, so text label subtractions
 # do not get resolved at assembly time, which results in a compressed section.
index 9121936..cf4ed42 100644 (file)
@@ -91,7 +91,7 @@ run_ld_link_tests {
       {"PR ld/21703 -r"
        "-r --allow-multiple-definition tmpdir/pr21703-3.o tmpdir/pr21703-4.o" "" "" \
        {pr21703-3.s pr21703-4.s} {{readelf {-s} pr21703-r.sd}} "pr21703.o" }
-} "d30v-*-*" "dlx-*-*" "pj-*-*" "xgate-*-*"
+} \[is_generic\]
 
 if [is_underscore_target] {
     set ASFLAGS "$ASFLAGS --defsym UNDERSCORE=1"
@@ -112,14 +112,8 @@ foreach t $test_list {
 
 set ASFLAGS "$saved_ASFLAGS"
 
-# Targets using the generic linker backend don't support generating
-# an import library.
-set xfail_implib ""
-if [is_generic_elf] {
-    set xfail_implib "*-*-*"
-}
-
 # Check that the --out-implib option work correctly.
+# Targets that don't use elf32.em won't support this.
 run_ld_link_tests [list \
     [list "Generate empty import library" \
        "--out-implib=tmpdir/implib.lib" "" \
@@ -133,7 +127,7 @@ run_ld_link_tests [list \
        {implib.s} \
        {{readelf {-s tmpdir/implib.lib} implib.rd}} \
        "implib" ] \
-] $xfail_implib
+] \[uses_genelf\]
 
 #v850 gas complains about .tbss.var section attributes.
 if { [check_gc_sections_available] && ![istarget "v850-*-*"] } {
index 22d2df4..4d1c921 100644 (file)
@@ -2,7 +2,7 @@
 #source: group1b.s
 #ld: -T group.ld
 #readelf: -s
-#xfail: d30v-*-* dlx-*-* pj*-*-* xgate-*-* *-*-solaris*
+#xfail: [is_generic] *-*-solaris*
 # generic linker targets don't comply with all symbol merging rules
 
 Symbol table '.symtab' contains .* entries:
index 15f1a43..14ba5a3 100644 (file)
@@ -2,7 +2,7 @@
 #source: group3a.s
 #ld: -T group.ld
 #readelf: -s
-#xfail: d30v-*-* dlx-*-* pj*-*-* xgate-*-*
+#xfail: [is_generic]
 # generic linker targets don't comply with all symbol merging rules
 
 Symbol table '.symtab' contains .* entries:
index 3274085..59043b2 100644 (file)
@@ -2,8 +2,7 @@
 #ld: -r --gc-sections --entry foo
 #readelf: -g --wide
 # generic linker targets don't support --gc-sections, nor do a bunch of others
-#xfail: d30v-*-* dlx-*-* hppa64-*-*
-#xfail: mep-*-* mn10200-*-* pj*-*-* pru-*-* xgate-*-*
+#xfail: [is_generic] hppa64-*-* mep-*-* mn10200-*-* pru-*-*
 
 COMDAT group section \[[ 0-9]+\] `.group' \[foo\] contains . sections:
    \[Index\]    Name
index 9c6ad50..7de82ef 100644 (file)
@@ -2,8 +2,7 @@
 #ld: -r --gc-sections --entry bar
 #readelf: -g --wide
 # generic linker targets don't support --gc-sections, nor do a bunch of others
-#xfail: d30v-*-* dlx-*-* hppa64-*-* mep-*-* mn10200-*-*
-#xfail: pj*-*-* pru-*-* xgate-*-*
+#xfail: [is_generic] hppa64-*-* mep-*-* mn10200-*-* pru-*-*
 
 COMDAT group section \[[ 0-9]+\] `.group' \[bar\] contains . sections:
    \[Index\]    Name
index 8246d0d..d2ec10c 100644 (file)
@@ -2,8 +2,7 @@
 #ld: -r --gc-sections --entry foo
 #readelf: -g --wide
 # generic linker targets don't support --gc-sections, nor do a bunch of others
-#xfail: d30v-*-* dlx-*-* hppa64-*-* mep-*-* mn10200-*-*
-#xfail: pj*-*-* pru-*-* xgate-*-*
+#xfail: [is_generic] hppa64-*-* mep-*-* mn10200-*-* pru-*-*
 
 COMDAT group section \[[ 0-9]+\] `.group' \[foo\] contains . sections:
    \[Index\]    Name
index 66a1732..df7f576 100644 (file)
@@ -2,8 +2,7 @@
 #ld: -r --gc-sections --entry bar
 #readelf: -g --wide
 # generic linker targets don't support --gc-sections, nor do a bunch of others
-#xfail: d30v-*-* dlx-*-* hppa64-*-* mep-*-* mn10200-*-*
-#xfail: pj*-*-* pru-*-* xgate-*-*
+#xfail: [is_generic] hppa64-*-* mep-*-* mn10200-*-* pru-*-*
 
 COMDAT group section \[[ 0-9]+\] `.group' \[foo\] contains . sections:
    \[Index\]    Name
index 66d5534..0822ef5 100644 (file)
@@ -2,7 +2,7 @@
 #source: linkonce1b.s
 #ld: -emit-relocs
 #objdump: -r
-#xfail: d30v-*-* dlx-*-* pj*-*-* xgate-*-*
+#xfail: [is_generic]
 # generic elf targets don't emit relocs
 
 .*:     file format .*
index dc0bcc5..9a1ddfc 100644 (file)
@@ -4,7 +4,7 @@
 #xfail: bfin-*-* cr16-*-* cris*-*-* crx-*-* d10v-*-* d30v-*-* dlx-*-*
 #xfail: fr30-*-* frv-*-* ft32-*-* h8300-*-* hppa*64*-*-* ip2k-*-* iq2000-*-*
 #xfail: lm32-*-* m68hc11-*-* mcore-*-* mep-*-* metag-*-* mn102*-*-* moxie-*-*
-#xfail: ms1-*-* nds32*-*-* nios2-*-* or32-*-* pj-*-* pru-*-* s12z-*-* score-*-*
+#xfail: mt-*-* nds32*-*-* nios2-*-* or32-*-* pj-*-* pru-*-* s12z-*-* score-*-*
 #xfail: tic6x-*-* vax-*-* xgate-*-* xstormy16-*-* xtensa*-*-*
 
 .*:     file format .*elf.*
index 0a7faa7..500ac77 100644 (file)
@@ -1,7 +1,7 @@
 #source: merge2.s
 #ld: -T merge.ld
 #objdump: -s
-#xfail: d30v-*-* dlx-*-* hppa64-*-* ip2k-*-* pj-*-* xgate-*-*
+#xfail: [is_generic] hppa64-*-* ip2k-*-*
 
 .*:     file format .*elf.*
 
index 53dc342..de6584c 100644 (file)
@@ -1,7 +1,7 @@
 #source: merge3.s
 #ld: -T merge.ld
 #objdump: -s
-#xfail: d30v-*-* dlx-*-* hppa64-*-* ip2k-*-* pj-*-* xgate-*-*
+#xfail: [is_generic] hppa64-*-* ip2k-*-*
 
 .*:     file format .*elf.*
 
index 2571c0e..8ad71c8 100644 (file)
@@ -1,8 +1,7 @@
 #source: orphan-10.s
 #ld: -N -T orphan-9.ld
 #objdump: -h
-#xfail: d30v-* dlx-* fr30-* frv-*-elf ft32-* iq2000-*
-#xfail: mn10200-* moxie-* ms1-* msp430-* mt-* pj-* xgate-*
+#xfail: [uses_genelf]
 
 #...
   . \.text         0+(08|10)  [0-9a-f]+  0+200 .*
index 3d9e324..27efb81 100644 (file)
@@ -1,8 +1,7 @@
 #source: orphan-9.s
 #ld: -N -T orphan-9.ld
 #objdump: -h
-#xfail: d30v-* dlx-* fr30-* frv-*-elf ft32-* iq2000-*
-#xfail: mn10200-* moxie-* ms1-* msp430-* mt-* pj-* xgate-*
+#xfail: [uses_genelf]
 
 #...
   . \.text         0+(08|10)  [0-9a-f]+  0+200 .*
index dd98320..a6d4d64 100644 (file)
@@ -1,9 +1,7 @@
 #source: orphan-region.s
 #ld: -T orphan-region.ld -N -z stack-size=0
 #readelf: -S -l --wide
-#xfail: d30v-*-* dlx-*-* fr30-*-* frv-*-elf ft32-*-* hppa*64*-*-*
-#xfail: iq*-*-* mn10200-*-* moxie-*-* msp*-*-* mt-*-* pj*-*-*
-#xfail: spu-*-* xgate-*-* *-*-nacl*
+#xfail: [uses_genelf] hppa*64*-*-* spu-*-* *-*-nacl*
 # if not using elf32.em, you don't get fancy orphan handling
 # spu twiddles LOAD range, hppa64 adds PHDR, nacl splits to two segments
 
index 38af1fd..cbd64fd 100644 (file)
@@ -1,8 +1,7 @@
 #source: orphan.s
 #ld: -T orphan.ld
 #readelf: -S --wide
-#xfail: d30v-*-* dlx-*-* fr30-*-* frv-*-elf ft32-*-*
-#xfail: iq*-*-* mn10200-*-* moxie-*-* msp*-*-* mt-*-* pj*-*-* xgate-*-*
+#xfail: [uses_genelf]
 # if not using elf32.em, you don't get fancy orphan handling
 
 #...
index 7c2e512..af6ce25 100644 (file)
@@ -6,8 +6,8 @@
 #source: orphan3f.s
 #ld:
 #readelf: -S --wide
-#xfail: d30v-*-* dlx-*-* fr30-*-* frv-*-elf ft32-*-* iq2000-*-*
-#xfail: mn10200-*-* msp430-*-* mt-*-* pj-*-* xgate-*-* xstormy16-*-*
+#xfail: [uses_genelf]
+#xfail: xstormy16-*-*
 
 #...
   \[[ 0-9]+\] \.foo +PROGBITS +[0-9a-f]+ +[0-9a-f]+ +0+20 +0+ +A +0 +0 +[0-9]+
index 0c42515..fe75caf 100644 (file)
@@ -2,8 +2,7 @@
 #source: start.s
 #ld: --gc-sections
 #readelf: -s --wide
-#xfail: d30v-*-* dlx-*-* hppa64-*-* mep-*-* mn10200-*-*
-#xfail: pj*-*-* pru-*-* xgate-*-*
+#xfail: [is_generic] hppa64-*-* mep-*-* mn10200-*-* pru-*-*
 # generic linker targets don't support --gc-sections, nor do a bunch of others
 
 #...
index 927924c..054df31 100644 (file)
@@ -1,7 +1,7 @@
 #ld: --gc-sections -shared -version-script pr12975.t
 #readelf: -s --wide
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: d30v-*-* dlx-*-* hppa64-*-* mep-*-* mn10200-*-* pj*-*-* xgate-*-*
+#xfail: [is_generic] hppa64-*-* mep-*-* mn10200-*-*
 # generic linker targets don't support --gc-sections, nor do a bunch of others
 
 #failif
index 64d7016..bc23650 100644 (file)
@@ -2,7 +2,7 @@
 #ld: --gc-sections -shared
 #readelf: -s -D --wide
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: d30v-*-* dlx-*-* hppa64-*-* mep-*-* mn10200-*-* pj*-*-* xgate-*-*
+#xfail: [is_generic] hppa64-*-* mep-*-* mn10200-*-*
 # generic linker targets don't support --gc-sections, nor do a bunch of others
 
 #failif
index c0a7f31..8a0f9bd 100644 (file)
@@ -1,7 +1,7 @@
 #ld: --gc-sections -shared -version-script pr13195.t
 #readelf: -s --wide -D
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: d30v-*-* dlx-*-* hppa64-*-* mep-*-* mn10200-*-* pj*-*-* xgate-*-*
+#xfail: [is_generic] hppa64-*-* mep-*-* mn10200-*-*
 # generic linker targets don't support --gc-sections, nor do a bunch of others
 
 #...
index c9c06d0..55749fc 100644 (file)
@@ -2,6 +2,6 @@
 #source: pr17550-3.s
 #ld: -r
 #error: .*: defined in discarded section `\.data\[foo_group\]'
-#xfail: alpha-*-* d30v-*-* dlx-*-* pj*-*-* xgate-*-*
+#xfail: alpha-*-* [is_generic]
 # Disabled on alpha because alpha has a different .set directive.
 # Generic linker targets don't support comdat group sections.
index 3fbcb87..3dd108d 100644 (file)
@@ -4,7 +4,7 @@
 #readelf: -s --wide
 # Disabled on alpha because alpha has a different .set directive.
 # Generic linker targets don't support comdat group sections.
-#xfail: alpha-*-* d30v-*-* dlx-*-* pj*-*-* xgate-*-*
+#xfail: alpha-*-* [is_generic]
 
 #...
  +[0-9]+: +[0-9a-f]+ +0 +OBJECT +GLOBAL +DEFAULT +UND y
index c426366..6ab0d0e 100644 (file)
@@ -1,7 +1,7 @@
 #ld: --gc-sections -shared
 #readelf: -S --wide --dyn-syms
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: d30v-*-* dlx-*-* hppa64-*-* mep-*-* mn10200-*-* pj*-*-* xgate-*-*
+#xfail: [is_generic] hppa64-*-* mep-*-* mn10200-*-*
 # generic linker targets don't support --gc-sections, nor do a bunch of others
 
 #...
index 68ea140..c45c650 100644 (file)
@@ -2,8 +2,7 @@
 #source: pr20528b.s
 #ld: -r
 #readelf: -S --wide
-#xfail: d30v-*-* dlx-*-* fr30-*-* frv-*-elf ft32-*-*
-#xfail: iq*-*-* mn10200-*-* moxie-*-* msp*-*-* mt-*-* pj*-*-* xgate-*-*
+#xfail: [uses_genelf]
 
 #...
 [      ]*\[.*\][       ]+\.text.startup[       ]+PROGBITS.*[   ]+AX[   ]+.*
index 5777c27..c471d02 100644 (file)
@@ -2,8 +2,7 @@
 #source: pr20528a.s
 #ld: -r
 #readelf: -S --wide
-#xfail: d30v-*-* dlx-*-* fr30-*-* frv-*-elf ft32-*-*
-#xfail: iq*-*-* mn10200-*-* moxie-*-* msp*-*-* mt-*-* pj*-*-* xgate-*-*
+#xfail: [uses_genelf]
 
 #...
 [      ]*\[.*\][       ]+\.text.startup[       ]+PROGBITS.*[   ]+AXE[   ]+.*
index 5a80357..c36dd3c 100644 (file)
@@ -1,7 +1,7 @@
 #ld: -shared -z defs --gc-sections
 #readelf: -s -S --wide
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: d30v-*-* dlx-*-* hppa64-*-* mep-*-* mn10200-*-* pj*-*-* xgate-*-*
+#xfail: [is_generic] hppa64-*-* mep-*-* mn10200-*-*
 # generic linker targets don't support --gc-sections, nor do a bunch of others
 
 #...
index b875c0f..a751f2e 100644 (file)
@@ -1,7 +1,7 @@
 #ld: -shared -z defs --gc-sections
 #readelf: -s -S --wide
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: d30v-*-* dlx-*-* hppa64-*-* mep-*-* mn10200-*-* pj*-*-* xgate-*-*
+#xfail: [is_generic] hppa64-*-* mep-*-* mn10200-*-*
 # generic linker targets don't support --gc-sections, nor do a bunch of others
 
 #...
index a551c34..4dc4b7f 100644 (file)
@@ -2,7 +2,7 @@
 #ld: -shared -z defs --gc-sections -T pr21562a.t
 #readelf: -s -S --wide
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: d30v-*-* dlx-*-* hppa64-*-* mep-*-* mn10200-*-* pj*-*-* xgate-*-*
+#xfail: [is_generic] hppa64-*-* mep-*-* mn10200-*-*
 # generic linker targets don't support --gc-sections, nor do a bunch of others
 
 #...
index 674938d..5323b49 100644 (file)
@@ -2,7 +2,7 @@
 #ld: -shared -z defs --gc-sections -T pr21562a.t
 #readelf: -s -S --wide
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: d30v-*-* dlx-*-* hppa64-*-* mep-*-* mn10200-*-* pj*-*-* xgate-*-*
+#xfail: [is_generic] hppa64-*-* mep-*-* mn10200-*-*
 # generic linker targets don't support --gc-sections, nor do a bunch of others
 
 #...
index fb75243..ccdebed 100644 (file)
@@ -2,7 +2,7 @@
 #ld: -shared -z defs --gc-sections -T pr21562b.t
 #readelf: -s -S --wide
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: d30v-*-* dlx-*-* hppa64-*-* mep-*-* mn10200-*-* pj*-*-* xgate-*-*
+#xfail: [is_generic] hppa64-*-* mep-*-* mn10200-*-*
 # generic linker targets don't support --gc-sections, nor do a bunch of others
 
 #...
index 42ca86e..97eee51 100644 (file)
@@ -2,7 +2,7 @@
 #ld: -shared -z defs --gc-sections -T pr21562b.t
 #readelf: -s -S --wide
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: d30v-*-* dlx-*-* hppa64-*-* mep-*-* mn10200-*-* pj*-*-* xgate-*-*
+#xfail: [is_generic] hppa64-*-* mep-*-* mn10200-*-*
 # generic linker targets don't support --gc-sections, nor do a bunch of others
 
 #...
index 2c64e2b..21d7897 100644 (file)
@@ -2,7 +2,7 @@
 #ld: -shared -z defs --gc-sections -T pr21562c.t
 #readelf: -s -S --wide
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: d30v-*-* dlx-*-* hppa64-*-* mep-*-* mn10200-*-* pj*-*-* xgate-*-*
+#xfail: [is_generic] hppa64-*-* mep-*-* mn10200-*-*
 # generic linker targets don't support --gc-sections, nor do a bunch of others
 
 #...
index 7222611..2233c66 100644 (file)
@@ -2,7 +2,7 @@
 #ld: -shared -z defs --gc-sections -T pr21562c.t
 #readelf: -s -S --wide
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: d30v-*-* dlx-*-* hppa64-*-* mep-*-* mn10200-*-* pj*-*-* xgate-*-*
+#xfail: [is_generic] hppa64-*-* mep-*-* mn10200-*-*
 # generic linker targets don't support --gc-sections, nor do a bunch of others
 
 #...
index 917b2ca..62d2949 100644 (file)
@@ -2,7 +2,7 @@
 #ld: -shared -z defs --gc-sections -T pr21562d.t
 #readelf: -s -S --wide
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: d30v-*-* dlx-*-* hppa64-*-* mep-*-* mn10200-*-* pj*-*-* xgate-*-*
+#xfail: [is_generic] hppa64-*-* mep-*-* mn10200-*-*
 # generic linker targets don't support --gc-sections, nor do a bunch of others
 
 #...
index 881db3d..5b4a326 100644 (file)
@@ -2,7 +2,7 @@
 #ld: -shared -z defs --gc-sections -T pr21562d.t
 #readelf: -s -S --wide
 #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
-#xfail: d30v-*-* dlx-*-* hppa64-*-* mep-*-* mn10200-*-* pj*-*-* xgate-*-*
+#xfail: [is_generic] hppa64-*-* mep-*-* mn10200-*-*
 # generic linker targets don't support --gc-sections, nor do a bunch of others
 
 #...
index 38e2be1..49af52a 100644 (file)
@@ -2,8 +2,7 @@
 #readelf: -S --wide
 # generic linker targets don't support --gc-sections, nor do a bunch of
 # others.
-#xfail: d30v-*-* dlx-*-* hppa64-*-*
-#xfail: mep-*-* mn10200-*-* pj*-*-* pru-*-* xgate-*-*
+#xfail: [is_generic] hppa64-*-* mep-*-* mn10200-*-* pru-*-*
 
 #...
   \[[ 0-9]+\] \.preinit_array\.01000[ \t]+PREINIT_ARRAY[ \t0-9a-f]+WA?.*
index fbfd8d9..03aa8cc 100644 (file)
@@ -1,7 +1,7 @@
 #source: pr22836-1.s
 #ld: -r -s
 #readelf: -g --wide
-#xfail: d30v-*-* dlx-*-* pj-*-* xgate-*-*
+#xfail: [is_generic]
 # Targets using the generic linker don't properly support comdat group sections
 
 There are no section groups in this file\.
index ca7d3f0..c2dc75e 100644 (file)
@@ -1,7 +1,7 @@
 #source: pr22836-1.s
 #ld: -r -S
 #readelf: -g --wide
-#xfail: d30v-*-* dlx-*-* pj-*-* xgate-*-*
+#xfail: [is_generic]
 # Targets using the generic linker don't properly support comdat group sections
 
 There are no section groups in this file\.
index 5cfc7d2..0757cc4 100644 (file)
@@ -7,8 +7,8 @@
 #readelf: -l --wide
 # Since generic linker targets don't place SHT_NOTE sections as orphan,
 # SHT_NOTE sections aren't grouped nor sorted.
-#xfail: d30v-* dlx-* fr30-* frv-*-elf ft32-* iq2000-*
-#xfail: m68hc12-* mn10200-* moxie-* mt-* msp430-* pj-* xgate-*
+#xfail: [uses_genelf]
+#xfail: m68hc12-*
 # The following targets don't support --build-id.
 #xfail: cr16-* crx-* visium-* xc16x-*
 # The following targets place .note.gnu.build-id in unusual places.
index a8e7d16..7ffe658 100644 (file)
@@ -7,8 +7,7 @@
 #readelf: -l --wide
 # Since generic linker targets don't place SHT_NOTE sections as orphan,
 # SHT_NOTE sections aren't grouped nor sorted.
-#xfail: d30v-* dlx-* fr30-* frv-*-elf ft32-* iq2000-*
-#xfail: mn10200-* moxie-* mt-* msp430-* pj-* xgate-*
+#xfail: [uses_genelf]
 
 #...
  +[0-9]+ +\.note\.4 \.note\.1( .note.gnu.property|) +
index 3354df2..2864653 100644 (file)
@@ -2,8 +2,7 @@
 #source: pr349-2.s
 #ld: -r
 #readelf: -S
-#xfail: d30v-*-* dlx-*-* fr30-*-* frv-*-elf ft32-*-*
-#xfail: iq*-*-* mn10200-*-* moxie-*-* msp*-*-* mt-*-* pj*-*-* xgate-*-*
+#xfail: [uses_genelf]
 # if not using elf32.em, you don't get fancy section handling
 
 #...
index 783d9ee..f7be034 100644 (file)
@@ -29,19 +29,15 @@ if ![is_elf_format] {
 
 # Targets using _bfd_generic_final_link don't sort section symbols
 # before local symbols, so don't bother testing them.
-if { [istarget "d30v-*-*"]
-     || [istarget "dlx-*-*"]
-     || [istarget "pj*-*-*"] } {
+if { [is_generic] } {
     return
 }
 
-# ft32, h8300, ip2k, m68hc11, m68hc12 and xgate run out of address space.
+# ft32, h8300, ip2k, m68hc11 and m68hc12 run out of address space.
 if {[istarget "ft32-*-*"]
     || [istarget "h8300-*-*"]
     || [istarget "ip2k-*-*"]
-    || [istarget "m68hc1*-*"]
-    || [istarget "s12z-*"]
-    || [istarget "xgate-*"] } {
+    || [istarget "m68hc1*-*"] } {
     return
 }
 
index f27fa24..8205700 100644 (file)
@@ -358,14 +358,14 @@ run_ld_link_tests [list \
 ] "bfin-*-*"
 
 # Targets that use _bfd_generic_link_add_symbols won't pass pr21703 tests
-# Not will hppa64 with dot-symbols.
+# Nor will hppa64 with dot-symbols.
 run_ld_link_tests [list \
     [list "PR ld/21703 shared" \
        "-shared --allow-multiple-definition --version-script pr21703.ver\
         tmpdir/pr21703-3.o tmpdir/pr21703-4.o" "" "$AFLAGS_PIC" \
        {pr21703-3.s pr21703-4.s} {{readelf {--dyn-syms} pr21703-shared.sd}} \
        "pr21703.so" ] \
-] "d30v-*-*" "dlx-*-*" "pj-*-*" "hppa64-*-*" "xgate-*-*"
+] \[is_generic\] hppa64-*-*
 
 # This target requires extra GAS options when building non-PIC code
 # for linking with shared libraries.
index ac5d207..a5b8876 100644 (file)
@@ -4,8 +4,8 @@
 #ld: -T group.ld
 #warning: ^[^\n]*\): warning: witty one-liner$
 #readelf: -s
-#notarget: "sparc64-*-solaris2*" "sparcv9-*-solaris2*"
-#xfail: d30v-*-* dlx-*-* pj-*-* xgate-*-*
+#xfail: [is_generic]
+#xfail: "sparc64-*-solaris2*" "sparcv9-*-solaris2*"
 
 # Check that warnings are generated for the .gnu.warning.SYMBOL
 # construct and that the symbol still appears as expected.
index b952e84..3319fa7 100644 (file)
@@ -4,10 +4,9 @@
 #ld: -T group.ld
 #warning: ^[^\n]*\.[obj]+: warning: function 'Foo' used$
 #readelf: -s
-#notarget: "sparc64-*-solaris2*" "sparcv9-*-solaris2*"
-#xfail: d30v-*-* dlx-*-* fr30-*-* frv-*-elf ft32-*-*
-#xfail: iq*-*-* mn10200-*-* moxie-*-* msp*-*-* mt-*-* pj*-*-* xgate-*-*
 # if not using elf32.em, you don't get fancy section handling
+#xfail: [uses_genelf]
+#xfail: "sparc64-*-solaris2*" "sparcv9-*-solaris2*"
 
 # Check that warnings are generated for the symbols in .gnu.warning
 # construct and that the symbol still appears as expected.
index 5b55654..3015cf5 100644 (file)
@@ -2,7 +2,7 @@
 #ld: tmpdir/symbol3w.o tmpdir/symbol3.a 
 #warning: .*: warning: badsym warning$
 #readelf: -s
-#xfail: d30v-*-* dlx-*-* pj*-*-* xgate-*-*
+#xfail: [is_generic]
 # generic linker targets don't support .gnu.warning sections.
 
 # Check that warnings are generated for the symbols in .gnu.warning
index 4f3e8a7..3fc3d12 100644 (file)
@@ -54,6 +54,6 @@ if ![is_aout_format] {
 run_dump_test align2c
 set LDFLAGS "$saved_LDFLAGS"
 
-if { [is_elf_format] && ![is_generic_elf] } {
+if { [is_elf_format] && ![uses_genelf] } {
     run_dump_test pr23571
 }
index 5ebb7fa..f4d6707 100644 (file)
@@ -479,7 +479,10 @@ proc run_ld_link_tests { ldtests args } {
        }
 
        foreach target $args {
-           setup_xfail $target
+           if [match_target $target] {
+               setup_xfail "*-*-*"
+               break
+           }
        }
 
        set ld_options [lindex $testitem 1]
@@ -672,9 +675,6 @@ proc run_ld_link_exec_tests { ldtests args } {
     }
 
     foreach testitem $ldtests {
-       foreach target $args {
-           setup_xfail $target
-       }
        set testname [lindex $testitem 0]
        set ld_options [lindex $testitem 1]
        set as_options [lindex $testitem 2]
@@ -693,6 +693,13 @@ proc run_ld_link_exec_tests { ldtests args } {
            continue
        }
 
+       foreach target $args {
+           if [match_target $target] {
+               setup_xfail "*-*-*"
+               break
+           }
+       }
+
 #      verbose -log "Testname is $testname"
 #      verbose -log "ld_options is $ld_options"
 #      verbose -log "as_options is $as_options"
@@ -1081,8 +1088,20 @@ proc check_gc_sections_available { } {
     return $gc_sections_available_saved
 }
 
-# Return true if target uses genelf.em (assuming it is ELF).
-proc is_generic_elf { } {
+# Return true if target uses the generic_link_hash_table linker.
+proc is_generic { } {
+    if { [istarget "d30v-*-*"]
+        || [istarget "dlx-*-*"]
+        || [istarget "pj*-*-*"]
+        || [istarget "s12z-*-*"]
+        || [istarget "xgate-*-*"] } {
+       return 1
+    }
+    return 0
+}
+
+# Return true if target uses genelf.em.
+proc uses_genelf { } {
     if { [istarget "d30v-*-*"]
         || [istarget "dlx-*-*"]
         || [istarget "fr30-*-*"]
@@ -1095,9 +1114,9 @@ proc is_generic_elf { } {
         || [istarget "mt-*-*"]
         || [istarget "pj*-*-*"]
         || [istarget "xgate-*-*"] } {
-       return 1;
+       return 1
     }
-    return 0;
+    return 0
 }
 
 proc is_underscore_target { } {