X-Git-Url: http://drtracing.org/?a=blobdiff_plain;ds=sidebyside;f=binutils%2Ftestsuite%2Fconfig%2Fdefault.exp;h=c02136c0b693500af9741e5c7be6b31f0292f994;hb=5fd104addfddb68844fb8df67be832ee98ad9888;hp=6de8538884cc92102c0f226761e422483d328d26;hpb=fa803dc60f0bf01297674c41d001798e18ade4dc;p=deliverable%2Fbinutils-gdb.git diff --git a/binutils/testsuite/config/default.exp b/binutils/testsuite/config/default.exp index 6de8538884..c02136c0b6 100644 --- a/binutils/testsuite/config/default.exp +++ b/binutils/testsuite/config/default.exp @@ -1,8 +1,8 @@ -# Copyright (C) 1993, 1994 Free Software Foundation, Inc. +# Copyright (C) 1993-2020 Free Software Foundation, Inc. # This program 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 2 of the License, or +# 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, @@ -12,57 +12,132 @@ # # 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. # Please email any bugs, comments, and/or additions to this file to: # bug-dejagnu@prep.ai.mit.edu # This file was written by Rob Savoye. (rob@cygnus.com) -load_lib util-defs.exp load_lib utils-lib.exp if ![info exists AS] then { - set AS [findfile $base_dir/../gas/as.new $base_dir/../gas/as.new [transform as]] + set AS [findfile $base_dir/../gas/as-new $base_dir/../gas/as-new [transform as]] } if ![info exists ASFLAGS] then { set ASFLAGS "" } +if ![info exists LD] then { + set LD [findfile $base_dir/../ld/ld-new $base_dir/../ld/ld-new [transform ld]] +} +if ![info exists LDFLAGS] then { + set LDFLAGS "" +} if ![info exists NM] then { - set NM [findfile $base_dir/nm.new $base_dir/nm.new [transform nm]] + set NM [findfile $base_dir/nm-new $base_dir/nm-new [transform nm]] } if ![info exists NMFLAGS] then { set NMFLAGS "" } - if ![info exists SIZE] then { set SIZE [findfile $base_dir/size] } if ![info exists SIZEFLAGS] then { set SIZEFLAGS "" } - if ![info exists OBJDUMP] then { set OBJDUMP [findfile $base_dir/objdump] } if ![info exists OBJDUMPFLAGS] then { set OBJDUMPFLAGS "" } - if ![info exists OBJCOPY] then { set OBJCOPY [findfile $base_dir/objcopy] } if ![info exists OBJCOPYFLAGS] then { set OBJCOPYFLAGS "" } +if ![info exists AR] then { + set AR [findfile $base_dir/ar] +} +if ![info exists STRINGS] then { + set STRINGS [findfile $base_dir/strings] +} +if ![info exists STRINGSFLAGS] then { + set STRINGSFLAGS "" +} +if ![info exists STRIP] then { + set STRIP [findfile $base_dir/strip-new $base_dir/strip-new [transform strip]] +} +if ![info exists STRIPFLAGS] then { + set STRIPFLAGS "" +} +if ![info exists READELF] then { + set READELF [findfile $base_dir/readelf] +} +if ![info exists READELFFLAGS] then { + set READELFFLAGS "" +} +if ![info exists ELFEDIT] then { + set ELFEDIT [findfile $base_dir/elfedit] +} +if ![info exists ELFEDITFLAGS] then { + set ELFEDITFLAGS "" +} +if ![info exists WINDRES] then { + set WINDRES [findfile $base_dir/windres] +} +if ![info exists DLLTOOL] then { + set DLLTOOL [findfile $base_dir/dlltool] +} +if ![info exists CXXFILT] then { + set CXXFILT [findfile $base_dir/cxxfilt] +} +if ![info exists CXXFILTFLAGS] then { + set CXXFILTFLAGS "" +} if ![file isdirectory tmpdir] {catch "exec mkdir tmpdir" status} +# Make a copy from tmpdir/gas/as and tmpdir/gas/ld to the assembler +# and linker in the build tree, so that we can use a -B option to gcc +# to force it to use the newly built assembler/linker. +if {![file isdirectory tmpdir/gas]} {catch "exec mkdir tmpdir/gas" status} + +proc link_or_copy { src dst } { + if ![catch "exec ln -sf ../../../$src tmpdir/gas/$dst" status] then {return 0} + if ![catch "exec ln -f ../$src tmpdir/gas/$dst" status] then {return 0} + catch "exec cp -fpu ../$src tmpdir/gas/$dst" status +} + +if {[file isfile gas/as-new[exe_ext]]} then { + link_or_copy gas/as-new[exe_ext] as[exe_ext] +} else { + # For non-Windows hosts there may be an executable + # without a .exe suffix, so try copying that instead. + link_or_copy gas/as-new as[exe_ext] +} +# This may not be needed any more... +if {[file isfile ld/ld-new[exe_ext]]} then { + link_or_copy ld/ld-new[exe_ext] ld[exe_ext] +} else { + link_or_copy ld/ld-new ld[exe_ext] +} +if {[file isfile tmpdir/gas/as[exe_ext]]} then { + set gcc_gas_flag "-B[pwd]/tmpdir/gas/" + set dlltool_gas_flag "-S [pwd]/tmpdir/gas/as[exe_ext]" +} else { + # Testing an installed toolchain. + set gcc_gas_flag "" + set dlltool_gas_flag "" +} + # # binutils_run # run a program, returning the output # sets binutils_run_failed if the program does not exist +# sets binutils_run_status to the exit status of the program # proc binutils_run { prog progargs } { default_binutils_run $prog $progargs @@ -72,15 +147,14 @@ proc binutils_run { prog progargs } { # binutils_assemble # assemble a file # -proc binutils_assemble { as source object } { - default_binutils_assemble $as $source $object +proc binutils_assemble { source object } { + default_binutils_assemble_flags $source $object "" } # -# add some basic error trapping. These mostly catch programming error's -# within the tests themselves +# binutils_assemble_flags +# assemble a file # -expect_before { - buffer_full { perror "internal buffer is full." } - "can't open '*'" { perror "Can't open test file." } +proc binutils_assemble_flags { source object asflags } { + default_binutils_assemble_flags $source $object $asflags }