| Index: gdb/testsuite/lib/prelink-support.exp | 
| diff --git a/gdb/testsuite/lib/prelink-support.exp b/gdb/testsuite/lib/prelink-support.exp | 
| index abb9b79dfae7105bafa646c48828fadb2819d5c1..887a58e9638d95b43634fc9eb33b15b813332c5d 100644 | 
| --- a/gdb/testsuite/lib/prelink-support.exp | 
| +++ b/gdb/testsuite/lib/prelink-support.exp | 
| @@ -1,4 +1,4 @@ | 
| -# Copyright (C) 2010-2012 Free Software Foundation, Inc. | 
| +# Copyright (C) 2010-2013 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 | 
| @@ -18,10 +18,9 @@ | 
| # for sections ".interp" or ".gnu_debuglink". | 
|  | 
| proc section_get {exec section} { | 
| -    global objdir | 
| global subdir | 
| -    set tmp "${objdir}/${subdir}/section_get.tmp" | 
| -    set objcopy_program [transform objcopy] | 
| +    set tmp [standard_output_file section_get.tmp] | 
| +    set objcopy_program [gdb_find_objcopy] | 
|  | 
| set command "exec $objcopy_program -O binary --set-section-flags $section=A --change-section-address $section=0 -j $section $exec $tmp" | 
| verbose -log "command is $command" | 
| @@ -95,8 +94,9 @@ proc file_copy {src dest} { | 
| # Wrap function build_executable so that the resulting executable is fully | 
| # self-sufficient (without dependencies on system libraries).  Parameter | 
| # INTERP may be used to specify a loader (ld.so) to be used that is | 
| -# different from the default system one.  Libraries on which the executable | 
| -# depends are copied into directory DIR.  Default DIR value to | 
| +# different from the default system one.  INTERP can be set to "no" if no ld.so | 
| +# copy should be made.  Libraries on which the executable depends are copied | 
| +# into directory DIR.  Default DIR value to | 
| # `${objdir}/${subdir}/${EXECUTABLE}.d'. | 
| # | 
| # In case of success, return a string containing the arguments to be used | 
| @@ -116,14 +116,15 @@ proc file_copy {src dest} { | 
| # with -Wl,-soname,NAME.so are not copied. | 
|  | 
| proc build_executable_own_libs {testname executable sources options {interp ""} {dir ""}} { | 
| -    global objdir subdir | 
| +    global subdir | 
|  | 
| if {[build_executable $testname $executable $sources $options] == -1} { | 
| return "" | 
| } | 
| -    set binfile ${objdir}/${subdir}/${executable} | 
| +    set binfile [standard_output_file ${executable}] | 
|  | 
| -    set command "ldd $binfile" | 
| +    set ldd [gdb_find_ldd] | 
| +    set command "$ldd $binfile" | 
| set test "ldd $executable" | 
| set result [catch "exec $command" output] | 
| verbose -log "result of $command is $result" | 
| @@ -151,8 +152,15 @@ proc build_executable_own_libs {testname executable sources options {interp ""} | 
|  | 
| if {$interp == ""} { | 
| set interp_system [section_get $binfile .interp] | 
| -	set interp ${dir}/[file tail $interp_system] | 
| -	file_copy $interp_system $interp | 
| +	if {$interp_system == ""} { | 
| +	    fail "$test could not find .interp" | 
| +	} else { | 
| +	    set interp ${dir}/[file tail $interp_system] | 
| +	    file_copy $interp_system $interp | 
| +	} | 
| +    } | 
| +    if {$interp == "no"} { | 
| +	set interp "" | 
| } | 
|  | 
| set dests {} | 
| @@ -164,13 +172,19 @@ proc build_executable_own_libs {testname executable sources options {interp ""} | 
|  | 
| # Do not lappend it so that "-rpath $dir" overrides any possible "-rpath"s | 
| # specified by the caller to be able to link it for ldd" above. | 
| -    set options [linsert $options 0 "ldflags=-Wl,--dynamic-linker,$interp,-rpath,$dir"] | 
| +    set options [linsert $options 0 "ldflags=-Wl,-rpath,$dir"] | 
| +    if {$interp != ""} { | 
| +	set options [linsert $options 0 "ldflags=-Wl,--dynamic-linker,$interp"] | 
| +    } | 
|  | 
| if {[build_executable $testname $executable $sources $options] == -1} { | 
| return "" | 
| } | 
|  | 
| -    set prelink_args "--dynamic-linker=$interp --ld-library-path=$dir $binfile $interp [concat $dests]" | 
| +    set prelink_args "--ld-library-path=$dir $binfile [concat $dests]" | 
| +    if {$interp != ""} { | 
| +	set prelink_args "--dynamic-linker=$interp $prelink_args $interp" | 
| +    } | 
| return $prelink_args | 
| } | 
|  | 
| @@ -197,7 +211,7 @@ proc prelink_no {arg {name {}}} { | 
| # Skip prelink options. | 
| continue | 
| } | 
| -	    set readelf_program [transform readelf] | 
| +	    set readelf_program [gdb_find_readelf] | 
| set command "exec $readelf_program -WS $bin" | 
| verbose -log "command is $command" | 
| set result [catch $command output] | 
| @@ -221,7 +235,7 @@ proc prelink_no {arg {name {}}} { | 
| } | 
| # Last line does miss the trailing \n.  There can be multiple such messages | 
| # as ARG may list multiple files. | 
| -    if {$result == 1 && [regexp {^(/usr/sbin/prelink[^\r\n]*: [^ ]* does not have .gnu.prelink_undo section\n?)*$} $output]} { | 
| +    if {$result == 1 && [regexp {^([^\r\n]*prelink[^\r\n]*: [^ ]* does not have .gnu.prelink_undo section\n?)*$} $output]} { | 
| pass $test | 
| return 1 | 
| } else { | 
| @@ -278,6 +292,11 @@ proc prelink_yes {arg {name ""}} { | 
| xfail $test | 
| return 0 | 
| } | 
| +    if {$result == 1 && [regexp {DWARF [^\r\n]* unhandled} $output]} { | 
| +	# Prelink didn't understand the version of dwarf present. | 
| +	unsupported "$test (dwarf version unhandled)" | 
| +	return 0 | 
| +    } | 
| if {$result == 0 && $output == ""} { | 
| pass $test | 
| return 1 | 
|  |