* lib/ld.exp (default_ld_compile): If the compilation worked, but
authorIan Lance Taylor <ian@airs.com>
Thu, 27 Oct 1994 21:31:50 +0000 (21:31 +0000)
committerIan Lance Taylor <ian@airs.com>
Thu, 27 Oct 1994 21:31:50 +0000 (21:31 +0000)
no object file was created, check to see if the compiler foolishly
ignored the -o switch when compiling, and move the resulting
object if it did.

ld/testsuite/lib/ld.exp

index 039bee6175feb19ff9f60e2180a8eec0c4bda155..d01f074d0fd2ea1592c0a4d0270ed9f43f96c776 100644 (file)
@@ -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"