aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/lib/ld.exp
diff options
context:
space:
mode:
Diffstat (limited to 'ld/testsuite/lib/ld.exp')
-rw-r--r--ld/testsuite/lib/ld.exp19
1 files changed, 19 insertions, 0 deletions
diff --git a/ld/testsuite/lib/ld.exp b/ld/testsuite/lib/ld.exp
index 039bee6..d01f074 100644
--- a/ld/testsuite/lib/ld.exp
+++ b/ld/testsuite/lib/ld.exp
@@ -117,6 +117,25 @@ proc default_ld_compile { cc source object } {
catch "exec $cc -I$srcdir$subdir -c $CFLAGS $source -o $object" exec_output
if [string match "" $exec_output] then {
+ if {![file exists $object]} then {
+ regexp ".*/(\[^/\]*)$" $source all dobj
+ regsub "\\.c" $dobj ".o" realobj
+ verbose "looking for $realobj"
+ if {[file exists $realobj]} then {
+ send_log "mv $realobj $object\n"
+ verbose "mv $realobj $object"
+ catch "exec mv $realobj $object" exec_output
+ if {![string match "" $exec_output]} then {
+ send_log "$exec_output\n"
+ verbose "$exec_output"
+ perror "could not move $realobj to $object"
+ return 0
+ }
+ } else {
+ perror "$object not found after compilation"
+ return 0
+ }
+ }
return 1
} else {
send_log "$exec_output\n"