* lib/ld.exp (default_ld_compile): If the compilation worked, but

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.
This commit is contained in:
Ian Lance Taylor 1994-10-27 21:31:50 +00:00
parent 14cac507a8
commit b5bd927ce5
1 changed files with 19 additions and 0 deletions

View 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"