Can't this sequence happen?

proc1:       cp unwind.h $(gcc_objdir)/include/tmp-unwind.h
proc2:       cp unwind.h $(gcc_objdir)/include/tmp-unwind.h
proc1:       sh $(srcdir)/../move-if-change \
               $(gcc_objdir)/include/tmp-unwind.h \
               $(gcc_objdir)/include/unwind.h
proc2:       sh $(srcdir)/../move-if-change \
               $(gcc_objdir)/include/tmp-unwind.h \
               $(gcc_objdir)/include/unwind.h

It sounds like the latter move-if-change could trip on
a non-extant tmp-unwind.h.

Yes, we should use an unique tmp unwind.h.

Thanks, you are correct.

Paolo
2011-08-12  Paolo Bonzini  <bonz...@gnu.org>

	* Makefile.in (install-unwind_h): Create $(gcc_objdir)/include/unwind.h
	atomically.

Index: Makefile.in
===================================================================
--- Makefile.in	(revision 177688)
+++ Makefile.in	(working copy)
@@ -991,8 +1001,9 @@ gcc-extra-parts:
 all: $(extra-parts)
 
 install-unwind_h:
-	rm -f $(gcc_objdir)/include/unwind.h
-	cp unwind.h $(gcc_objdir)/include/unwind.h
-	chmod a+r $(gcc_objdir)/include/unwind.h
+	dest=$(gcc_objdir)/include/tmp$$$$-unwind.h; \
+	cp unwind.h $$dest; \
+	chmod a+r $$dest; \
+	sh $(srcdir)/../move-if-change $$dest $(gcc_objdir)/include/unwind.h
 
 all: install-unwind_h

Reply via email to