bfd/
[deliverable/binutils-gdb.git] / ld / testsuite / lib / ld-lib.exp
index 8b51123db555a392fe69e3725dac23488403a52f..9797dffe0feffac53f782f75ab902e933a7c99a8 100644 (file)
@@ -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.
This page took 0.024328 seconds and 4 git commands to generate.