summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2019-05-29 22:54:37 +0930
committerAlan Modra <amodra@gmail.com>2019-05-30 00:52:08 +0930
commit1336939d3cd4cb02670c48ef065bafdf0fdae300 (patch)
treeed0e689a5ec9f8345d354c0e91256a478ffd48f6
parent33a6bc350f5b4f03d586ba9d32667b6fea1dce4a (diff)
downloadbinutils-gdb-1336939d3cd4cb02670c48ef065bafdf0fdae300.tar.gz
Support tcl procedure calls in run_dump_test xfail
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-*-*.
-rw-r--r--binutils/ChangeLog5
-rw-r--r--binutils/testsuite/lib/binutils-common.exp5
-rw-r--r--ld/ChangeLog63
-rw-r--r--ld/testsuite/ld-discard/extern.d2
-rw-r--r--ld/testsuite/ld-discard/start.d2
-rw-r--r--ld/testsuite/ld-discard/static.d2
-rw-r--r--ld/testsuite/ld-elf/attributes.d2
-rw-r--r--ld/testsuite/ld-elf/compressed1d.d5
-rw-r--r--ld/testsuite/ld-elf/elf.exp12
-rw-r--r--ld/testsuite/ld-elf/group1.d2
-rw-r--r--ld/testsuite/ld-elf/group3b.d2
-rw-r--r--ld/testsuite/ld-elf/group8a.d3
-rw-r--r--ld/testsuite/ld-elf/group8b.d3
-rw-r--r--ld/testsuite/ld-elf/group9a.d3
-rw-r--r--ld/testsuite/ld-elf/group9b.d3
-rw-r--r--ld/testsuite/ld-elf/linkonce2.d2
-rw-r--r--ld/testsuite/ld-elf/merge.d2
-rw-r--r--ld/testsuite/ld-elf/merge2.d2
-rw-r--r--ld/testsuite/ld-elf/merge3.d2
-rw-r--r--ld/testsuite/ld-elf/orphan-10.d3
-rw-r--r--ld/testsuite/ld-elf/orphan-9.d3
-rw-r--r--ld/testsuite/ld-elf/orphan-region.d4
-rw-r--r--ld/testsuite/ld-elf/orphan.d3
-rw-r--r--ld/testsuite/ld-elf/orphan3.d4
-rw-r--r--ld/testsuite/ld-elf/pr12851.d3
-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/pr17550c.d2
-rw-r--r--ld/testsuite/ld-elf/pr17550d.d2
-rw-r--r--ld/testsuite/ld-elf/pr17615.d2
-rw-r--r--ld/testsuite/ld-elf/pr20528a.d3
-rw-r--r--ld/testsuite/ld-elf/pr20528b.d3
-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/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/pr22677.d3
-rw-r--r--ld/testsuite/ld-elf/pr22836-1a.d2
-rw-r--r--ld/testsuite/ld-elf/pr22836-1b.d2
-rw-r--r--ld/testsuite/ld-elf/pr23658-1a.d4
-rw-r--r--ld/testsuite/ld-elf/pr23658-1b.d3
-rw-r--r--ld/testsuite/ld-elf/pr349.d3
-rw-r--r--ld/testsuite/ld-elf/sec64k.exp10
-rw-r--r--ld/testsuite/ld-elf/shared.exp4
-rw-r--r--ld/testsuite/ld-elf/warn1.d4
-rw-r--r--ld/testsuite/ld-elf/warn2.d5
-rw-r--r--ld/testsuite/ld-elf/warn3.d2
-rw-r--r--ld/testsuite/ld-scripts/align.exp2
-rw-r--r--ld/testsuite/lib/ld-lib.exp35
56 files changed, 161 insertions, 98 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 413e2c1c379..7f43a896535 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -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
diff --git a/binutils/testsuite/lib/binutils-common.exp b/binutils/testsuite/lib/binutils-common.exp
index 8f622ba6b4a..9511d28c6ff 100644
--- a/binutils/testsuite/lib/binutils-common.exp
+++ b/binutils/testsuite/lib/binutils-common.exp
@@ -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 {
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 54bc8746dcc..586f4b1a5a8 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -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
diff --git a/ld/testsuite/ld-discard/extern.d b/ld/testsuite/ld-discard/extern.d
index 223c06b695a..0d5bca978cb 100644
--- a/ld/testsuite/ld-discard/extern.d
+++ b/ld/testsuite/ld-discard/extern.d
@@ -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
diff --git a/ld/testsuite/ld-discard/start.d b/ld/testsuite/ld-discard/start.d
index 274befcfef4..f77f95d5deb 100644
--- a/ld/testsuite/ld-discard/start.d
+++ b/ld/testsuite/ld-discard/start.d
@@ -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
diff --git a/ld/testsuite/ld-discard/static.d b/ld/testsuite/ld-discard/static.d
index 2b49d8446c0..830e81cf6d3 100644
--- a/ld/testsuite/ld-discard/static.d
+++ b/ld/testsuite/ld-discard/static.d
@@ -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
diff --git a/ld/testsuite/ld-elf/attributes.d b/ld/testsuite/ld-elf/attributes.d
index 9ca6d98863b..58b595abb3a 100644
--- a/ld/testsuite/ld-elf/attributes.d
+++ b/ld/testsuite/ld-elf/attributes.d
@@ -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
diff --git a/ld/testsuite/ld-elf/compressed1d.d b/ld/testsuite/ld-elf/compressed1d.d
index cd6a49b4d4c..df7ce344507 100644
--- a/ld/testsuite/ld-elf/compressed1d.d
+++ b/ld/testsuite/ld-elf/compressed1d.d
@@ -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.
diff --git a/ld/testsuite/ld-elf/elf.exp b/ld/testsuite/ld-elf/elf.exp
index 9121936c210..cf4ed422e4a 100644
--- a/ld/testsuite/ld-elf/elf.exp
+++ b/ld/testsuite/ld-elf/elf.exp
@@ -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-*-*"] } {
diff --git a/ld/testsuite/ld-elf/group1.d b/ld/testsuite/ld-elf/group1.d
index 22d2df4f36a..4d1c921df02 100644
--- a/ld/testsuite/ld-elf/group1.d
+++ b/ld/testsuite/ld-elf/group1.d
@@ -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:
diff --git a/ld/testsuite/ld-elf/group3b.d b/ld/testsuite/ld-elf/group3b.d
index 15f1a43300d..14ba5a3bf03 100644
--- a/ld/testsuite/ld-elf/group3b.d
+++ b/ld/testsuite/ld-elf/group3b.d
@@ -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:
diff --git a/ld/testsuite/ld-elf/group8a.d b/ld/testsuite/ld-elf/group8a.d
index 32740855f21..59043b29839 100644
--- a/ld/testsuite/ld-elf/group8a.d
+++ b/ld/testsuite/ld-elf/group8a.d
@@ -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
diff --git a/ld/testsuite/ld-elf/group8b.d b/ld/testsuite/ld-elf/group8b.d
index 9c6ad50e725..7de82ef515a 100644
--- a/ld/testsuite/ld-elf/group8b.d
+++ b/ld/testsuite/ld-elf/group8b.d
@@ -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
diff --git a/ld/testsuite/ld-elf/group9a.d b/ld/testsuite/ld-elf/group9a.d
index 8246d0dc940..d2ec10c9f72 100644
--- a/ld/testsuite/ld-elf/group9a.d
+++ b/ld/testsuite/ld-elf/group9a.d
@@ -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
diff --git a/ld/testsuite/ld-elf/group9b.d b/ld/testsuite/ld-elf/group9b.d
index 66a17320872..df7f57626b4 100644
--- a/ld/testsuite/ld-elf/group9b.d
+++ b/ld/testsuite/ld-elf/group9b.d
@@ -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
diff --git a/ld/testsuite/ld-elf/linkonce2.d b/ld/testsuite/ld-elf/linkonce2.d
index 66d553497aa..0822ef5f869 100644
--- a/ld/testsuite/ld-elf/linkonce2.d
+++ b/ld/testsuite/ld-elf/linkonce2.d
@@ -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 .*
diff --git a/ld/testsuite/ld-elf/merge.d b/ld/testsuite/ld-elf/merge.d
index dc0bcc50ccd..9a1ddfce173 100644
--- a/ld/testsuite/ld-elf/merge.d
+++ b/ld/testsuite/ld-elf/merge.d
@@ -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.*
diff --git a/ld/testsuite/ld-elf/merge2.d b/ld/testsuite/ld-elf/merge2.d
index 0a7faa7b56f..500ac770413 100644
--- a/ld/testsuite/ld-elf/merge2.d
+++ b/ld/testsuite/ld-elf/merge2.d
@@ -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.*
diff --git a/ld/testsuite/ld-elf/merge3.d b/ld/testsuite/ld-elf/merge3.d
index 53dc3428d94..de6584ca881 100644
--- a/ld/testsuite/ld-elf/merge3.d
+++ b/ld/testsuite/ld-elf/merge3.d
@@ -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.*
diff --git a/ld/testsuite/ld-elf/orphan-10.d b/ld/testsuite/ld-elf/orphan-10.d
index 2571c0e4ef8..8ad71c8a66f 100644
--- a/ld/testsuite/ld-elf/orphan-10.d
+++ b/ld/testsuite/ld-elf/orphan-10.d
@@ -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 .*
diff --git a/ld/testsuite/ld-elf/orphan-9.d b/ld/testsuite/ld-elf/orphan-9.d
index 3d9e3244632..27efb81d015 100644
--- a/ld/testsuite/ld-elf/orphan-9.d
+++ b/ld/testsuite/ld-elf/orphan-9.d
@@ -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 .*
diff --git a/ld/testsuite/ld-elf/orphan-region.d b/ld/testsuite/ld-elf/orphan-region.d
index dd98320921d..a6d4d642bc2 100644
--- a/ld/testsuite/ld-elf/orphan-region.d
+++ b/ld/testsuite/ld-elf/orphan-region.d
@@ -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
diff --git a/ld/testsuite/ld-elf/orphan.d b/ld/testsuite/ld-elf/orphan.d
index 38af1fd634a..cbd64fdd8da 100644
--- a/ld/testsuite/ld-elf/orphan.d
+++ b/ld/testsuite/ld-elf/orphan.d
@@ -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
#...
diff --git a/ld/testsuite/ld-elf/orphan3.d b/ld/testsuite/ld-elf/orphan3.d
index 7c2e5128b4a..af6ce25e0fb 100644
--- a/ld/testsuite/ld-elf/orphan3.d
+++ b/ld/testsuite/ld-elf/orphan3.d
@@ -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]+
diff --git a/ld/testsuite/ld-elf/pr12851.d b/ld/testsuite/ld-elf/pr12851.d
index 0c42515d65c..fe75caf43eb 100644
--- a/ld/testsuite/ld-elf/pr12851.d
+++ b/ld/testsuite/ld-elf/pr12851.d
@@ -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
#...
diff --git a/ld/testsuite/ld-elf/pr12975.d b/ld/testsuite/ld-elf/pr12975.d
index 927924c89b2..054df31f19a 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: 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
diff --git a/ld/testsuite/ld-elf/pr13177.d b/ld/testsuite/ld-elf/pr13177.d
index 64d701631a2..bc23650669d 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: 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
diff --git a/ld/testsuite/ld-elf/pr13195.d b/ld/testsuite/ld-elf/pr13195.d
index c0a7f31ecb1..8a0f9bd805f 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: 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
#...
diff --git a/ld/testsuite/ld-elf/pr17550c.d b/ld/testsuite/ld-elf/pr17550c.d
index c9c06d01ced..55749fc7569 100644
--- a/ld/testsuite/ld-elf/pr17550c.d
+++ b/ld/testsuite/ld-elf/pr17550c.d
@@ -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.
diff --git a/ld/testsuite/ld-elf/pr17550d.d b/ld/testsuite/ld-elf/pr17550d.d
index 3fbcb87dcb8..3dd108d5c9b 100644
--- a/ld/testsuite/ld-elf/pr17550d.d
+++ b/ld/testsuite/ld-elf/pr17550d.d
@@ -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
diff --git a/ld/testsuite/ld-elf/pr17615.d b/ld/testsuite/ld-elf/pr17615.d
index c4263664ee8..6ab0d0e39ec 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: 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
#...
diff --git a/ld/testsuite/ld-elf/pr20528a.d b/ld/testsuite/ld-elf/pr20528a.d
index 68ea140cb79..c45c6507930 100644
--- a/ld/testsuite/ld-elf/pr20528a.d
+++ b/ld/testsuite/ld-elf/pr20528a.d
@@ -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[ ]+.*
diff --git a/ld/testsuite/ld-elf/pr20528b.d b/ld/testsuite/ld-elf/pr20528b.d
index 5777c275188..c471d02acb2 100644
--- a/ld/testsuite/ld-elf/pr20528b.d
+++ b/ld/testsuite/ld-elf/pr20528b.d
@@ -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[ ]+.*
diff --git a/ld/testsuite/ld-elf/pr21562a.d b/ld/testsuite/ld-elf/pr21562a.d
index 5a803579936..c36dd3c7ca7 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: 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
#...
diff --git a/ld/testsuite/ld-elf/pr21562b.d b/ld/testsuite/ld-elf/pr21562b.d
index b875c0f320f..a751f2ee5d7 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: 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
#...
diff --git a/ld/testsuite/ld-elf/pr21562c.d b/ld/testsuite/ld-elf/pr21562c.d
index a551c34442f..4dc4b7fbf53 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: 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
#...
diff --git a/ld/testsuite/ld-elf/pr21562d.d b/ld/testsuite/ld-elf/pr21562d.d
index 674938df05a..5323b49fb90 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: 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
#...
diff --git a/ld/testsuite/ld-elf/pr21562i.d b/ld/testsuite/ld-elf/pr21562i.d
index fb752437857..ccdebede280 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: 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
#...
diff --git a/ld/testsuite/ld-elf/pr21562j.d b/ld/testsuite/ld-elf/pr21562j.d
index 42ca86ed2c9..97eee51c3f9 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: 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
#...
diff --git a/ld/testsuite/ld-elf/pr21562k.d b/ld/testsuite/ld-elf/pr21562k.d
index 2c64e2b0efa..21d78973c94 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: 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
#...
diff --git a/ld/testsuite/ld-elf/pr21562l.d b/ld/testsuite/ld-elf/pr21562l.d
index 72226111105..2233c66d1cf 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: 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
#...
diff --git a/ld/testsuite/ld-elf/pr21562m.d b/ld/testsuite/ld-elf/pr21562m.d
index 917b2ca065e..62d2949d068 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: 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
#...
diff --git a/ld/testsuite/ld-elf/pr21562n.d b/ld/testsuite/ld-elf/pr21562n.d
index 881db3deea6..5b4a3261c29 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: 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
#...
diff --git a/ld/testsuite/ld-elf/pr22677.d b/ld/testsuite/ld-elf/pr22677.d
index 38e2be1898b..49af52a4158 100644
--- a/ld/testsuite/ld-elf/pr22677.d
+++ b/ld/testsuite/ld-elf/pr22677.d
@@ -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?.*
diff --git a/ld/testsuite/ld-elf/pr22836-1a.d b/ld/testsuite/ld-elf/pr22836-1a.d
index fbfd8d9d11d..03aa8cc198c 100644
--- a/ld/testsuite/ld-elf/pr22836-1a.d
+++ b/ld/testsuite/ld-elf/pr22836-1a.d
@@ -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\.
diff --git a/ld/testsuite/ld-elf/pr22836-1b.d b/ld/testsuite/ld-elf/pr22836-1b.d
index ca7d3f08395..c2dc75e068a 100644
--- a/ld/testsuite/ld-elf/pr22836-1b.d
+++ b/ld/testsuite/ld-elf/pr22836-1b.d
@@ -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\.
diff --git a/ld/testsuite/ld-elf/pr23658-1a.d b/ld/testsuite/ld-elf/pr23658-1a.d
index 5cfc7d27918..0757cc40a28 100644
--- a/ld/testsuite/ld-elf/pr23658-1a.d
+++ b/ld/testsuite/ld-elf/pr23658-1a.d
@@ -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.
diff --git a/ld/testsuite/ld-elf/pr23658-1b.d b/ld/testsuite/ld-elf/pr23658-1b.d
index a8e7d16f492..7ffe6587462 100644
--- a/ld/testsuite/ld-elf/pr23658-1b.d
+++ b/ld/testsuite/ld-elf/pr23658-1b.d
@@ -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|) +
diff --git a/ld/testsuite/ld-elf/pr349.d b/ld/testsuite/ld-elf/pr349.d
index 3354df2200f..28646535354 100644
--- a/ld/testsuite/ld-elf/pr349.d
+++ b/ld/testsuite/ld-elf/pr349.d
@@ -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
#...
diff --git a/ld/testsuite/ld-elf/sec64k.exp b/ld/testsuite/ld-elf/sec64k.exp
index 783d9ee017d..f7be0342bb6 100644
--- a/ld/testsuite/ld-elf/sec64k.exp
+++ b/ld/testsuite/ld-elf/sec64k.exp
@@ -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
}
diff --git a/ld/testsuite/ld-elf/shared.exp b/ld/testsuite/ld-elf/shared.exp
index f27fa2401d0..820570084a2 100644
--- a/ld/testsuite/ld-elf/shared.exp
+++ b/ld/testsuite/ld-elf/shared.exp
@@ -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.
diff --git a/ld/testsuite/ld-elf/warn1.d b/ld/testsuite/ld-elf/warn1.d
index ac5d207145e..a5b88761c02 100644
--- a/ld/testsuite/ld-elf/warn1.d
+++ b/ld/testsuite/ld-elf/warn1.d
@@ -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.
diff --git a/ld/testsuite/ld-elf/warn2.d b/ld/testsuite/ld-elf/warn2.d
index b952e84e634..3319fa7d8b3 100644
--- a/ld/testsuite/ld-elf/warn2.d
+++ b/ld/testsuite/ld-elf/warn2.d
@@ -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.
diff --git a/ld/testsuite/ld-elf/warn3.d b/ld/testsuite/ld-elf/warn3.d
index 5b556549706..3015cf53530 100644
--- a/ld/testsuite/ld-elf/warn3.d
+++ b/ld/testsuite/ld-elf/warn3.d
@@ -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
diff --git a/ld/testsuite/ld-scripts/align.exp b/ld/testsuite/ld-scripts/align.exp
index 4f3e8a7753e..3fc3d12fdc1 100644
--- a/ld/testsuite/ld-scripts/align.exp
+++ b/ld/testsuite/ld-scripts/align.exp
@@ -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
}
diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp
index 5ebb7fa35fa..f4d6707de93 100644
--- a/ld/testsuite/lib/ld-lib.exp
+++ b/ld/testsuite/lib/ld-lib.exp
@@ -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 { } {