2001-02-17 Raja R Harinath <harinath@cs.umn.edu>
authorTom Tromey <tromey@redhat.com>
Sun, 18 Feb 2001 01:29:54 +0000 (01:29 +0000)
committerTom Tromey <tromey@redhat.com>
Sun, 18 Feb 2001 01:29:54 +0000 (01:29 +0000)
* depcomp (gcc3): Protect against the compiler deleting
the dependency output file.

ChangeLog
depcomp
lib/depcomp

index 8007703..95843d0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2001-02-17  Raja R Harinath  <harinath@cs.umn.edu>
+
+       * depcomp (gcc3): Protect against the compiler deleting 
+       the dependency output file.
+
 2001-02-17  Tom Tromey  <tromey@redhat.com>
 
        * automake.in (handle_merge_targets): Use double quotes around
diff --git a/depcomp b/depcomp
index 78243e3..30f36ee 100755 (executable)
--- a/depcomp
+++ b/depcomp
@@ -51,8 +51,14 @@ case "$depmode" in
 gcc3)
 ## gcc 3 implements dependency tracking that does exactly what
 ## we want.  Yay!
-   exec "$@" -MT "$object" -MF "$depfile" -MD -MP
-   ;;
+  if "$@" -MT "$object" -MF "$tmpdepfile" -MD -MP; then :
+  else
+    stat=$?
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  mv "$tmpdepfile" "$depfile"
+  ;;
 
 gcc)
 ## There are various ways to get dependency output from gcc.  Here's
index 78243e3..30f36ee 100755 (executable)
@@ -51,8 +51,14 @@ case "$depmode" in
 gcc3)
 ## gcc 3 implements dependency tracking that does exactly what
 ## we want.  Yay!
-   exec "$@" -MT "$object" -MF "$depfile" -MD -MP
-   ;;
+  if "$@" -MT "$object" -MF "$tmpdepfile" -MD -MP; then :
+  else
+    stat=$?
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  mv "$tmpdepfile" "$depfile"
+  ;;
 
 gcc)
 ## There are various ways to get dependency output from gcc.  Here's