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]

[1/2] Share is_*_format between testsuites


There's quite a bit of duplication between the support code in the
binutils, gas & ld testsuites.  Although in some ways it would be
nice to keep the three self-contained, we've already passed that
point in the ld testsuite, where several tests use source code
from the gas testsuite.

Things like libstdc++ in GCC already include support code from
the main gcc testsuite, so these two patches use the same approach
for binutils.

This first one just moves things like is_elf_format.  All the moved
functions are byte-for-byte identical between the testsuites.

Tested on x86_64-linux-gnu, mips64-linux-gnu, mips-sgi-irix6.5,
mt-elf, mep-elf and m68k-elf (see next patch).  Applied.

Richard


binutils/testsuite/
	* lib/binutils-common.exp: New file.
	* lib/utils-lib.exp (load_common_lib): New function.  Load
	binutils-common.exp.
	(is_elf_format): Delete.

gas/testsuite/
	* lib/gas-defs.exp (load_common_lib): New function.  Load
	binutils-common.exp.
	(is_elf_format, is_aout_format, is_pecoff_format): Delete.

ld/testsuite/
	* lib/ld-lib.exp (load_common_lib): New function.  Load
	binutils-common.exp.
	(is_elf_format, is_elf64, is_aout_format, is_pecoff_format): Delete.

Index: binutils/testsuite/lib/binutils-common.exp
===================================================================
--- /dev/null	2010-11-20 09:08:08.118111512 +0000
+++ binutils/testsuite/lib/binutils-common.exp	2010-11-20 13:14:59.000000000 +0000
@@ -0,0 +1,151 @@
+# Copyright 1993, 1994, 1995, 1996, 1997, 2000, 2001, 2003, 2004, 2006, 2007,
+# 2009, 2010 Free Software Foundation, Inc.
+#
+# This file is part of the GNU Binutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+# MA 02110-1301, USA.
+
+# True if the object format is known to be ELF.
+#
+proc is_elf_format {} {
+    if { ![istarget *-*-sysv4*]
+	 && ![istarget *-*-unixware*]
+	 && ![istarget *-*-elf*]
+	 && ![istarget *-*-eabi*]
+	 && ![istarget *-*-rtems*]
+	 && ![istarget hppa*64*-*-hpux*]
+	 && ![istarget ia64-*-hpux*]
+	 && ![istarget *-*-linux*]
+	 && ![istarget *-*-gnu*]
+	 && ![istarget frv-*-uclinux*]
+	 && ![istarget bfin-*-uclinux]
+	 && ![istarget sh*-*-uclinux*]
+	 && ![istarget *-*-irix5*]
+	 && ![istarget *-*-irix6*]
+	 && ![istarget *-*-netbsd*]
+	 && ![istarget *-*-openbsd*]
+	 && ![istarget *-*-solaris2*] } {
+	return 0
+    }
+
+    if { [istarget *-*-linux*aout*]
+	 || [istarget *-*-linux*oldld*]
+	 || [istarget h8500-*-rtems*]
+	 || [istarget i960-*-rtems*]
+	 || [istarget *-*-rtemscoff*] } {
+	return 0
+    }
+
+    if { ![istarget *-*-netbsdelf*]
+	 && ([istarget *-*-netbsd*aout*]
+	     || [istarget *-*-netbsdpe*]
+	     || [istarget arm*-*-netbsd*]
+	     || [istarget sparc-*-netbsd*]
+	     || [istarget i*86-*-netbsd*]
+	     || [istarget m68*-*-netbsd*]
+	     || [istarget vax-*-netbsd*]
+	     || [istarget ns32k-*-netbsd*]) } {
+    	return 0
+    }
+
+    if { [istarget arm-*-openbsd*]
+	 || [istarget i386-*-openbsd\[0-2\].*]
+	 || [istarget i386-*-openbsd3.\[0-2\]]
+	 || [istarget m68*-*-openbsd*]
+	 || [istarget ns32k-*-openbsd*]
+	 || [istarget sparc-*-openbsd\[0-2\].*]
+	 || [istarget sparc-*-openbsd3.\[0-1\]]
+	 || [istarget vax-*-openbsd*] } {
+	return 0
+    }
+
+    return 1
+}
+
+# True if the object format is known to be a.out.
+#
+proc is_aout_format {} {
+    if { [istarget *-*-netbsdelf]
+	 || [istarget sparc64-*-netbsd*]
+	 || [istarget sparc64-*-openbsd*] } {
+	return 0
+    }
+    if { [istarget *-*-*\[ab\]out*]
+	 || [istarget *-*-linux*oldld*]
+	 || [istarget *-*-bsd*]
+	 || [istarget *-*-msdos*]
+	 || [istarget arm-*-netbsd*]
+	 || [istarget arm-*-openbsd*]
+	 || [istarget arm-*-riscix*]
+	 || [istarget i?86-*-freebsd\[12\]*]
+	 || [istarget i?86-*-netbsd*]
+	 || [istarget i?86-*-openbsd\[0-2\]*]
+	 || [istarget i?86-*-openbsd3.\[0-2\]*]
+	 || [istarget i?86-*-vsta]
+	 || [istarget i?86-*-mach*]
+	 || [istarget m68*-*-netbsd*]
+	 || [istarget m68*-*-openbsd*]
+	 || [istarget ns32k-*-*]
+	 || [istarget pdp11-*-*]
+	 || [istarget sparc*-*-sunos4*]
+	 || [istarget sparc*-*-netbsd*]
+	 || [istarget sparc*-*-openbsd\[0-2\]*]
+	 || [istarget sparc*-*-openbsd3.\[0-1\]*]
+	 || [istarget sparc*-fujitsu-none]
+	 || [istarget vax-dec-ultrix*]
+	 || [istarget vax-*-netbsd] } {
+	return 1
+    }
+    return 0
+}
+
+# True if the object format is known to be PE COFF.
+#
+proc is_pecoff_format {} {
+    if { ![istarget *-*-mingw*]
+	 && ![istarget *-*-cygwin*]
+	 && ![istarget *-*-cegcc*]
+	 && ![istarget *-*-pe*] } {
+	return 0
+    }
+
+    return 1
+}
+
+# True if the object format is known to be 64-bit ELF.
+#
+proc is_elf64 { binary_file } {
+    global READELF
+    global READELFFLAGS
+
+    set readelf_size ""
+    catch "exec $READELF $READELFFLAGS -h $binary_file > readelf.out" got
+
+    if ![string match "" $got] then {
+	return 0
+    }
+
+    if { ![regexp "\n\[ \]*Class:\[ \]*ELF(\[0-9\]+)\n" \
+	   [file_contents readelf.out] nil readelf_size] } {
+	return 0
+    }
+
+    if { $readelf_size == "64" } {
+	return 1
+    }
+
+    return 0
+}
Index: binutils/testsuite/lib/utils-lib.exp
===================================================================
--- binutils/testsuite/lib/utils-lib.exp	2010-11-20 13:07:23.000000000 +0000
+++ binutils/testsuite/lib/utils-lib.exp	2010-11-20 13:08:30.000000000 +0000
@@ -21,6 +21,12 @@
 # This file was written by Rob Savoye <rob@cygnus.com>
 # and extended by Ian Lance Taylor <ian@cygnus.com>
 
+proc load_common_lib { name } {
+    load_lib $name
+}
+
+load_common_lib binutils-common.exp
+
 proc binutil_version { prog } {
     if ![is_remote host] {
 	set path [which $prog]
@@ -118,63 +124,6 @@ proc default_binutils_assemble_flags { s
     }
 }
 
-# True if the object format is known to be ELF.
-#
-proc is_elf_format {} {
-    if { ![istarget *-*-sysv4*]
-	 && ![istarget *-*-unixware*]
-	 && ![istarget *-*-elf*]
-	 && ![istarget *-*-eabi*]
-	 && ![istarget *-*-rtems*]
-	 && ![istarget hppa*64*-*-hpux*]
-	 && ![istarget ia64-*-hpux*]
-	 && ![istarget *-*-linux*]
-	 && ![istarget *-*-gnu*]
-	 && ![istarget frv-*-uclinux*]
-	 && ![istarget bfin-*-uclinux]
-	 && ![istarget sh*-*-uclinux*]
-	 && ![istarget *-*-irix5*]
-	 && ![istarget *-*-irix6*]
-	 && ![istarget *-*-netbsd*]
-	 && ![istarget *-*-openbsd*]
-	 && ![istarget *-*-solaris2*] } {
-	return 0
-    }
-
-    if { [istarget *-*-linux*aout*]
-	 || [istarget *-*-linux*oldld*]
-	 || [istarget h8500-*-rtems*]
-	 || [istarget i960-*-rtems*]
-	 || [istarget *-*-rtemscoff*] } {
-	return 0
-    }
-
-    if { ![istarget *-*-netbsdelf*]
-	 && ([istarget *-*-netbsd*aout*]
-	     || [istarget *-*-netbsdpe*]
-	     || [istarget arm*-*-netbsd*]
-	     || [istarget sparc-*-netbsd*]
-	     || [istarget i*86-*-netbsd*]
-	     || [istarget m68*-*-netbsd*]
-	     || [istarget vax-*-netbsd*]
-	     || [istarget ns32k-*-netbsd*]) } {
-    	return 0
-    }
-
-    if { [istarget arm-*-openbsd*]
-	 || [istarget i386-*-openbsd\[0-2\].*]
-	 || [istarget i386-*-openbsd3.\[0-2\]]
-	 || [istarget m68*-*-openbsd*]
-	 || [istarget ns32k-*-openbsd*]
-	 || [istarget sparc-*-openbsd\[0-2\].*]
-	 || [istarget sparc-*-openbsd3.\[0-1\]]
-	 || [istarget vax-*-openbsd*] } {
-	return 0
-    }
-
-    return 1
-}
-
 #
 # exe_ext
 #	Returns target executable extension, if any.
Index: gas/testsuite/lib/gas-defs.exp
===================================================================
--- gas/testsuite/lib/gas-defs.exp	2010-11-20 13:08:57.000000000 +0000
+++ gas/testsuite/lib/gas-defs.exp	2010-11-20 13:14:04.000000000 +0000
@@ -21,6 +21,13 @@
 
 # This file was written by Ken Raeburn (raeburn@cygnus.com).
 
+proc load_common_lib { name } {
+    global srcdir
+    load_file $srcdir/../../binutils/testsuite/lib/$name
+}
+
+load_common_lib binutils-common.exp
+
 proc gas_version {} {
     global AS
     if [is_remote host] then {
@@ -277,113 +284,6 @@ proc gas_init { args } {
     return
 }
 
-# True if the object format is known to be ELF.
-#
-proc is_elf_format {} {
-    if { ![istarget *-*-sysv4*]
-	 && ![istarget *-*-unixware*]
-	 && ![istarget *-*-elf*]
-	 && ![istarget *-*-eabi*]
-	 && ![istarget *-*-rtems*]
-	 && ![istarget hppa*64*-*-hpux*]
-	 && ![istarget ia64-*-hpux*]
-	 && ![istarget *-*-linux*]
-	 && ![istarget *-*-gnu*]
-	 && ![istarget frv-*-uclinux*]
-	 && ![istarget bfin-*-uclinux]
-	 && ![istarget sh*-*-uclinux*]
-	 && ![istarget *-*-irix5*]
-	 && ![istarget *-*-irix6*]
-	 && ![istarget *-*-netbsd*]
-	 && ![istarget *-*-openbsd*]
-	 && ![istarget *-*-solaris2*] } {
-	return 0
-    }
-
-    if { [istarget *-*-linux*aout*]
-	 || [istarget *-*-linux*oldld*]
-	 || [istarget h8500-*-rtems*]
-	 || [istarget i960-*-rtems*]
-	 || [istarget *-*-rtemscoff*] } {
-	return 0
-    }
-
-    if { ![istarget *-*-netbsdelf*]
-	 && ([istarget *-*-netbsd*aout*]
-	     || [istarget *-*-netbsdpe*]
-	     || [istarget arm*-*-netbsd*]
-	     || [istarget sparc-*-netbsd*]
-	     || [istarget i*86-*-netbsd*]
-	     || [istarget m68*-*-netbsd*]
-	     || [istarget vax-*-netbsd*]
-	     || [istarget ns32k-*-netbsd*]) } {
-    	return 0
-    }
-
-    if { [istarget arm-*-openbsd*]
-	 || [istarget i386-*-openbsd\[0-2\].*]
-	 || [istarget i386-*-openbsd3.\[0-2\]]
-	 || [istarget m68*-*-openbsd*]
-	 || [istarget ns32k-*-openbsd*]
-	 || [istarget sparc-*-openbsd\[0-2\].*]
-	 || [istarget sparc-*-openbsd3.\[0-1\]]
-	 || [istarget vax-*-openbsd*] } {
-	return 0
-    }
-
-    return 1
-}
-
-# True if the object format is known to be a.out.
-#
-proc is_aout_format {} {
-    if { [istarget *-*-netbsdelf]
-	 || [istarget sparc64-*-netbsd*]
-	 || [istarget sparc64-*-openbsd*] } {
-	return 0
-    }
-    if { [istarget *-*-*\[ab\]out*]
-	 || [istarget *-*-linux*oldld*]
-	 || [istarget *-*-bsd*]
-	 || [istarget *-*-msdos*]
-	 || [istarget arm-*-netbsd*]
-	 || [istarget arm-*-openbsd*]
-	 || [istarget arm-*-riscix*]
-	 || [istarget i?86-*-freebsd\[12\]*]
-	 || [istarget i?86-*-netbsd*]
-	 || [istarget i?86-*-openbsd\[0-2\]*]
-	 || [istarget i?86-*-openbsd3.\[0-2\]*]
-	 || [istarget i?86-*-vsta]
-	 || [istarget i?86-*-mach*]
-	 || [istarget m68*-*-netbsd*]
-	 || [istarget m68*-*-openbsd*]
-	 || [istarget ns32k-*-*]
-	 || [istarget pdp11-*-*]
-	 || [istarget sparc*-*-sunos4*]
-	 || [istarget sparc*-*-netbsd*]
-	 || [istarget sparc*-*-openbsd\[0-2\]*]
-	 || [istarget sparc*-*-openbsd3.\[0-1\]*]
-	 || [istarget sparc*-fujitsu-none]
-	 || [istarget vax-dec-ultrix*]
-	 || [istarget vax-*-netbsd] } {
-	return 1
-    }
-    return 0
-}
-
-# True if the object format is known to be PE COFF.
-#
-proc is_pecoff_format {} {
-    if { ![istarget *-*-mingw*]
-	 && ![istarget *-*-cygwin*]
-	 && ![istarget *-*-cegcc*]
-	 && ![istarget *-*-pe*] } {
-	return 0
-    }
-
-    return 1
-}
-
 # Internal procedure: return the names of the standard sections
 #
 proc get_standard_section_names {} {
Index: ld/testsuite/lib/ld-lib.exp
===================================================================
--- ld/testsuite/lib/ld-lib.exp	2010-11-20 13:11:13.000000000 +0000
+++ ld/testsuite/lib/ld-lib.exp	2010-11-20 13:14:56.000000000 +0000
@@ -19,6 +19,13 @@
 # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
 # MA 02110-1301, USA.
 
+proc load_common_lib { name } {
+    global srcdir
+    load_file $srcdir/../../binutils/testsuite/lib/$name
+}
+
+load_common_lib binutils-common.exp
+
 # Extract and print the version number of ld.
 #
 proc default_ld_version { ld } {
@@ -401,138 +408,6 @@ proc ld_simple_link_defsyms {} {
     return $flags
 }
 
-# True if the object format is known to be ELF.
-#
-proc is_elf_format {} {
-    if { ![istarget *-*-sysv4*]
-	 && ![istarget *-*-unixware*]
-	 && ![istarget *-*-elf*]
-	 && ![istarget *-*-eabi*]
-	 && ![istarget *-*-rtems*]
-	 && ![istarget hppa*64*-*-hpux*]
-	 && ![istarget ia64-*-hpux*]
-	 && ![istarget *-*-linux*]
-	 && ![istarget *-*-gnu*]
-	 && ![istarget frv-*-uclinux*]
-	 && ![istarget bfin-*-uclinux]
-	 && ![istarget sh*-*-uclinux*]
-	 && ![istarget *-*-irix5*]
-	 && ![istarget *-*-irix6*]
-	 && ![istarget *-*-netbsd*]
-	 && ![istarget *-*-openbsd*]
-	 && ![istarget *-*-solaris2*] } {
-	return 0
-    }
-
-    if { [istarget *-*-linux*aout*]
-	 || [istarget *-*-linux*oldld*]
-	 || [istarget h8500-*-rtems*]
-	 || [istarget i960-*-rtems*]
-	 || [istarget *-*-rtemscoff*] } {
-	return 0
-    }
-
-    if { ![istarget *-*-netbsdelf*]
-	 && ([istarget *-*-netbsd*aout*]
-	     || [istarget *-*-netbsdpe*]
-	     || [istarget arm*-*-netbsd*]
-	     || [istarget sparc-*-netbsd*]
-	     || [istarget i*86-*-netbsd*]
-	     || [istarget m68*-*-netbsd*]
-	     || [istarget vax-*-netbsd*]
-	     || [istarget ns32k-*-netbsd*]) } {
-    	return 0
-    }
-
-    if { [istarget arm-*-openbsd*]
-	 || [istarget i386-*-openbsd\[0-2\].*]
-	 || [istarget i386-*-openbsd3.\[0-2\]]
-	 || [istarget m68*-*-openbsd*]
-	 || [istarget ns32k-*-openbsd*]
-	 || [istarget sparc-*-openbsd\[0-2\].*]
-	 || [istarget sparc-*-openbsd3.\[0-1\]]
-	 || [istarget vax-*-openbsd*] } {
-	return 0
-    }
-
-    return 1
-}
-
-# True if the object format is known to be 64-bit ELF.
-#
-proc is_elf64 { binary_file } {
-    global READELF
-    global READELFFLAGS
-
-    set readelf_size ""
-    catch "exec $READELF $READELFFLAGS -h $binary_file > readelf.out" got
-
-    if ![string match "" $got] then {
-	return 0
-    }
-
-    if { ![regexp "\n\[ \]*Class:\[ \]*ELF(\[0-9\]+)\n" \
-	   [file_contents readelf.out] nil readelf_size] } {
-	return 0
-    }
-
-    if { $readelf_size == "64" } {
-	return 1
-    }
-
-    return 0
-}
-
-# True if the object format is known to be a.out.
-#
-proc is_aout_format {} {
-    if { [istarget *-*-netbsdelf]
-	 || [istarget sparc64-*-netbsd*]
-	 || [istarget sparc64-*-openbsd*] } {
-	return 0
-    }
-    if { [istarget *-*-*\[ab\]out*]
-	 || [istarget *-*-linux*oldld*]
-	 || [istarget *-*-bsd*]
-	 || [istarget *-*-msdos*]
-	 || [istarget arm-*-netbsd*]
-	 || [istarget arm-*-openbsd*]
-	 || [istarget arm-*-riscix*]
-	 || [istarget i?86-*-freebsd\[12\]*]
-	 || [istarget i?86-*-netbsd*]
-	 || [istarget i?86-*-openbsd\[0-2\]*]
-	 || [istarget i?86-*-openbsd3.\[0-2\]*]
-	 || [istarget i?86-*-vsta]
-	 || [istarget i?86-*-mach*]
-	 || [istarget m68*-*-netbsd*]
-	 || [istarget m68*-*-openbsd*]
-	 || [istarget ns32k-*-*]
-	 || [istarget pdp11-*-*]
-	 || [istarget sparc*-*-sunos4*]
-	 || [istarget sparc*-*-netbsd*]
-	 || [istarget sparc*-*-openbsd\[0-2\]*]
-	 || [istarget sparc*-*-openbsd3.\[0-1\]*]
-	 || [istarget sparc*-fujitsu-none]
-	 || [istarget vax-dec-ultrix*]
-	 || [istarget vax-*-netbsd] } {
-	return 1
-    }
-    return 0
-}
-
-# True if the object format is known to be PE COFF.
-#
-proc is_pecoff_format {} {
-    if { ![istarget *-*-mingw*]
-	 && ![istarget *-*-cygwin*]
-	 && ![istarget *-*-cegcc*]
-	 && ![istarget *-*-pe*] } {
-	return 0
-    }
-
-    return 1
-}
-
 # Compares two files line-by-line.
 #   Returns differences if exist.
 #   Returns null if file(s) cannot be opened.


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