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.
This commit is contained in:
Richard Sandiford 2010-11-20 15:36:10 +00:00
parent c0efa7954e
commit f3097f3364
7 changed files with 190 additions and 296 deletions

View File

@ -1,3 +1,10 @@
2010-11-20 Richard Sandiford <rdsandiford@googlemail.com>
* lib/binutils-common.exp: New file.
* lib/utils-lib.exp (load_common_lib): New function. Load
binutils-common.exp.
(is_elf_format): Delete.
2010-11-15 H.J. Lu <hongjiu.lu@intel.com>
* binutils-all/compress.exp: Replace binutils_assemble with

View File

@ -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
}

View File

@ -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 { source object asflags } {
}
}
# 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.

View File

@ -1,3 +1,9 @@
2010-11-20 Richard Sandiford <rdsandiford@googlemail.com>
* lib/gas-defs.exp (load_common_lib): New function. Load
binutils-common.exp.
(is_elf_format, is_aout_format, is_pecoff_format): Delete.
2010-11-15 H.J. Lu <hongjiu.lu@intel.com>
* gas/elf/dwarf2-3.d: Also expect .zdebug in section name.

View File

@ -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 {} {

View File

@ -1,3 +1,9 @@
2010-11-20 Richard Sandiford <rdsandiford@googlemail.com>
* 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.
2010-11-18 Alan Modra <amodra@gmail.com>
* ld-elf/binutils.exp: Correct x86 gnu target match.

View File

@ -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.