| Index: gdb/testsuite/gdb.base/break-interp.exp
|
| diff --git a/gdb/testsuite/gdb.base/break-interp.exp b/gdb/testsuite/gdb.base/break-interp.exp
|
| index 5882cfe2606f3f9dfe8f99696d6762715d164111..4012e66986779c0f4f156b4c69332e0687c955b3 100644
|
| --- a/gdb/testsuite/gdb.base/break-interp.exp
|
| +++ b/gdb/testsuite/gdb.base/break-interp.exp
|
| @@ -30,7 +30,7 @@ set binfile_lib ${objdir}/${subdir}/${test}.so
|
| set srcfile "${test}-main.c"
|
| set srcfile_lib "${test}-lib.c"
|
|
|
| -if [get_compiler_info ${binfile_lib}] {
|
| +if [get_compiler_info] {
|
| return -1
|
| }
|
|
|
| @@ -155,7 +155,7 @@ proc reach_1 {func command displacement} {
|
| pass $test
|
| }
|
| }
|
| - -re "Stopped due to shared library event\r\n$gdb_prompt $" {
|
| + -re "Stopped due to (spurious )?shared library event.*\r\n$gdb_prompt $" {
|
| if {$func == "_dl_debug_state"} {
|
| if {$debug_state_count == 0} {
|
| # First stop does not yet relocate the _start function
|
| @@ -185,16 +185,12 @@ proc reach_1 {func command displacement} {
|
| # displacement of 0 bytes to be present, "NONZERO" for displacement of non-0
|
| # bytes to be present and "PRESENT" if both "ZERO" and "NONZERO" are valid.
|
| proc reach {func command displacement} {
|
| - global pf_prefix
|
| - set old_ldprefix $pf_prefix
|
| - lappend pf_prefix "reach-$func:"
|
| -
|
| - reach_1 $func $command $displacement
|
| -
|
| - set pf_prefix $old_ldprefix
|
| + with_test_prefix "reach-$func" {
|
| + reach_1 $func $command $displacement
|
| + }
|
| }
|
|
|
| -proc test_core {file displacement} {
|
| +proc test_core {file displacement} { with_test_prefix "core" {
|
| global srcdir subdir gdb_prompt expect_out
|
|
|
| set corefile [core_find $file {} "segv"]
|
| @@ -202,10 +198,6 @@ proc test_core {file displacement} {
|
| return
|
| }
|
|
|
| - global pf_prefix
|
| - set old_ldprefix $pf_prefix
|
| - lappend pf_prefix "core:"
|
| -
|
| gdb_exit
|
| gdb_start
|
| # Clear it to never find any separate debug infos in $debug_root.
|
| @@ -245,26 +237,18 @@ proc test_core {file displacement} {
|
| }
|
|
|
| gdb_test "bt" "#\[0-9\]+ +\[^\r\n\]*\\mlibfunc\\M\[^\r\n\]*\r\n#\[0-9\]+ +\[^\r\n\]*\\mmain\\M.*" "core main bt"
|
| +}}
|
|
|
| - set pf_prefix $old_ldprefix
|
| -}
|
| -
|
| -proc test_attach_gdb {file pid displacement prefix} {
|
| +proc test_attach_gdb {file pid displacement prefix} { with_test_prefix "$prefix" {
|
| global gdb_prompt expect_out
|
|
|
| - global pf_prefix
|
| - set old_ldprefix $pf_prefix
|
| - lappend pf_prefix "$prefix:"
|
| -
|
| gdb_exit
|
| gdb_start
|
|
|
| # Print the "PIE (Position Independent Executable) displacement" message.
|
| gdb_test_no_output "set verbose on"
|
|
|
| - if {$file != ""} {
|
| - gdb_test "file $file" "Reading symbols from .*done\\." "file"
|
| - }
|
| + gdb_test "file $file" "Reading symbols from .*done\\." "file"
|
|
|
| set test "attach"
|
| gdb_test_multiple "attach $pid" $test {
|
| @@ -302,12 +286,11 @@ proc test_attach_gdb {file pid displacement prefix} {
|
|
|
| gdb_test "bt" "#\[0-9\]+ +\[^\r\n\]*\\mlibfunc\\M\[^\r\n\]*\r\n#\[0-9\]+ +\[^\r\n\]*\\mmain\\M.*" "attach main bt"
|
| gdb_exit
|
| -
|
| - set pf_prefix $old_ldprefix
|
| -}
|
| +}}
|
|
|
| proc test_attach {file displacement {relink_args ""}} {
|
| global board_info
|
| + global exec
|
|
|
| gdb_exit
|
|
|
| @@ -336,10 +319,10 @@ proc test_attach {file displacement {relink_args ""}} {
|
| }
|
|
|
| if {$relink_args == ""} {
|
| - test_attach_gdb "" $pid $displacement "attach"
|
| + test_attach_gdb $exec $pid $displacement "attach"
|
| } else {
|
| # These could be rather passed as arguments.
|
| - global exec interp_saved interp
|
| + global interp_saved interp
|
|
|
| foreach relink {YES NO} {
|
| # Formerly this test was testing only prelinking of $EXEC. As the
|
| @@ -428,98 +411,95 @@ proc test_ld {file ifmain trynosym displacement} {
|
| return
|
| }
|
|
|
| - global pf_prefix
|
| - set old_ldprefix $pf_prefix
|
| - lappend pf_prefix "symbol-less:"
|
| -
|
| - # Test also `exec-file'-command loaded $FILE - therefore without symbols.
|
| - # SYMBOL_OBJFILE is not available and only EXEC_BFD must be used.
|
| -
|
| - gdb_exit
|
| - gdb_start
|
| - # Clear it to never find any separate debug infos in $debug_root.
|
| - gdb_test_no_output "set debug-file-directory"
|
| - gdb_reinitialize_dir $srcdir/$subdir
|
| -
|
| - # Print the "PIE (Position Independent Executable) displacement" message.
|
| - gdb_test_no_output "set verbose on"
|
| -
|
| - # Test no (error) message has been printed by `exec-file'.
|
| - set escapedfile [string_to_regexp $file]
|
| - gdb_test "exec-file $file" "exec-file $escapedfile" "load"
|
| -
|
| - if $ifmain {
|
| - reach "_dl_debug_state" run $displacement
|
| -
|
| - # Use two separate gdb_test_multiple statements to avoid timeouts due
|
| - # to slow processing of wildcard capturing long output
|
| - set test "info files"
|
| - set entrynohex ""
|
| - gdb_test_multiple $test $test {
|
| - -re "\r\n\[\t \]*Entry point:\[\t \]*0x(\[0-9a-f\]+)\r\n" {
|
| - set entrynohex $expect_out(1,string)
|
| - gdb_test_multiple "" $test {
|
| - -re "\r\n$gdb_prompt $" {
|
| - pass $test
|
| + with_test_prefix "symbol-less" {
|
| + # Test also `exec-file'-command loaded $FILE - therefore
|
| + # without symbols. SYMBOL_OBJFILE is not available and only
|
| + # EXEC_BFD must be used.
|
| +
|
| + gdb_exit
|
| + gdb_start
|
| + # Clear it to never find any separate debug infos in $debug_root.
|
| + gdb_test_no_output "set debug-file-directory"
|
| + gdb_reinitialize_dir $srcdir/$subdir
|
| +
|
| + # Print the "PIE (Position Independent Executable)
|
| + # displacement" message.
|
| + gdb_test_no_output "set verbose on"
|
| +
|
| + # Test no (error) message has been printed by `exec-file'.
|
| + set escapedfile [string_to_regexp $file]
|
| + gdb_test "exec-file $file" "exec-file $escapedfile" "load"
|
| +
|
| + if $ifmain {
|
| + reach "_dl_debug_state" run $displacement
|
| +
|
| + # Use two separate gdb_test_multiple statements to avoid timeouts due
|
| + # to slow processing of wildcard capturing long output
|
| + set test "info files"
|
| + set entrynohex ""
|
| + gdb_test_multiple $test $test {
|
| + -re "\r\n\[\t \]*Entry point:\[\t \]*0x(\[0-9a-f\]+)\r\n" {
|
| + set entrynohex $expect_out(1,string)
|
| + gdb_test_multiple "" $test {
|
| + -re "\r\n$gdb_prompt $" {
|
| + pass $test
|
| + }
|
| }
|
| }
|
| }
|
| - }
|
|
|
| - # `info sym' cannot be tested for .opd as the binary may not have
|
| - # symbols.
|
| - if {[istarget powerpc64-*] && [is_lp64_target]} {
|
| - set test "convert entry point"
|
| - gdb_test_multiple "p *(void(*)(void) *) 0x$entrynohex" $test {
|
| - -re " =( \\(\[^0-9\]*\\))? 0x(\[0-9a-f\]+)( < \[^\r\n\]*)?\r\n$gdb_prompt $" {
|
| - set entrynohex $expect_out(2,string)
|
| - pass $test
|
| + # `info sym' cannot be tested for .opd as the binary may not have
|
| + # symbols.
|
| + if {[istarget powerpc64-*] && [is_lp64_target]} {
|
| + set test "convert entry point"
|
| + gdb_test_multiple "p *(void(*)(void) *) 0x$entrynohex" $test {
|
| + -re " =( \\(\[^0-9\]*\\))? 0x(\[0-9a-f\]+)( < \[^\r\n\]*)?\r\n$gdb_prompt $" {
|
| + set entrynohex $expect_out(2,string)
|
| + pass $test
|
| + }
|
| }
|
| }
|
| - }
|
| - if {$entrynohex != ""} {
|
| - gdb_test "break *0x$entrynohex" "" "break at entry point"
|
| - gdb_test "continue" "\r\nBreakpoint \[0-9\]+, 0x0*$entrynohex in .*" "entry point reached"
|
| - }
|
| - } else {
|
| - # There is no symbol to break at ld.so. Moreover it can exit with an
|
| - # error code.
|
| -
|
| - set test "ld.so exit"
|
| - set test_displacement "seen displacement message as $displacement"
|
| - gdb_test_multiple "run" $test {
|
| - -re "Using PIE \\(Position Independent Executable\\) displacement (0x\[0-9a-f\]+) " {
|
| - # Missing "$gdb_prompt $" is intentional.
|
| - if {$expect_out(1,string) == "0x0"} {
|
| - set case "ZERO"
|
| - } else {
|
| - set case "NONZERO"
|
| + if {$entrynohex != ""} {
|
| + gdb_test "break *0x$entrynohex" "" "break at entry point"
|
| + gdb_test "continue" "\r\nBreakpoint \[0-9\]+, 0x0*$entrynohex in .*" "entry point reached"
|
| + }
|
| + } else {
|
| + # There is no symbol to break at ld.so. Moreover it can
|
| + # exit with an error code.
|
| +
|
| + set test "ld.so exit"
|
| + set test_displacement "seen displacement message as $displacement"
|
| + gdb_test_multiple "run" $test {
|
| + -re "Using PIE \\(Position Independent Executable\\) displacement (0x\[0-9a-f\]+) " {
|
| + # Missing "$gdb_prompt $" is intentional.
|
| + if {$expect_out(1,string) == "0x0"} {
|
| + set case "ZERO"
|
| + } else {
|
| + set case "NONZERO"
|
| + }
|
| + if {$displacement == $case || $displacement == "PRESENT"} {
|
| + pass $test_displacement
|
| + set displacement "FOUND-$displacement"
|
| + } else {
|
| + fail $test_displacement
|
| + }
|
| + exp_continue
|
| }
|
| - if {$displacement == $case || $displacement == "PRESENT"} {
|
| - pass $test_displacement
|
| - set displacement "FOUND-$displacement"
|
| - } else {
|
| - fail $test_displacement
|
| + -re "$inferior_exited_re (normally|with code \[0-9\]+).\r\n$gdb_prompt $" {
|
| + # Do not check the binary filename as it may be truncated.
|
| + pass $test
|
| }
|
| - exp_continue
|
| }
|
| - -re "$inferior_exited_re (normally|with code \[0-9\]+).\r\n$gdb_prompt $" {
|
| - # Do not check the binary filename as it may be truncated.
|
| - pass $test
|
| + if ![regexp {^(NONE|FOUND-.*)$} $displacement] {
|
| + fail $test_displacement
|
| }
|
| }
|
| - if ![regexp {^(NONE|FOUND-.*)$} $displacement] {
|
| - fail $test_displacement
|
| - }
|
| }
|
| -
|
| - set pf_prefix $old_ldprefix
|
| }
|
|
|
| # Create separate binaries for each testcase - to make the possible reported
|
| # problem reproducible after the whole test run finishes.
|
|
|
| -set old_ldprefix $pf_prefix
|
| foreach ldprelink {NO YES} {
|
| foreach ldsepdebug {NO IN SEP} {
|
| # Skip running the ldsepdebug test if we do not have system separate
|
| @@ -544,160 +524,155 @@ foreach ldprelink {NO YES} {
|
| # possibly unprelinked ld.so to test all the combinations for GDB.
|
| set interp_saved ${interp}-saved
|
|
|
| - set pf_prefix $old_ldprefix
|
| - lappend pf_prefix "$ldname:"
|
| -
|
| - if {$ldsepdebug == "NO"} {
|
| - file_copy $interp_system $interp
|
| - # Never call strip-debug before unprelink:
|
| - # prelink: ...: Section .note.gnu.build-id created after prelinking
|
| - if ![prelinkNO $interp] {
|
| - continue
|
| - }
|
| - strip_debug $interp
|
| - } elseif {$ldsepdebug == "IN" && $interp_system_debug == ""} {
|
| - file_copy $interp_system $interp
|
| - } elseif {$ldsepdebug == "IN" && $interp_system_debug != ""} {
|
| + with_test_prefix "$ldname" {
|
| + if {$ldsepdebug == "NO"} {
|
| + file_copy $interp_system $interp
|
| + # Never call strip-debug before unprelink:
|
| + # prelink: ...: Section .note.gnu.build-id created after prelinking
|
| + if ![prelinkNO $interp] {
|
| + continue
|
| + }
|
| + strip_debug $interp
|
| + } elseif {$ldsepdebug == "IN" && $interp_system_debug == ""} {
|
| + file_copy $interp_system $interp
|
| + } elseif {$ldsepdebug == "IN" && $interp_system_debug != ""} {
|
| file_copy $interp_system $interp
|
| - file_copy $interp_system_debug "${interp}.debug"
|
| - # eu-unstrip: DWARF data in '...' not adjusted for prelinking bias; consider prelink -u
|
| - if {![prelinkNO $interp] || ![prelinkNO "${interp}.debug"]} {
|
| - continue
|
| + file_copy $interp_system_debug "${interp}.debug"
|
| + # eu-unstrip: DWARF data in '...' not adjusted for prelinking bias; consider prelink -u
|
| + if {![prelinkNO $interp] || ![prelinkNO "${interp}.debug"]} {
|
| + continue
|
| + }
|
| + set test "eu-unstrip unprelinked:[file tail $interp_system] + [file tail $interp_system_debug] to [file tail $interp]"
|
| + set command "exec eu-unstrip -o $interp $interp ${interp}.debug"
|
| + verbose -log "command is $command"
|
| + if [catch $command] {
|
| + setup_xfail *-*-*
|
| + fail $test
|
| + continue
|
| + } else {
|
| + pass $test
|
| + }
|
| + } elseif {$ldsepdebug == "SEP" && $interp_system_debug == ""} {
|
| + file_copy $interp_system $interp
|
| + # eu-unstrip: DWARF data in '...' not adjusted for prelinking bias; consider prelink -u
|
| + if ![prelinkNO $interp] {
|
| + continue
|
| + }
|
| + gdb_gnu_strip_debug $interp
|
| + } elseif {$ldsepdebug == "SEP" && $interp_system_debug != ""} {
|
| + file_copy $interp_system $interp
|
| + file_copy $interp_system_debug "${interp}.debug"
|
| }
|
| - set test "eu-unstrip unprelinked:[file tail $interp_system] + [file tail $interp_system_debug] to [file tail $interp]"
|
| - set command "exec eu-unstrip -o $interp $interp ${interp}.debug"
|
| - verbose -log "command is $command"
|
| - if [catch $command] {
|
| - setup_xfail *-*-*
|
| - fail $test
|
| - continue
|
| +
|
| + if {$ldsepdebug == "SEP"} {
|
| + if ![prelinkNO "${interp}.debug"] {
|
| + continue
|
| + }
|
| } else {
|
| - pass $test
|
| + file delete "${interp}.debug"
|
| }
|
| - } elseif {$ldsepdebug == "SEP" && $interp_system_debug == ""} {
|
| - file_copy $interp_system $interp
|
| - # eu-unstrip: DWARF data in '...' not adjusted for prelinking bias; consider prelink -u
|
| - if ![prelinkNO $interp] {
|
| +
|
| + if ![prelink$ldprelink $interp] {
|
| continue
|
| }
|
| - gdb_gnu_strip_debug $interp
|
| - } elseif {$ldsepdebug == "SEP" && $interp_system_debug != ""} {
|
| - file_copy $interp_system $interp
|
| - file_copy $interp_system_debug "${interp}.debug"
|
| - }
|
| + if {$ldprelink == "NO"} {
|
| + set displacement "NONZERO"
|
| + } else {
|
| + # x86* kernel loads prelinked PIE binary at its
|
| + # prelinked address but ppc* kernel loads it at a
|
| + # random address. prelink normally skips PIE binaries
|
| + # during the system scan.
|
| + set displacement "PRESENT"
|
| + }
|
| + test_ld $interp 0 [expr {$ldsepdebug == "NO"}] $displacement
|
|
|
| - if {$ldsepdebug == "SEP"} {
|
| - if ![prelinkNO "${interp}.debug"] {
|
| + if ![file_copy $interp $interp_saved] {
|
| continue
|
| }
|
| - } else {
|
| - file delete "${interp}.debug"
|
| - }
|
|
|
| - if ![prelink$ldprelink $interp] {
|
| - continue
|
| - }
|
| - if {$ldprelink == "NO"} {
|
| - set displacement "NONZERO"
|
| - } else {
|
| - # x86* kernel loads prelinked PIE binary at its prelinked address
|
| - # but ppc* kernel loads it at a random address. prelink normally
|
| - # skips PIE binaries during the system scan.
|
| - set displacement "PRESENT"
|
| - }
|
| - test_ld $interp 0 [expr {$ldsepdebug == "NO"}] $displacement
|
| -
|
| - if ![file_copy $interp $interp_saved] {
|
| - continue
|
| - }
|
| - set old_binprefix $pf_prefix
|
| - foreach binprelink {NO YES} {
|
| - foreach binsepdebug {NO IN SEP} {
|
| - # "ATTACH" is like "YES" but it is modified during run.
|
| - # It cannot be used for problem reproducibility after the
|
| - # testcase ends.
|
| - foreach binpie {NO YES ATTACH} {
|
| - # This combination is not possible, non-PIE (fixed address)
|
| - # binary cannot be prelinked to any (other) address.
|
| - if {$binprelink == "YES" && $binpie == "NO"} {
|
| - continue
|
| - }
|
| -
|
| - set binname "BINprelink${binprelink}debug${binsepdebug}pie${binpie}"
|
| - set exec $binprefix-$binname
|
| + foreach binprelink {NO YES} {
|
| + foreach binsepdebug {NO IN SEP} {
|
| + # "ATTACH" is like "YES" but it is modified during
|
| + # run. It cannot be used for problem
|
| + # reproducibility after the testcase ends.
|
| + foreach binpie {NO YES ATTACH} {
|
| + # This combination is not possible, non-PIE (fixed address)
|
| + # binary cannot be prelinked to any (other) address.
|
| + if {$binprelink == "YES" && $binpie == "NO"} {
|
| + continue
|
| + }
|
|
|
| - set pf_prefix $old_binprefix
|
| - lappend pf_prefix "$binname:"
|
| + set binname "BINprelink${binprelink}debug${binsepdebug}pie${binpie}"
|
| + set exec $binprefix-$binname
|
|
|
| - set opts "ldflags=-Wl,$binfile_lib,-rpath,[file dirname $binfile_lib]"
|
| - if {$binsepdebug != "NO"} {
|
| - lappend opts {debug}
|
| - }
|
| - if {$binpie != "NO"} {
|
| - lappend opts {additional_flags=-fPIE -pie}
|
| - }
|
| + with_test_prefix "$binname" {
|
| + set opts "ldflags=-Wl,$binfile_lib,-rpath,[file dirname $binfile_lib]"
|
| + if {$binsepdebug != "NO"} {
|
| + lappend opts {debug}
|
| + }
|
| + if {$binpie != "NO"} {
|
| + lappend opts {additional_flags=-fPIE -pie}
|
| + }
|
|
|
| - set dir ${exec}.d
|
| - set relink_args [build_executable_own_libs ${test}.exp [file tail $exec] $srcfile $opts $interp $dir]
|
| - if {$relink_args == ""} {
|
| - continue;
|
| - }
|
| + set dir ${exec}.d
|
| + set relink_args [build_executable_own_libs ${test}.exp [file tail $exec] $srcfile $opts $interp $dir]
|
| + if {$relink_args == ""} {
|
| + continue;
|
| + }
|
|
|
| - if {$binsepdebug == "SEP"} {
|
| - gdb_gnu_strip_debug $exec
|
| - }
|
| + if {$binsepdebug == "SEP"} {
|
| + gdb_gnu_strip_debug $exec
|
| + }
|
|
|
| - if {$binpie == "NO"} {
|
| - set displacement "NONE"
|
| - } elseif {$binprelink == "NO"} {
|
| - set displacement "NONZERO"
|
| - } else {
|
| - # x86* kernel loads prelinked PIE binary at its
|
| - # prelinked address but ppc* kernel loads it at
|
| - # a random address. prelink normally skips PIE
|
| - # binaries during the system scan.
|
| - set displacement "PRESENT"
|
| - }
|
| + if {$binpie == "NO"} {
|
| + set displacement "NONE"
|
| + } elseif {$binprelink == "NO"} {
|
| + set displacement "NONZERO"
|
| + } else {
|
| + # x86* kernel loads prelinked PIE binary at its prelinked
|
| + # address but ppc* kernel loads it at a random address.
|
| + # prelink normally skips PIE binaries during the system scan.
|
| + set displacement "PRESENT"
|
| + }
|
|
|
| - if {[prelink$binprelink $relink_args [file tail $exec]]
|
| - && [file_copy $interp_saved $interp]} {
|
| - if {$binpie != "ATTACH"} {
|
| - test_ld $exec 1 [expr {$binsepdebug == "NO"}] $displacement
|
| - } else {
|
| - # If the file has been randomly prelinked it must
|
| - # be "NONZERO". We could see "ZERO" only if it was
|
| - # unprelinked and it is now running at the same
|
| - # address - which is 0 but executable can never run
|
| - # at address 0.
|
| -
|
| - set displacement "NONZERO"
|
| - test_attach $exec $displacement $relink_args
|
| -
|
| - # ATTACH means that executables and libraries have
|
| - # been modified after they have been run. They
|
| - # cannot be reused for problem reproducibility after
|
| - # the testcase ends in the ATTACH case. Therefore
|
| - # they are rather deleted not to confuse after the
|
| - # run finishes.
|
| - set exec_debug [system_debug_get $exec]
|
| - if {$exec_debug != ""} {
|
| - # `file delete [glob "${exec_debug}*"]' does not work.
|
| - foreach f [glob "${exec_debug}*"] {
|
| - file delete $f
|
| + if {[prelink$binprelink $relink_args [file tail $exec]]
|
| + && [file_copy $interp_saved $interp]} {
|
| + if {$binpie != "ATTACH"} {
|
| + test_ld $exec 1 [expr {$binsepdebug == "NO"}] $displacement
|
| + } else {
|
| + # If the file has been randomly prelinked it must be
|
| + # "NONZERO". We could see "ZERO" only if it was unprelinked
|
| + # and it is now running at the same address - which is 0 but
|
| + # executable can never run at address 0.
|
| +
|
| + set displacement "NONZERO"
|
| + test_attach $exec $displacement $relink_args
|
| +
|
| + # ATTACH means that executables and libraries have been
|
| + # modified after they have been run. They cannot be reused
|
| + # for problem reproducibility after the testcase ends in
|
| + # the ATTACH case. Therefore they are rather deleted not
|
| + # to confuse after the run finishes.
|
| + set exec_debug [system_debug_get $exec]
|
| + if {$exec_debug != ""} {
|
| + # `file delete [glob "${exec_debug}*"]' does not work.
|
| + foreach f [glob "${exec_debug}*"] {
|
| + file delete $f
|
| + }
|
| + }
|
| + file delete -force $dir
|
| + # `file delete [glob "${exec}*"]' does not work.
|
| + foreach f [glob "${exec}*"] {
|
| + file delete $f
|
| + }
|
| }
|
| }
|
| - file delete -force $dir
|
| - # `file delete [glob "${exec}*"]' does not work.
|
| - foreach f [glob "${exec}*"] {
|
| - file delete $f
|
| - }
|
| }
|
| }
|
| }
|
| }
|
| - }
|
|
|
| - file delete $interp_saved
|
| + file delete $interp_saved
|
| + }
|
| }
|
| }
|
| -set pf_prefix $old_ldprefix
|
|
|