diff options
Diffstat (limited to 'ld/testsuite/lib')
-rw-r--r-- | ld/testsuite/lib/ld-lib.exp | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp index 8b51123..9797dff 100644 --- a/ld/testsuite/lib/ld-lib.exp +++ b/ld/testsuite/lib/ld-lib.exp @@ -1,6 +1,6 @@ # Support routines for LD testsuite. # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, -# 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 +# 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 # Free Software Foundation, Inc. # # This file is part of the GNU Binutils. @@ -31,7 +31,7 @@ load_common_lib binutils-common.exp # Returns 0 otherwise. # proc at_least_gcc_version { major minor } { - + if {![info exists CC]} { set CC [find_gcc] } @@ -870,6 +870,10 @@ proc run_dump_test { name } { } proc slurp_options { file } { + # If options_regsub(foo) is set to {a b}, then the contents of a + # "#foo:" line will have regsub -all applied to replace a with b. + global options_regsub + if [catch { set f [open $file r] } x] { #perror "couldn't open `$file': $x" perror "$x" @@ -887,6 +891,11 @@ proc slurp_options { file } { # Whitespace here is space-tab. if [regexp $pat $line xxx opt_name opt_val] { # match! + if [info exists options_regsub($opt_name)] { + set subst $options_regsub($opt_name) + regsub -all -- [lindex $subst 0] $opt_val [lindex $subst 1] \ + opt_val + } lappend opt_array [list $opt_name $opt_val] } else { break @@ -940,7 +949,7 @@ proc ar_simple_create { ar aropts target objects } { # objdump: Apply objdump options on result. # nm: Apply nm options on result. # readelf: Apply readelf options on result. -# ld: Don't apply anything on result. Compare output during linking with +# ld: Don't apply anything on result. Compare output during linking with # the file containing regexps (which is the second arg, not the third). # Note that this *must* be the first action if it is to be used at all; # in all other cases, any output from the linker during linking is @@ -1076,7 +1085,7 @@ proc run_ld_link_tests { ldtests } { set comp_output [prune_warnings [file_contents "ld.stderr"]] remote_file host delete "ld.stderr" remote_file build delete "ld.stderr" - + if {[info exists old_lc_all]} { set env(LC_ALL) $old_lc_all } else { @@ -1237,7 +1246,7 @@ proc run_ld_link_exec_tests { targets_to_xfail ldtests } { send_log "Running: $binfile > $binfile.out\n" verbose "Running: $binfile > $binfile.out" catch "exec $binfile > $binfile.out" exec_output - + if ![string match "" $exec_output] then { send_log "$exec_output\n" verbose "$exec_output" 1 @@ -1435,7 +1444,7 @@ proc run_cc_link_tests { ldtests } { proc check_gc_sections_available { } { global gc_sections_available_saved global ld - + if {![info exists gc_sections_available_saved]} { # Some targets don't support gc-sections despite whatever's # advertised by ld's options. |