OSDN Git Service

fix race condition when generating linker scripts
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Mon, 21 Jun 2010 09:25:11 +0000 (11:25 +0200)
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Thu, 24 Jun 2010 09:55:28 +0000 (11:55 +0200)
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
libc/Makefile.in
libpthread/linuxthreads/Makefile.in

index 37eaa65..dd666ac 100644 (file)
@@ -66,13 +66,14 @@ $(libc.depend): $(libc_OUT)/libc.oS $(libc-nomulti-y:.o=.oS) | $(LIBS-libc.so)
        $(call linkm.so,$(libc_FULL_NAME),$(ABI_VERSION))
 endif
        $(Q)$(RM) $@
-       $(Q)cp $(top_srcdir)extra/scripts/format.lds $@
-       $(Q)$(OUTPUT_FORMAT) >> $@
+       $(Q)cat $(top_srcdir)extra/scripts/format.lds > $@.tmp
+       $(Q)$(OUTPUT_FORMAT) >> $@.tmp
 ifeq ($(COMPAT_ATEXIT),y)
-       $(Q)echo "GROUP ( $(NONSHARED_LIBNAME) $(SHARED_LIBNAME) $(ASNEEDED) )" >> $@
+       $(Q)echo "GROUP ( $(NONSHARED_LIBNAME) $(SHARED_LIBNAME) $(ASNEEDED) )" >> $@.tmp
 else
-       $(Q)echo "GROUP ( $(SHARED_LIBNAME) $(NONSHARED_LIBNAME) $(ASNEEDED) )" >> $@
+       $(Q)echo "GROUP ( $(SHARED_LIBNAME) $(NONSHARED_LIBNAME) $(ASNEEDED) )" >> $@.tmp
 endif
+       $(Q)mv $@.tmp $@
 
 $(libc_OUT)/libc_so.a: $(libc-so-y) | $(top_builddir)lib/libc.a $(top_builddir)lib/$(NONSHARED_LIBNAME)
        $(Q)$(RM) $@
index fd9586a..697371b 100644 (file)
@@ -94,8 +94,9 @@ $(top_builddir)lib/libpthread.so: $(libpthread_OUT)/libpthread_so.a $(libc.depen
 #      $(call linkm.so,$(libpthread_FULL_NAME),$(ABI_VERSION))
 #endif
        $(Q)$(RM) $@
-       $(Q)cp $(top_srcdir)extra/scripts/format.lds $@
-       $(Q)echo "GROUP ( $(notdir $@).$(ABI_VERSION) libpthread_nonshared.a )" >> $@
+       $(Q)cat $(top_srcdir)extra/scripts/format.lds > $@.tmp
+       $(Q)echo "GROUP ( $(notdir $@).$(ABI_VERSION) libpthread_nonshared.a )" >> $@.tmp
+       $(Q)mv $@.tmp $@
 
 ifeq ($(PTHREADS_DEBUG_SUPPORT),y)
 $(libpthread_OUT)/libpthread_so.a: STRIP_FLAGS:=$(STRIP_FLAGS:-x=-X --strip-debug)