automake-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Automake-commit] [SCM] GNU Automake branch, micro, updated. v1.14.1-3-g


From: Paul Eggert
Subject: [Automake-commit] [SCM] GNU Automake branch, micro, updated. v1.14.1-3-g74cdef7
Date: Sat, 23 Aug 2014 14:55:58 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Automake".

http://git.sv.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=74cdef7897da220bf062957ff9699815681441ef

The branch, micro has been updated
       via  74cdef7897da220bf062957ff9699815681441ef (commit)
      from  49035b4d4f65132bd5426ec57e499152b52ba2c2 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 74cdef7897da220bf062957ff9699815681441ef
Author: Paul Eggert <address@hidden>
Date:   Sat Aug 23 07:55:28 2014 -0700

    build: fix race in parallel builds
    
    Reported by Friedrich Beckmann in: http://bugs.gnu.org/18301
    * lib/am/texi-vers.am (?DIRSTAMP?): Put the process-ID into the
    temporary file name.  Use a similar temporary in the source dir.

-----------------------------------------------------------------------

Summary of changes:
 lib/am/texi-vers.am |   18 +++++++++---------
 1 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/lib/am/texi-vers.am b/lib/am/texi-vers.am
index bddf382..e98bb82 100644
--- a/lib/am/texi-vers.am
+++ b/lib/am/texi-vers.am
@@ -31,25 +31,25 @@ DIST_COMMON += %VTEXI% %STAMPVTI%
 ## %STAMPVTI% is distributed and %DIRSTAMP% isn't: a distributed file
 ## should never be dependent upon a non-distributed built file.
 ## Therefore we ensure that %DIRSTAMP% exists in the rule.
+## Use cp + mv so that the update of %VTEXI% is atomic even if
+## the source directory is on a different file system.
 ?DIRSTAMP?     @test -f %DIRSTAMP% || $(MAKE) $(AM_MAKEFLAGS) %DIRSTAMP%
        @(dir=.; test -f ./%TEXI% || dir=$(srcdir); \
        set `$(SHELL) %MDDIR%mdate-sh $$dir/%TEXI%`; \
        echo "@set UPDATED $$1 $$2 $$3"; \
        echo "@set UPDATED-MONTH $$2 $$3"; \
        echo "@set EDITION $(VERSION)"; \
-       echo "@set VERSION $(VERSION)") > %VTI%.tmp
-## Use cp and rm here because some older "mv"s can't move across
-## filesystems.  Furthermore, GNU "mv" in the AmigaDOS environment
-## can't handle this.
-       @cmp -s %VTI%.tmp %VTEXI% \
-         || (echo "Updating %VTEXI%"; \
-             cp %VTI%.tmp %VTEXI%)
-       address@hidden -f %VTI%.tmp
+       echo "@set VERSION $(VERSION)") > %VTI%.tmp$$$$ && \
+       (cmp -s %VTI%.tmp$$$$ %VTEXI% \
+         || (echo "Updating %VTEXI%" && \
+             cp %VTI%.tmp$$$$ %VTEXI%.tmp$$$$ && \
+             mv %VTEXI%.tmp$$$$ %VTEXI%)) && \
+       rm -f %VTI%.tmp$$$$ %VTEXI%.$$$$
        @cp %VTEXI% $@
 
 mostlyclean-am: mostlyclean-%VTI%
 mostlyclean-%VTI%:
-       -rm -f %VTI%.tmp
+       -rm -f %VTI%.tmp* %VTEXI%.tmp*
 
 maintainer-clean-am: maintainer-clean-%VTI%
 maintainer-clean-%VTI%:


hooks/post-receive
-- 
GNU Automake



reply via email to

[Prev in Thread] Current Thread [Next in Thread]