+2008-04-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * libltdl/config/ltmain.m4sh (func_mode_compile): Avoid
+ redundant removal of old output files before compilation.
+ Do not remove $obj until we have successfully grabbed the
+ lockfile (in case the compiler doesn't grok `-c -o'), because
+ it might be identical to $output_obj.
+ At the end of the function, before we remove the lockfile,
+ update $removelist so that if the trap hits after the lockfile
+ has been removed, we do not accidentally remove $output_obj that
+ does not belong to us.
+ (func_write_libtool_object): Use $MV instead of mv.
+
2008-04-18 Andreas Schwab <schwab@suse.de>
* libltdl/m4/ltoptions.m4 (AC_ENABLE_SHARED): Check optional
non_pic_object=$write_oldobj
EOF
- mv -f "${write_libobj}T" "${write_libobj}"
+ $MV "${write_libobj}T" "${write_libobj}"
}
}
removelist="$lobj $libobj ${libobj}T"
fi
- $opt_dry_run || $RM $removelist
- trap "$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE" 1 2 15
-
# On Cygwin there's no "real" PIC flag so we must build both object types
case $host_os in
cygwin* | mingw* | pw32* | os2*)
if test "$compiler_c_o" = no; then
output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
lockfile="$output_obj.lock"
- removelist="$removelist $output_obj $lockfile"
- trap "$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE" 1 2 15
else
output_obj=
need_locks=no
$opt_dry_run || $RM $removelist
exit $EXIT_FAILURE
fi
+ removelist="$removelist $output_obj"
$ECHO "$srcfile" > "$lockfile"
fi
+ $opt_dry_run || $RM $removelist
+ removelist="$removelist $lockfile"
+ trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
+
if test -n "$fix_srcfile_path"; then
eval srcfile=\"$fix_srcfile_path\"
fi
func_quote_for_eval "$srcfile"
qsrcfile=$func_quote_for_eval_result
- $opt_dry_run || $RM "$libobj" "${libobj}T"
-
# Only build a PIC object if we are building libtool libraries.
if test "$build_libtool_libs" = yes; then
# Without this assignment, base_compile gets emptied.
command="$command -o $lobj"
fi
- $opt_dry_run || $RM "$lobj" "$output_obj"
-
func_show_eval_locale "$command" \
'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
# Suppress compiler output if we already did a PIC compilation.
command="$command$suppress_output"
- $opt_dry_run || $RM "$obj" "$output_obj"
func_show_eval_locale "$command" \
'$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
# Unlock the critical section if it was locked
if test "$need_locks" != no; then
+ removelist=$lockfile
$RM "$lockfile"
fi
}