This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Improve binutils testsuite coverage for GNU/Hurd (and kFreeBSD?)


I was comparing the testsuite runs for the targets i686-pc-linux-gnu and
i686-pc-gnu (a.k.a. GNU/Hurd), both natively built -- and I expected them
to be almost the same (baring some differences in LD's tests, perhaps),
but they were not -- for GNU/Hurd a lot of tests wouldn't be considered.
Here is a patch to fix this.  I must say I was surprised how many tests
are wired for *-*-linux* only, and I wouldn't understand why (but didn't
investiage either), and I generally simply windened these to include
*-*-gnu*, too.

As the triplet *-*-gnu* not only matches GNU/Hurd systems, but also
*-*-linux-gnu* and *-*-kfreebsd-gnu* we have to be a bit careful.
(Perhaps we should really transition over to using *-*-hurd-gnu* or
something...)  I cross-checked that nothing changes for a
--target=i686-pc-linux build, but I'd like to have the kFreeBSD guys
check too (thus CCed).  I suppose this patch will simply increase test
coverage for you, too.  But perhaps you'll need further changes?  Please
just build binutils with and without this patch, run make -k check, and
compare the two runs' */*.sum */*/*.sum files.

I had to XFAIL a few tests (and added URLs to the page where I describe
them).

Most of this patch should be pretty straight-forward, but please
especially review the TCL bits (this was my first real-world encounter
with that language): ld/testsuite/ld-elf/elf.exp,
ld/testsuite/ld-elfweak/elfweak.exp.


binutils/testsuite/

	* lib/utils-lib.exp (is_elf_format): Consider for *-*-gnu*, too.
	* binutils-all/elfedit-2.d (target): Likewise.
	* binutils-all/elfedit-3.d (target): Likewise.
	* binutils-all/i386/i386.exp: Likewise.
	* binutils-all/objcopy.exp: Likewise.
	* binutils-all/strip-3.d (target): Likewise.

gas/testsuite/

	* lib/gas-defs.exp (is_elf_format): Consider for *-*-gnu*, too.
	* gas/elf/elf.exp: Likewise.
	* gas/symver/symver.exp: Likewise.

ld/testsuite/

	* ld/configure.host: Add stanza for *-*-gnu*.
	* lib/ld-lib.exp (is_elf_format): Consider for *-*-gnu*, too.
	* ld-discard/discard.exp: Likewise.
	* ld-elf/binutils.exp: Likewise.
	* ld-elf/commonpage1.d (target): Likewise.
	* ld-elf/discard1.d (target): Likewise.
	* ld-elf/discard2.d (target): Likewise.
	* ld-elf/discard3.d (target): Likewise.
	* ld-elf/dynsym1.d (target): Likewise.
	* ld-elf/eh6.d (target): Likewise.
	* ld-elf/elf.exp: Likewise.
	(array_tests): Move -static tests to...
	(array_tests_static): ... here, and handle it accordingly.
	* ld-elf/hash.d (target): Likewise.
	* ld-elf/header.d (target): Likewise.
	* ld-elf/loadaddr1.d (target): Likewise.
	* ld-elf/loadaddr2.d (target): Likewise.
	* ld-elf/loadaddr3a.d (target): Likewise.
	* ld-elf/loadaddr3b.d (target): Likewise.
	* ld-elf/local1.d (target): Likewise.
	* ld-elf/maxpage1.d (target): Likewise.
	* ld-elf/maxpage2.d (target): Likewise.
	* ld-elf/maxpage3a.d (target): Likewise.
	* ld-elf/multibss1.d (target): Likewise.
	* ld-elf/noload-2.d (target): Likewise.
	* ld-elf/seg.d (target): Likewise.
	* ld-elf/textaddr1.d (target): Likewise.
	* ld-elf/textaddr2.d (target): Likewise.
	* ld-elf/textaddr3.d (target): Likewise.
	* ld-elf/textaddr4.d (target): Likewise.
	* ld-elf/textaddr5.d (target): Likewise.
	* ld-elf/textaddr6.d (target): Likewise.
	* ld-elf/textaddr7.d (target): Likewise.
	* ld-elf/tls_common.exp: Likewise.
	* ld-elf/unknown2.d (target): Likewise.
	* ld-elfvers/vers.exp: Likewise.
	* ld-elfvsb/elfvsb.exp: Likewise.
	* ld-elfweak/elfweak.exp: Likewise.
	(setup_xfail_gnu_hurd): New function.  Use it where appropriate.
	* ld-gc/abi-note.d (target): Likewise.
	* ld-gc/gc.exp: Likewise.
	* ld-gc/pr11218.d (target): Likewise.
	* ld-gc/start.d (target): Likewise.
	* ld-i386/i386.exp: Likewise.
	* ld-ifunc/binutils.exp: Likewise.
	* ld-ifunc/ifunc.exp: Likewise.
	* ld-linkonce/linkonce.exp: Likewise.
	* ld-linkonce/zeroehl32.d (target): Likewise.
	* ld-pie/pie.exp: Likewise.
	* ld-scripts/phdrs2.exp: Likewise.
	* ld-scripts/rgn-at5.d (target): Likewise.
	* ld-shared/shared.exp: Likewise.
	* ld-undefined/entry-3.d (target): Likewise.
	* ld-undefined/entry-4.d (target): Likewise.
	* ld-undefined/weak-undef.exp: Likewise.


Regards,
 Thomas

---
 binutils/testsuite/binutils-all/elfedit-2.d   |    2 +-
 binutils/testsuite/binutils-all/elfedit-3.d   |    2 +-
 binutils/testsuite/binutils-all/i386/i386.exp |    6 +++++-
 binutils/testsuite/binutils-all/objcopy.exp   |    3 ++-
 binutils/testsuite/binutils-all/strip-3.d     |    2 +-
 binutils/testsuite/lib/utils-lib.exp          |    1 +
 gas/testsuite/gas/elf/elf.exp                 |    1 +
 gas/testsuite/gas/symver/symver.exp           |    3 ++-
 gas/testsuite/lib/gas-defs.exp                |    1 +
 ld/configure.host                             |   11 ++++++++++-
 ld/testsuite/ld-discard/discard.exp           |    2 +-
 ld/testsuite/ld-elf/binutils.exp              |    5 +++--
 ld/testsuite/ld-elf/commonpage1.d             |    2 +-
 ld/testsuite/ld-elf/discard1.d                |    2 +-
 ld/testsuite/ld-elf/discard2.d                |    2 +-
 ld/testsuite/ld-elf/discard3.d                |    2 +-
 ld/testsuite/ld-elf/dynsym1.d                 |    2 +-
 ld/testsuite/ld-elf/eh6.d                     |    2 +-
 ld/testsuite/ld-elf/elf.exp                   |   19 +++++++++++++++----
 ld/testsuite/ld-elf/hash.d                    |    2 +-
 ld/testsuite/ld-elf/header.d                  |    2 +-
 ld/testsuite/ld-elf/loadaddr1.d               |    2 +-
 ld/testsuite/ld-elf/loadaddr2.d               |    2 +-
 ld/testsuite/ld-elf/loadaddr3a.d              |    2 +-
 ld/testsuite/ld-elf/loadaddr3b.d              |    2 +-
 ld/testsuite/ld-elf/local1.d                  |    2 +-
 ld/testsuite/ld-elf/maxpage1.d                |    2 +-
 ld/testsuite/ld-elf/maxpage2.d                |    2 +-
 ld/testsuite/ld-elf/maxpage3a.d               |    2 +-
 ld/testsuite/ld-elf/multibss1.d               |    2 +-
 ld/testsuite/ld-elf/noload-2.d                |    2 +-
 ld/testsuite/ld-elf/seg.d                     |    2 +-
 ld/testsuite/ld-elf/textaddr1.d               |    2 +-
 ld/testsuite/ld-elf/textaddr2.d               |    2 +-
 ld/testsuite/ld-elf/textaddr3.d               |    2 +-
 ld/testsuite/ld-elf/textaddr4.d               |    2 +-
 ld/testsuite/ld-elf/textaddr5.d               |    2 +-
 ld/testsuite/ld-elf/textaddr6.d               |    2 +-
 ld/testsuite/ld-elf/textaddr7.d               |    2 +-
 ld/testsuite/ld-elf/tls_common.exp            |    4 ++--
 ld/testsuite/ld-elf/unknown2.d                |    2 +-
 ld/testsuite/ld-elfvers/vers.exp              |    1 +
 ld/testsuite/ld-elfvsb/elfvsb.exp             |    4 +++-
 ld/testsuite/ld-elfweak/elfweak.exp           |   18 ++++++++++++++++++
 ld/testsuite/ld-gc/abi-note.d                 |    2 +-
 ld/testsuite/ld-gc/gc.exp                     |    3 ++-
 ld/testsuite/ld-gc/pr11218.d                  |    2 +-
 ld/testsuite/ld-gc/start.d                    |    2 +-
 ld/testsuite/ld-i386/i386.exp                 |    2 ++
 ld/testsuite/ld-ifunc/binutils.exp            |    2 +-
 ld/testsuite/ld-ifunc/ifunc.exp               |    3 ++-
 ld/testsuite/ld-linkonce/linkonce.exp         |    2 +-
 ld/testsuite/ld-linkonce/zeroehl32.d          |    2 +-
 ld/testsuite/ld-pie/pie.exp                   |    4 ++--
 ld/testsuite/ld-scripts/phdrs2.exp            |    1 +
 ld/testsuite/ld-scripts/rgn-at5.d             |    2 +-
 ld/testsuite/ld-shared/shared.exp             |    1 +
 ld/testsuite/ld-undefined/entry-3.d           |    2 +-
 ld/testsuite/ld-undefined/entry-4.d           |    2 +-
 ld/testsuite/ld-undefined/weak-undef.exp      |    1 +
 ld/testsuite/lib/ld-lib.exp                   |    1 +
 61 files changed, 116 insertions(+), 57 deletions(-)

diff --git a/binutils/testsuite/binutils-all/elfedit-2.d b/binutils/testsuite/binutils-all/elfedit-2.d
index af07c1d..56468b5 100644
--- a/binutils/testsuite/binutils-all/elfedit-2.d
+++ b/binutils/testsuite/binutils-all/elfedit-2.d
@@ -3,7 +3,7 @@
 #source: empty.s
 #readelf: -h
 #name: Update ELF header 2
-#target: *-*-linux*
+#target: *-*-linux* *-*-gnu*
 
 #...
 ELF Header:
diff --git a/binutils/testsuite/binutils-all/elfedit-3.d b/binutils/testsuite/binutils-all/elfedit-3.d
index c877f46..219cac5 100644
--- a/binutils/testsuite/binutils-all/elfedit-3.d
+++ b/binutils/testsuite/binutils-all/elfedit-3.d
@@ -3,7 +3,7 @@
 #source: empty.s
 #readelf: -h
 #name: Update ELF header 3
-#target: *-*-linux*
+#target: *-*-linux* *-*-gnu*
 
 #...
 ELF Header:
diff --git a/binutils/testsuite/binutils-all/i386/i386.exp b/binutils/testsuite/binutils-all/i386/i386.exp
index 2ca4bd5..5b33e67 100644
--- a/binutils/testsuite/binutils-all/i386/i386.exp
+++ b/binutils/testsuite/binutils-all/i386/i386.exp
@@ -15,7 +15,11 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
 
-if {!([istarget "i*86-*-linux*"] || [istarget "x86_64-*-linux*"]) || ![is_elf_format] || [is_remote host]} then {
+if {!([istarget "i*86-*-linux*"]
+      || [istarget "i*86-*-gnu*"]
+      || [istarget "x86_64-*-linux*"])
+    || ![is_elf_format]
+    || [is_remote host]} then {
     return
 }
 
diff --git a/binutils/testsuite/binutils-all/objcopy.exp b/binutils/testsuite/binutils-all/objcopy.exp
index c93372c..0e2345e 100644
--- a/binutils/testsuite/binutils-all/objcopy.exp
+++ b/binutils/testsuite/binutils-all/objcopy.exp
@@ -538,7 +538,8 @@ proc copy_setup { } {
 	set add_libs ""
     }
 
-    if { [istarget *-*-linux*] } {
+    if { [istarget *-*-linux*]
+	 || [istarget *-*-gnu*] } {
 	foreach i $gcc_gas_flag {
 	    set flags "additional_flags=$i $flags"
 	}
diff --git a/binutils/testsuite/binutils-all/strip-3.d b/binutils/testsuite/binutils-all/strip-3.d
index d656697..acfec85 100644
--- a/binutils/testsuite/binutils-all/strip-3.d
+++ b/binutils/testsuite/binutils-all/strip-3.d
@@ -3,7 +3,7 @@
 #strip: -R .text -R .data -R .bss -R .ARM.attributes -R .reginfo -R .pdr -R .xtensa.info
 #readelf: -S --wide
 #name: strip empty file
-#target: *-*-linux*
+#target: *-*-linux* *-*-gnu*
 
 #...
   \[[ 0]+\][ \t]+NULL[ \t]+.*
diff --git a/binutils/testsuite/lib/utils-lib.exp b/binutils/testsuite/lib/utils-lib.exp
index db170d3..04135f5 100644
--- a/binutils/testsuite/lib/utils-lib.exp
+++ b/binutils/testsuite/lib/utils-lib.exp
@@ -129,6 +129,7 @@ proc is_elf_format {} {
 	 && ![istarget hppa*64*-*-hpux*]
 	 && ![istarget ia64-*-hpux*]
 	 && ![istarget *-*-linux*]
+	 && ![istarget *-*-gnu*]
 	 && ![istarget frv-*-uclinux*]
 	 && ![istarget bfin-*-uclinux]
 	 && ![istarget sh*-*-uclinux*]
diff --git a/gas/testsuite/gas/elf/elf.exp b/gas/testsuite/gas/elf/elf.exp
index 5ce538a..1aebf8a 100644
--- a/gas/testsuite/gas/elf/elf.exp
+++ b/gas/testsuite/gas/elf/elf.exp
@@ -39,6 +39,7 @@ proc run_elf_list_test { name suffix opts readelf_opts readelf_pipe } {
 # We're testing bits in obj-elf -- don't run on anything else.
 if { ([istarget "*-*-*elf*"]
       || [istarget "*-*-linux*"]
+      || [istarget "*-*-gnu*"]
       || [istarget "m6811-*"]
       || [istarget "m6812-*"]
       || [istarget "sparc*-*-solaris*"]
diff --git a/gas/testsuite/gas/symver/symver.exp b/gas/testsuite/gas/symver/symver.exp
index 737bc85..b4caae9 100644
--- a/gas/testsuite/gas/symver/symver.exp
+++ b/gas/testsuite/gas/symver/symver.exp
@@ -18,7 +18,8 @@ proc run_error_test { name opts } {
 if { ([istarget "*-*-elf*"]		
       || [istarget "m6811-*"]
       || [istarget "m6812-*"]
-      || [istarget "*-*-linux*"])
+      || [istarget "*-*-linux*"]
+      || [istarget "*-*-gnu*"])
      && ![istarget *-*-linux*aout*]
      && ![istarget *-*-linux*oldld*] } then {
 
diff --git a/gas/testsuite/lib/gas-defs.exp b/gas/testsuite/lib/gas-defs.exp
index 8e14101..88e2540 100644
--- a/gas/testsuite/lib/gas-defs.exp
+++ b/gas/testsuite/lib/gas-defs.exp
@@ -288,6 +288,7 @@ proc is_elf_format {} {
 	 && ![istarget hppa*64*-*-hpux*]
 	 && ![istarget ia64-*-hpux*]
 	 && ![istarget *-*-linux*]
+	 && ![istarget *-*-gnu*]
 	 && ![istarget frv-*-uclinux*]
 	 && ![istarget bfin-*-uclinux]
 	 && ![istarget sh*-*-uclinux*]
diff --git a/ld/configure.host b/ld/configure.host
index 3e88c27..459b9d2 100644
--- a/ld/configure.host
+++ b/ld/configure.host
@@ -37,6 +37,15 @@ case "${host}" in
   HOSTING_LIBS='-L`dirname \`${CC} --print-file-name=libc.so\`` '"$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} --print-file-name=crtend.o; fi` `${CC} --print-file-name=crtn.o`'
   ;;
 
+*-*-gnu*)
+  # When creating static executables, we ought to use crt0.o instead of crt1.o,
+  # <http://www.gnu.org/software/hurd/open_issues/binutils_testsuite.html#static>,
+  # but the testing infrastructure is not prepared for that.  This is not
+  # relevant for most tests, and the few remaining ones have been XFAILed.
+  HOSTING_CRT0='-dynamic-linker `${CC} --help --verbose 2>&1 | egrep "ld[^ ]*\.so" | sed -e "s,.*-dynamic-linker[ 	][ 	]*\(.*/ld[^ ]*\.so[^ 	]*\).*,\1,"` `${CC} --print-file-name=crt1.o` `${CC} --print-file-name=crti.o` `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} --print-file-name=crtbegin.o; fi`'
+  HOSTING_LIBS='-L`dirname \`${CC} --print-file-name=libc.so\`` '"$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} --print-file-name=crtend.o; fi` `${CC} --print-file-name=crtn.o`'
+  ;;
+
 *-*-netbsd*)
   # Different versions of NetBSD with the ELF object format use different
   # sets of start/end files.
@@ -194,7 +203,7 @@ sparc64-*-solaris2* | sparcv9-*-solaris2*)
 *-*-freebsd* | *-*-kfreebsd*-gnu | *-*-dragonfly*)
   ;;
 
-*-*-linux*)
+*-*-linux* | *-*-gnu*)
   ;;
 
 *-*-netbsd*)
diff --git a/ld/testsuite/ld-discard/discard.exp b/ld/testsuite/ld-discard/discard.exp
index deb5dfd..0334270 100644
--- a/ld/testsuite/ld-discard/discard.exp
+++ b/ld/testsuite/ld-discard/discard.exp
@@ -26,7 +26,7 @@
 # in every .d-file.
 
 if { ![istarget *-*-linux*] \
-     && ![istarget *-*-gnu] \
+     && ![istarget *-*-gnu*] \
      && ![istarget hppa*64*-*-hpux*] \
      && ![istarget *-*-elf] } {
     return
diff --git a/ld/testsuite/ld-elf/binutils.exp b/ld/testsuite/ld-elf/binutils.exp
index 422c5d7..48e489f 100644
--- a/ld/testsuite/ld-elf/binutils.exp
+++ b/ld/testsuite/ld-elf/binutils.exp
@@ -23,8 +23,8 @@
 
 # Make sure that binutils can correctly handle ld output in ELF.
 
-# Run on Linux only.
-if { ![istarget *-*-linux*] } {
+if { ![istarget *-*-linux*]
+     && ![istarget *-*-gnu*]} {
     return
 }
 
@@ -112,6 +112,7 @@ if { ([istarget "i?86-*-elf*"]
       || ([istarget "i?86-*-linux*"]
 	  && ![istarget "*-*-*aout*"]
 	  && ![istarget "*-*-*oldld*"])
+      || [istarget "i?86-*-gnu*"]
       || [istarget "x86_64-*-linux*"]
       || [istarget "amd64-*-linux*"]) } {
     binutils_test strip "-z relro -shared" relro2
diff --git a/ld/testsuite/ld-elf/commonpage1.d b/ld/testsuite/ld-elf/commonpage1.d
index 76dc056..2b17574 100644
--- a/ld/testsuite/ld-elf/commonpage1.d
+++ b/ld/testsuite/ld-elf/commonpage1.d
@@ -1,7 +1,7 @@
 #source: maxpage1.s
 #ld: -z max-page-size=0x200000 -z common-page-size=0x100000
 #readelf: -l --wide
-#target: *-*-linux*
+#target: *-*-linux* *-*-gnu*
 
 #...
   LOAD+.*0x200000
diff --git a/ld/testsuite/ld-elf/discard1.d b/ld/testsuite/ld-elf/discard1.d
index b80fbf0..99de88e 100644
--- a/ld/testsuite/ld-elf/discard1.d
+++ b/ld/testsuite/ld-elf/discard1.d
@@ -1,7 +1,7 @@
 #source: discard1.s
 #ld: -r -T discard.ld
 #readelf: -r
-#target: x86_64-*-linux-gnu i?86-*-linux-gnu
+#target: x86_64-*-linux-gnu i?86-*-linux-gnu i?86-*-gnu*
 
 Relocation section '.rel.*.debug_info' at offset 0x[0-9a-z]+ contains 1 entries:
 [ \t]+Offset[ \t]+Info[ \t]+Type[ \t]+Sym.*
diff --git a/ld/testsuite/ld-elf/discard2.d b/ld/testsuite/ld-elf/discard2.d
index 65a3abe..df10619 100644
--- a/ld/testsuite/ld-elf/discard2.d
+++ b/ld/testsuite/ld-elf/discard2.d
@@ -1,7 +1,7 @@
 #source: discard2.s
 #ld: -r -T discard.ld
 #readelf: -r
-#target: x86_64-*-linux-gnu i?86-*-linux-gnu
+#target: x86_64-*-linux-gnu i?86-*-linux-gnu i?86-*-gnu*
 
 Relocation section '.rel.*.debug_info' at offset 0x[0-9a-z]+ contains 1 entries:
 [ \t]+Offset[ \t]+Info[ \t]+Type[ \t]+Sym.*
diff --git a/ld/testsuite/ld-elf/discard3.d b/ld/testsuite/ld-elf/discard3.d
index 07962b5..6934882 100644
--- a/ld/testsuite/ld-elf/discard3.d
+++ b/ld/testsuite/ld-elf/discard3.d
@@ -2,7 +2,7 @@
 #source: discard2.s
 #ld: -r -T discard.ld
 #readelf: -r
-#target: x86_64-*-linux-gnu i?86-*-linux-gnu
+#target: x86_64-*-linux-gnu i?86-*-linux-gnu i?86-*-gnu*
 
 Relocation section '.rel.*.debug_info' at offset 0x[0-9a-z]+ contains 2 entries:
 [ \t]+Offset[ \t]+Info[ \t]+Type[ \t]+Sym.*
diff --git a/ld/testsuite/ld-elf/dynsym1.d b/ld/testsuite/ld-elf/dynsym1.d
index 88037ef..b354aae 100644
--- a/ld/testsuite/ld-elf/dynsym1.d
+++ b/ld/testsuite/ld-elf/dynsym1.d
@@ -1,7 +1,7 @@
 #source: empty.s
 #ld: -shared
 #readelf: --dyn-syms
-#target: *-*-linux*
+#target: *-*-linux* *-*-gnu*
 
 #...
  +[0-9]+: +[0-9a-f]+ +[0-9]+ +FUNC +GLOBAL +DEFAULT +[1-9] _start
diff --git a/ld/testsuite/ld-elf/eh6.d b/ld/testsuite/ld-elf/eh6.d
index 75eb54b..76be605 100644
--- a/ld/testsuite/ld-elf/eh6.d
+++ b/ld/testsuite/ld-elf/eh6.d
@@ -1,7 +1,7 @@
 #source: eh6.s
 #ld: --gc-sections -shared
 #readelf: -wf
-#target: x86_64-*-linux-gnu i?86-*-linux-gnu
+#target: x86_64-*-linux-gnu i?86-*-linux-gnu i?86-*-gnu*
 
 Contents of the .eh_frame section:
 
diff --git a/ld/testsuite/ld-elf/elf.exp b/ld/testsuite/ld-elf/elf.exp
index 1e1f738..da271ba 100644
--- a/ld/testsuite/ld-elf/elf.exp
+++ b/ld/testsuite/ld-elf/elf.exp
@@ -41,7 +41,8 @@ foreach t $test_list {
     run_dump_test [file rootname $t]
 }
 
-if { [istarget *-*-linux*] } {
+if { [istarget *-*-linux*]
+     || [istarget *-*-gnu*] } {
     run_ld_link_tests {
 	{"Weak symbols in dynamic objects 1 (support)"
 	    "-shared" "" {weak-dyn-1a.s}
@@ -71,14 +72,24 @@ if ![isnative] {
 
 set array_tests {
     {"preinit array" "" "" {preinit.c} "preinit" "preinit.out"}
-    {"static preinit array" "-static" "" {preinit.c} "preinit" "preinit.out"}
     {"init array" "" "" {init.c} "init" "init.out"}
-    {"static init array" "-static" "" {init.c} "init" "init.out"}
     {"fini array" "" "" {fini.c} "fini" "fini.out"}
+}
+set array_tests_static {
+    {"static preinit array" "-static" "" {preinit.c} "preinit" "preinit.out"}
+    {"static init array" "-static" "" {init.c} "init" "init.out"}
     {"static fini array" "-static" "" {fini.c} "fini" "fini.out"}
 }
 
 # NetBSD ELF systems do not currently support the .*_array sections.
-run_ld_link_exec_tests [list "*-*-netbsdelf*"] $array_tests
+set xfails [list "*-*-netbsdelf*"]
+run_ld_link_exec_tests $xfails $array_tests
+switch -regexp $target_triplet {
+    ^\[^-\]*-\[^-\]*-gnu.*$ {
+	# <http://www.gnu.org/software/hurd/open_issues/binutils_testsuite.html#static>
+	lappend xfails "*-*-*"
+    }
+}
+run_ld_link_exec_tests $xfails $array_tests_static
 
 catch "exec rm -f tmpdir/preinit tmpdir/init tmpdir/fini" status
diff --git a/ld/testsuite/ld-elf/hash.d b/ld/testsuite/ld-elf/hash.d
index 9bcd9a9..473cd4d 100644
--- a/ld/testsuite/ld-elf/hash.d
+++ b/ld/testsuite/ld-elf/hash.d
@@ -1,7 +1,7 @@
 #source: start.s
 #readelf: -d -s -D
 #ld: -shared --hash-style=gnu
-#target: *-*-linux*
+#target: *-*-linux* *-*-gnu*
 #notarget: mips*-*-*
 
 #...
diff --git a/ld/testsuite/ld-elf/header.d b/ld/testsuite/ld-elf/header.d
index d438832..be3722d 100644
--- a/ld/testsuite/ld-elf/header.d
+++ b/ld/testsuite/ld-elf/header.d
@@ -1,4 +1,4 @@
-# target: *-*-linux*  *-*-vxworks
+# target: *-*-linux* *-*-gnu* *-*-vxworks
 # ld: -T header.t -z max-page-size=0x100
 # objdump: -hpw
 
diff --git a/ld/testsuite/ld-elf/loadaddr1.d b/ld/testsuite/ld-elf/loadaddr1.d
index 2d3469b..0fd96a7 100644
--- a/ld/testsuite/ld-elf/loadaddr1.d
+++ b/ld/testsuite/ld-elf/loadaddr1.d
@@ -1,7 +1,7 @@
 #source: loadaddr.s
 #ld: -T loadaddr1.t -T loadaddr.t -z max-page-size=0x200000
 #readelf: -l --wide
-#target: *-*-linux*
+#target: *-*-linux* *-*-gnu*
 
 #...
   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 e447e38..5825fe8 100644
--- a/ld/testsuite/ld-elf/loadaddr2.d
+++ b/ld/testsuite/ld-elf/loadaddr2.d
@@ -1,7 +1,7 @@
 #source: loadaddr.s
 #ld: -T loadaddr2.t -T loadaddr.t -z max-page-size=0x200000
 #readelf: -l --wide
-#target: *-*-linux*
+#target: *-*-linux* *-*-gnu*
 
 #...
   LOAD +0x000000 0xf*80000000 0xf*80000000 0x100050 0x100050 RWE 0x200000
diff --git a/ld/testsuite/ld-elf/loadaddr3a.d b/ld/testsuite/ld-elf/loadaddr3a.d
index b2ace66..10cb9a5 100644
--- a/ld/testsuite/ld-elf/loadaddr3a.d
+++ b/ld/testsuite/ld-elf/loadaddr3a.d
@@ -1,7 +1,7 @@
 #source: loadaddr.s
 #ld: -T loadaddr3.t -z max-page-size=0x200000
 #readelf: -l --wide
-#target: *-*-linux*
+#target: *-*-linux* *-*-gnu*
 
 #...
   LOAD +0x000000 0x0*00000000 0x0*00000000 0x0*0110 0x0*0110 R E 0x.*
diff --git a/ld/testsuite/ld-elf/loadaddr3b.d b/ld/testsuite/ld-elf/loadaddr3b.d
index af7e6e4..63efa71 100644
--- a/ld/testsuite/ld-elf/loadaddr3b.d
+++ b/ld/testsuite/ld-elf/loadaddr3b.d
@@ -1,7 +1,7 @@
 #source: loadaddr.s
 #ld: -T loadaddr3.t -z max-page-size=0x200000
 #objdump: -t
-#target: *-*-linux*
+#target: *-*-linux* *-*-gnu*
 
 #...
 0+0000100 l    d  .text	0+0000000 .text
diff --git a/ld/testsuite/ld-elf/local1.d b/ld/testsuite/ld-elf/local1.d
index 5957d8f..3025d41 100644
--- a/ld/testsuite/ld-elf/local1.d
+++ b/ld/testsuite/ld-elf/local1.d
@@ -1,6 +1,6 @@
 #ld: -shared --version-script local1.map
 #readelf: -s --wide
-#target: *-*-linux*
+#target: *-*-linux* *-*-gnu*
 
 #...
     .*: [0-9a-f]* +[0-9a-f]+ +OBJECT +LOCAL +DEFAULT +[0-9] +foo
diff --git a/ld/testsuite/ld-elf/maxpage1.d b/ld/testsuite/ld-elf/maxpage1.d
index 57acda0..f776257 100644
--- a/ld/testsuite/ld-elf/maxpage1.d
+++ b/ld/testsuite/ld-elf/maxpage1.d
@@ -1,7 +1,7 @@
 #source: maxpage1.s
 #ld: -z max-page-size=0x200000
 #readelf: -l --wide
-#target: *-*-linux*
+#target: *-*-linux* *-*-gnu*
 
 #...
   LOAD+.*0x200000
diff --git a/ld/testsuite/ld-elf/maxpage2.d b/ld/testsuite/ld-elf/maxpage2.d
index 7fe9379..7d732eb 100644
--- a/ld/testsuite/ld-elf/maxpage2.d
+++ b/ld/testsuite/ld-elf/maxpage2.d
@@ -1,7 +1,7 @@
 #source: maxpage1.s
 #ld: -z max-page-size=0x100000
 #readelf: -l --wide
-#target: *-*-linux*
+#target: *-*-linux* *-*-gnu*
 
 #...
   LOAD+.*0x100000
diff --git a/ld/testsuite/ld-elf/maxpage3a.d b/ld/testsuite/ld-elf/maxpage3a.d
index 0e46b6b..7d6f2d8 100644
--- a/ld/testsuite/ld-elf/maxpage3a.d
+++ b/ld/testsuite/ld-elf/maxpage3a.d
@@ -1,7 +1,7 @@
 #source: maxpage1.s
 #ld: -z max-page-size=0x10000000 -T maxpage3.t
 #readelf: -lS --wide
-#target: *-*-linux*
+#target: *-*-linux* *-*-gnu*
 
 #...
   \[[ 0-9]+\] \.data[ \t]+PROGBITS[ \t]+0*10000000[ \t]+[ \t0-9a-f]+WA?.*
diff --git a/ld/testsuite/ld-elf/multibss1.d b/ld/testsuite/ld-elf/multibss1.d
index a6fd9b3..89b94ad 100644
--- a/ld/testsuite/ld-elf/multibss1.d
+++ b/ld/testsuite/ld-elf/multibss1.d
@@ -1,7 +1,7 @@
 #source: multibss1.s
 #ld: -e 0
 #readelf: -l --wide
-#target: *-*-linux*
+#target: *-*-linux* *-*-gnu*
 #xfail: hppa64-*-*
 # hppa64 default script add 16 bytes at start of .data giving 0x500010 p_memsz
 
diff --git a/ld/testsuite/ld-elf/noload-2.d b/ld/testsuite/ld-elf/noload-2.d
index 633bf45..0e25d9b 100644
--- a/ld/testsuite/ld-elf/noload-2.d
+++ b/ld/testsuite/ld-elf/noload-2.d
@@ -1,7 +1,7 @@
 #source: noload-1.s
 #ld: -T noload-1.t -z max-page-size=0x200000
 #readelf: -Sl --wide
-#target: *-*-linux*
+#target: *-*-linux* *-*-gnu*
 
 #...
  +LOAD +0x200000 +0x0+ +0x0+ +0x0+ +0x0+1 +RW +0x200000
diff --git a/ld/testsuite/ld-elf/seg.d b/ld/testsuite/ld-elf/seg.d
index d9436ae..2255195 100644
--- a/ld/testsuite/ld-elf/seg.d
+++ b/ld/testsuite/ld-elf/seg.d
@@ -1,4 +1,4 @@
-#target: *-*-linux* *-*-vxworks
+#target: *-*-linux* *-*-gnu* *-*-vxworks
 #source: seg.s
 #ld: -T seg.t -z max-page-size=0x1000
 #readelf: -l --wide
diff --git a/ld/testsuite/ld-elf/textaddr1.d b/ld/testsuite/ld-elf/textaddr1.d
index f7a3ad9..e1d6731 100644
--- a/ld/testsuite/ld-elf/textaddr1.d
+++ b/ld/testsuite/ld-elf/textaddr1.d
@@ -1,7 +1,7 @@
 #source: maxpage1.s
 #ld: -Ttext-segment 0x7000000 -z max-page-size=0x200000
 #readelf: -l --wide
-#target: *-*-linux-gnu
+#target: *-*-linux-gnu *-*-gnu*
 
 #...
   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 9d1b0e5..60632d0 100644
--- a/ld/testsuite/ld-elf/textaddr2.d
+++ b/ld/testsuite/ld-elf/textaddr2.d
@@ -1,7 +1,7 @@
 #source: maxpage1.s
 #ld: -shared -Ttext-segment 0x7000000 -z max-page-size=0x200000
 #readelf: -l --wide
-#target: *-*-linux-gnu
+#target: *-*-linux-gnu *-*-gnu*
 
 #...
   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/textaddr3.d b/ld/testsuite/ld-elf/textaddr3.d
index d533e24..29ed498 100644
--- a/ld/testsuite/ld-elf/textaddr3.d
+++ b/ld/testsuite/ld-elf/textaddr3.d
@@ -1,4 +1,4 @@
 #source: maxpage1.s
 #ld: -Ttext-segment 0x10000 -z max-page-size=0x200000
-#target: *-*-linux-gnu
+#target: *-*-linux-gnu *-*-gnu*
 #warning: .*address of `text-segment' isn't multiple of maximum page size
diff --git a/ld/testsuite/ld-elf/textaddr4.d b/ld/testsuite/ld-elf/textaddr4.d
index bfd7630..16df9a8 100644
--- a/ld/testsuite/ld-elf/textaddr4.d
+++ b/ld/testsuite/ld-elf/textaddr4.d
@@ -1,7 +1,7 @@
 #source: maxpage1.s
 #ld: -z max-page-size=0x10000 -Ttext-segment 0x10000
 #readelf: -l --wide
-#target: *-*-linux-gnu
+#target: *-*-linux-gnu *-*-gnu*
 
 #...
   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 5fe41d0..41d00c5 100644
--- a/ld/testsuite/ld-elf/textaddr5.d
+++ b/ld/testsuite/ld-elf/textaddr5.d
@@ -1,4 +1,4 @@
 #source: maxpage1.s
 #ld: -shared -z max-page-size=0x200000 -Ttext-segment 0x10000
-#target: *-*-linux-gnu
+#target: *-*-linux-gnu *-*-gnu*
 #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 b3b9f84..6e5f658 100644
--- a/ld/testsuite/ld-elf/textaddr6.d
+++ b/ld/testsuite/ld-elf/textaddr6.d
@@ -1,7 +1,7 @@
 #source: maxpage1.s
 #ld: -shared -z max-page-size=0x10000 -Ttext-segment 0x10000
 #readelf: -l --wide
-#target: *-*-linux-gnu
+#target: *-*-linux-gnu *-*-gnu*
 
 #...
   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/textaddr7.d b/ld/testsuite/ld-elf/textaddr7.d
index 54a571f..b4237db 100644
--- a/ld/testsuite/ld-elf/textaddr7.d
+++ b/ld/testsuite/ld-elf/textaddr7.d
@@ -1,7 +1,7 @@
 #source: maxpage1.s
 #ld: -n -z max-page-size=0x200000 -Ttext-segment 0x10000
 #readelf: -l --wide
-#target: *-*-linux-gnu
+#target: *-*-linux-gnu *-*-gnu*
 
 #...
   LOAD .*
diff --git a/ld/testsuite/ld-elf/tls_common.exp b/ld/testsuite/ld-elf/tls_common.exp
index 66a550c..55f60c7 100644
--- a/ld/testsuite/ld-elf/tls_common.exp
+++ b/ld/testsuite/ld-elf/tls_common.exp
@@ -23,8 +23,8 @@
 
 # Make sure that binutils can correctly handle ld output in ELF.
 
-# Run on Linux only.
-if { ![istarget *-*-linux*] } {
+if { ![istarget *-*-linux*]
+     && ![istarget *-*-gnu*] } {
     return
 }
 
diff --git a/ld/testsuite/ld-elf/unknown2.d b/ld/testsuite/ld-elf/unknown2.d
index 467d5d3..8d6cdee 100644
--- a/ld/testsuite/ld-elf/unknown2.d
+++ b/ld/testsuite/ld-elf/unknown2.d
@@ -1,7 +1,7 @@
 #source: unknown2.s
 #ld: -shared
 #readelf: -S
-#target: *-*-linux*
+#target: *-*-linux* *-*-gnu*
 
 #...
   \[[ 0-9]+\] \.note.foo[ \t]+NOTE[ \t]+.*
diff --git a/ld/testsuite/ld-elfvers/vers.exp b/ld/testsuite/ld-elfvers/vers.exp
index e336f6a..8cbd6df 100644
--- a/ld/testsuite/ld-elfvers/vers.exp
+++ b/ld/testsuite/ld-elfvers/vers.exp
@@ -35,6 +35,7 @@ if { ![istarget hppa*64*-*-hpux*] \
      && ![istarget i?86-*-unixware] \
      && ![istarget i?86-*-elf*] \
      && ![istarget i?86-*-linux*] \
+     && ![istarget i?86-*-gnu*] \
      && ![istarget ia64-*-elf*] \
      && ![istarget ia64-*-linux*] \
      && ![istarget m68k-*-linux*] \
diff --git a/ld/testsuite/ld-elfvsb/elfvsb.exp b/ld/testsuite/ld-elfvsb/elfvsb.exp
index 1a18822..df4c96e 100644
--- a/ld/testsuite/ld-elfvsb/elfvsb.exp
+++ b/ld/testsuite/ld-elfvsb/elfvsb.exp
@@ -30,6 +30,7 @@
 if { ![istarget hppa*64*-*-hpux*] \
      && ![istarget hppa*-*-linux*] \
      && ![istarget i?86-*-linux*] \
+     && ![istarget i?86-*-gnu*] \
      && ![istarget ia64-*-linux*] \
      && ![istarget m68k-*-linux*] \
      && ![istarget mips*-*-linux*] \
@@ -115,7 +116,8 @@ if [istarget arm*-*-linux*] {
 
 set support_protected "no"
 
-if [istarget *-*-linux*] {
+if { [istarget *-*-linux*]
+     || [istarget *-*-gnu*] } {
     if [ld_compile "$CC -g $CFLAGS -DPROTECTED_CHECK" $srcdir/$subdir/main.c $tmpdir/main.o] {
       if [ld_simple_link $CC $tmpdir/main "$tmpdir/main.o"] {
 	catch "exec $tmpdir/main" support_protected
diff --git a/ld/testsuite/ld-elfweak/elfweak.exp b/ld/testsuite/ld-elfweak/elfweak.exp
index cac613b..383db7d 100644
--- a/ld/testsuite/ld-elfweak/elfweak.exp
+++ b/ld/testsuite/ld-elfweak/elfweak.exp
@@ -36,6 +36,7 @@ if {    ![istarget alpha*-*-linux*] \
      && ![istarget i?86-*-unixware] \
      && ![istarget i?86-*-elf*] \
      && ![istarget i?86-*-linux*] \
+     && ![istarget i?86-*-gnu*] \
      && ![istarget ia64-*-elf*] \
      && ![istarget ia64-*-linux*] \
      && ![istarget m68k-*-linux*] \
@@ -67,6 +68,17 @@ set DOBJDUMP_FLAGS --dynamic-syms
 set SOBJDUMP_FLAGS --syms
 set shared --shared
 
+
+# <http://www.gnu.org/software/hurd/open_issues/binutils_testsuite.html#weak>
+proc setup_xfail_gnu_hurd {} {
+    global target_triplet
+    switch -regexp $target_triplet {
+	^\[^-\]*-\[^-\]*-gnu.*$ {
+	    setup_xfail "*-*-*"
+	}
+    }
+}
+
 #
 # objdump_symstuff
 #	Dump non-dynamic symbol stuff and make sure that it is sane.
@@ -452,7 +464,9 @@ build_lib "ELF DSO weak func first DSO" libfoo "foo.o libbar.so" dsow.dsym
 build_lib "ELF DSO weak func last DSO" libfoo "libbar.so foo.o" dsow.dsym
 build_exec "ELF weak func first" foo "main.o bar.o" "" strong "" strong.sym
 build_exec "ELF weak func last" foo "bar.o main.o" "" strong "" strong.sym
+setup_xfail_gnu_hurd
 build_exec "ELF weak func first DSO" foo "main.o libbar.so" "-Wl,-rpath,." weak weak.dsym ""
+setup_xfail_gnu_hurd
 build_exec "ELF weak func last DSO" foo "libbar.so main.o" "-Wl,-rpath,." weak weak.dsym ""
 
 build_lib "ELF DSO weak data first" libfoo "bar1a.o foo1a.o" dsodata.dsym
@@ -465,9 +479,13 @@ build_exec "ELF weak data first" foo "main1.o bar1a.o foo1a.o" "" strongdata ""
 build_exec "ELF weak data last" foo "foo1a.o main1.o bar1a.o" "" strongdata "" strongdata.sym
 build_exec "ELF weak data first common" foo "main1.o bar1a.o foo1b.o" "" strongdata "" strongcomm.sym
 build_exec "ELF weak data last common" foo "foo1b.o main1.o bar1a.o" "" strongdata "" strongcomm.sym
+setup_xfail_gnu_hurd
 build_exec "ELF weak data first DSO" foo "main1.o libbar1a.so libfoo1a.so" "-Wl,-rpath,." weakdata weakdata.dsym ""
+setup_xfail_gnu_hurd
 build_exec "ELF weak data last DSO" foo "libfoo1a.so main1.o libbar1a.so" "-Wl,-rpath,." weakdata weakdata.dsym ""
+setup_xfail_gnu_hurd
 build_exec "ELF weak data first DSO common" foo "main1.o libbar1a.so libfoo1b.so" "-Wl,-rpath,." weakdata weakdata.dsym ""
+setup_xfail_gnu_hurd
 build_exec "ELF weak data last DSO common" foo "libfoo1b.so main1.o libbar1a.so" "-Wl,-rpath,." weakdata weakdata.dsym ""
 
 if ![ld_compile "$CC $CFLAGS $picflag" $srcdir/$subdir/size_foo.c $tmpdir/size_foo.o] {
diff --git a/ld/testsuite/ld-gc/abi-note.d b/ld/testsuite/ld-gc/abi-note.d
index aed0a8b..d796ccc 100644
--- a/ld/testsuite/ld-gc/abi-note.d
+++ b/ld/testsuite/ld-gc/abi-note.d
@@ -1,7 +1,7 @@
 #name: --gc-sections with note section
 #ld: --gc-sections -e _start
 #readelf: -S --wide
-#target: *-*-linux*
+#target: *-*-linux* *-*-gnu*
 #notarget: *-*-*aout *-*-*oldld
 
 #...
diff --git a/ld/testsuite/ld-gc/gc.exp b/ld/testsuite/ld-gc/gc.exp
index 7005442..ee9c975 100644
--- a/ld/testsuite/ld-gc/gc.exp
+++ b/ld/testsuite/ld-gc/gc.exp
@@ -93,7 +93,8 @@ run_dump_test "noent"
 run_dump_test "abi-note"
 run_dump_test "start"
 if { [is_remote host] || [which $CC] != 0 } {
-    if { [istarget "*-*-linux*"] } {
+    if { [istarget "*-*-linux*"]
+	 || [istarget "*-*-gnu*"] } {
 	ld_compile "$CC -fPIC $CFLAGS $cflags" $srcdir/$subdir/pr11218-1.c tmpdir/pr11218-1.o
 	ld_simple_link $ld tmpdir/pr11218-1.so "-shared tmpdir/pr11218-1.o"
  	ld_compile "$CC -c $CFLAGS $cflags" $srcdir/$subdir/pr11218-2.c tmpdir/pr11218-2.o
diff --git a/ld/testsuite/ld-gc/pr11218.d b/ld/testsuite/ld-gc/pr11218.d
index 27019a8..fc26940 100644
--- a/ld/testsuite/ld-gc/pr11218.d
+++ b/ld/testsuite/ld-gc/pr11218.d
@@ -1,5 +1,5 @@
 # name: --gc-sections with shared library
 # source: dummy.s
 # ld: --gc-sections -e main tmpdir/pr11218-2.o tmpdir/pr11218-1.so
-# target: *-*-linux*
+# target: *-*-linux* *-*-gnu*
 # error: undefined reference to `unresolved_detected_at_runtime_not_at_linktime'
diff --git a/ld/testsuite/ld-gc/start.d b/ld/testsuite/ld-gc/start.d
index 80c43d9..2800735 100644
--- a/ld/testsuite/ld-gc/start.d
+++ b/ld/testsuite/ld-gc/start.d
@@ -1,7 +1,7 @@
 #name: --gc-sections with __start_
 #ld: --gc-sections -e _start
 #nm: -n
-#target: *-*-linux*
+#target: *-*-linux* *-*-gnu*
 #notarget: *-*-*aout *-*-*oldld
 
 #...
diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp
index 6777c5f..b6976f4 100644
--- a/ld/testsuite/ld-i386/i386.exp
+++ b/ld/testsuite/ld-i386/i386.exp
@@ -102,6 +102,7 @@ if { !([istarget "i?86-*-elf*"]
        || ([istarget "i?86-*-linux*"]
 	   && ![istarget "*-*-*aout*"]
 	   && ![istarget "*-*-*oldld*"])
+       || [istarget "i?86-*-gnu*"]
        || [istarget "x86_64-*-linux*"]
        || [istarget "amd64-*-linux*"]) } {
     return
@@ -194,6 +195,7 @@ run_dump_test "nogot2"
 run_dump_test "discarded1"
 
 if { !([istarget "i?86-*-linux*"]
+       || [istarget "i?86-*-gnu*"]
        || [istarget "x86_64-*-linux*"]) } {
     return
 }
diff --git a/ld/testsuite/ld-ifunc/binutils.exp b/ld/testsuite/ld-ifunc/binutils.exp
index bd6c953..1ef0dbb 100644
--- a/ld/testsuite/ld-ifunc/binutils.exp
+++ b/ld/testsuite/ld-ifunc/binutils.exp
@@ -24,11 +24,11 @@
 # Make sure that binutils can correctly handle ld output in ELF with
 # STT_GNU_IFUNC symbols.
 
-# Run on Linux/x86 only.
 if { !([istarget "i?86-*-elf*"]		
        || ([istarget "i?86-*-linux*"]
 	   && ![istarget "*-*-*aout*"]
 	   && ![istarget "*-*-*oldld*"])
+       || [istarget "i?86-*-gnu*"]
        || [istarget "x86_64-*-linux*"]
        || [istarget "amd64-*-linux*"]) } {
     return
diff --git a/ld/testsuite/ld-ifunc/ifunc.exp b/ld/testsuite/ld-ifunc/ifunc.exp
index 38fe2d3..7fbd495 100644
--- a/ld/testsuite/ld-ifunc/ifunc.exp
+++ b/ld/testsuite/ld-ifunc/ifunc.exp
@@ -32,7 +32,8 @@ if {!(([istarget "i?86-*-*"]
       && ([istarget "*-*-elf*"]
 	  || ([istarget "*-*-linux*"]
 	      && ![istarget "*-*-*aout*"]
-	      && ![istarget "*-*-*oldld*"]))) } {
+	      && ![istarget "*-*-*oldld*"])
+	  || ([istarget "*-*-gnu*"]))) } {
     verbose "IFUNC tests not run - target does not support IFUNC"
     return
 }
diff --git a/ld/testsuite/ld-linkonce/linkonce.exp b/ld/testsuite/ld-linkonce/linkonce.exp
index 5328734..5296d0f 100644
--- a/ld/testsuite/ld-linkonce/linkonce.exp
+++ b/ld/testsuite/ld-linkonce/linkonce.exp
@@ -25,7 +25,7 @@
 # have to qualify on ELF specifically in every .d-file.
 
 if { ![istarget *-*-linux*] \
-     && ![istarget *-*-gnu] \
+     && ![istarget *-*-gnu*] \
      && ![istarget hppa*64*-*-hpux*] \
      && ![istarget *-*-elf] } {
     return
diff --git a/ld/testsuite/ld-linkonce/zeroehl32.d b/ld/testsuite/ld-linkonce/zeroehl32.d
index 5b51836..bd8fc6f 100644
--- a/ld/testsuite/ld-linkonce/zeroehl32.d
+++ b/ld/testsuite/ld-linkonce/zeroehl32.d
@@ -2,7 +2,7 @@
 #source: y.s
 #ld: -Ttext 0xa00 -T zeroeh.ld
 #objdump: -s
-#target: cris-*-elf cris-*-linux* i?86-*-elf i?86-*-linux*
+#target: cris-*-elf cris-*-linux* i?86-*-elf i?86-*-linux* i?86-*-gnu*
 
 # The word at address 201c, for the linkonce-excluded section, must be zero.
 
diff --git a/ld/testsuite/ld-pie/pie.exp b/ld/testsuite/ld-pie/pie.exp
index 19a2ac0..4a28556 100644
--- a/ld/testsuite/ld-pie/pie.exp
+++ b/ld/testsuite/ld-pie/pie.exp
@@ -22,8 +22,8 @@
 # This test can only be run if ld generates native executables.
 if ![isnative] then {return}
 
-# Run on Linux only.
-if { ![istarget *-*-linux*] } {
+if { ![istarget *-*-linux*]
+     && ![istarget *-*-gnu*] } {
     return
 }
 
diff --git a/ld/testsuite/ld-scripts/phdrs2.exp b/ld/testsuite/ld-scripts/phdrs2.exp
index 57778d2..4783575 100644
--- a/ld/testsuite/ld-scripts/phdrs2.exp
+++ b/ld/testsuite/ld-scripts/phdrs2.exp
@@ -25,6 +25,7 @@ if {    ![istarget *-*-sysv4*] \
      && ![istarget *-*-eabi*] \
      && ![istarget hppa*64*-*-hpux*] \
      && ![istarget *-*-linux*] \
+     && ![istarget *-*-gnu*] \
      && ![istarget *-*-irix5*] \
      && ![istarget *-*-irix6*] \
      && ![istarget *-*-solaris2*] } {
diff --git a/ld/testsuite/ld-scripts/rgn-at5.d b/ld/testsuite/ld-scripts/rgn-at5.d
index 972c6c2..7ba9caf 100644
--- a/ld/testsuite/ld-scripts/rgn-at5.d
+++ b/ld/testsuite/ld-scripts/rgn-at5.d
@@ -2,7 +2,7 @@
 # source: rgn-at5.s
 # ld: -T rgn-at5.t -z max-page-size=0x1000
 # objdump: -w -h
-# target: *-*-linux*
+# target: *-*-linux* *-*-gnu*
 # xfail: rx-*-*
 #   FAILS on the RX because the linker has to set LMA == VMA for the
 #   Renesas loader.
diff --git a/ld/testsuite/ld-shared/shared.exp b/ld/testsuite/ld-shared/shared.exp
index 521b925..c8f7c76 100644
--- a/ld/testsuite/ld-shared/shared.exp
+++ b/ld/testsuite/ld-shared/shared.exp
@@ -38,6 +38,7 @@ if { ![istarget hppa*64*-*-hpux*] \
      && ![istarget i?86-*-unixware] \
      && ![istarget i?86-*-elf*] \
      && ![istarget i?86-*-linux*] \
+     && ![istarget i?86-*-gnu*] \
      && ![istarget ia64-*-elf*] \
      && ![istarget ia64-*-linux*] \
      && ![istarget m68k-*-linux*] \
diff --git a/ld/testsuite/ld-undefined/entry-3.d b/ld/testsuite/ld-undefined/entry-3.d
index 184f478..ca91765 100644
--- a/ld/testsuite/ld-undefined/entry-3.d
+++ b/ld/testsuite/ld-undefined/entry-3.d
@@ -2,7 +2,7 @@
 #source: dummy.s
 #ld: -shared --entry foo tmpdir/libentry.a
 #nm: -n
-#target: *-*-linux*
+#target: *-*-linux* *-*-gnu*
 
 #...
 [0-9a-f]+ T +foo
diff --git a/ld/testsuite/ld-undefined/entry-4.d b/ld/testsuite/ld-undefined/entry-4.d
index 44006aa..d02808e 100644
--- a/ld/testsuite/ld-undefined/entry-4.d
+++ b/ld/testsuite/ld-undefined/entry-4.d
@@ -2,7 +2,7 @@
 #source: dummy.s
 #ld: -shared --entry foo -u foo tmpdir/libentry.a
 #nm: -n
-#target: *-*-linux*
+#target: *-*-linux* *-*-gnu*
 
 #...
 [0-9a-f]+ T +foo
diff --git a/ld/testsuite/ld-undefined/weak-undef.exp b/ld/testsuite/ld-undefined/weak-undef.exp
index a4f35e4..43064a4 100644
--- a/ld/testsuite/ld-undefined/weak-undef.exp
+++ b/ld/testsuite/ld-undefined/weak-undef.exp
@@ -30,6 +30,7 @@ if { ![istarget *-*-sysv4*] \
      && ![istarget *-*-eabi*] \
      && ![istarget hppa*64*-*-hpux*] \
      && ![istarget *-*-linux*] \
+     && ![istarget *-*-gnu*] \
      && ![istarget *-*-irix5*] \
      && ![istarget *-*-irix6*] \
      && ![is_pecoff_format] \
diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp
index e5e19eb..7b3553b 100644
--- a/ld/testsuite/lib/ld-lib.exp
+++ b/ld/testsuite/lib/ld-lib.exp
@@ -407,6 +407,7 @@ proc is_elf_format {} {
 	 && ![istarget hppa*64*-*-hpux*]
 	 && ![istarget ia64-*-hpux*]
 	 && ![istarget *-*-linux*]
+	 && ![istarget *-*-gnu*]
 	 && ![istarget frv-*-uclinux*]
 	 && ![istarget bfin-*-uclinux]
 	 && ![istarget sh*-*-uclinux*]
-- 
tg: (fd92991..) hurd/testsuite (depends on: master)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]