emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master 440bafe: Write updated loaddefs to a temporary file


From: Ken Raeburn
Subject: [Emacs-diffs] master 440bafe: Write updated loaddefs to a temporary file and rename into place.
Date: Sun, 9 Apr 2017 02:55:59 -0400 (EDT)

branch: master
commit 440bafef7cce6044d4f9d6ca3c3e0856ee9732b7
Author: Ken Raeburn <address@hidden>
Commit: Ken Raeburn <address@hidden>

    Write updated loaddefs to a temporary file and rename into place.
    
    In a parallel build, byte compilation can be running at the same times
    as loaddefs.el is being regenerated.  However, in a CANNOT_DUMP build,
    loaddefs.el is read at startup and must always be in a usable state.
    
    * lisp/Makefile.in ($(lisp)/loaddefs.el): Write generated output to
    loaddefs.el.new and then rename it to loaddefs.el.
---
 lisp/Makefile.in | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/lisp/Makefile.in b/lisp/Makefile.in
index 185554c..63d593c 100644
--- a/lisp/Makefile.in
+++ b/lisp/Makefile.in
@@ -179,14 +179,18 @@ $(lisp)/finder-inf.el:
 # Note that we set no-update-autoloads in _generated_ leim files.
 # If you want to allow autoloads in such files, remove that,
 # and make this depend on leim.
+#
+# Write to a temporary file in case we're doing a parallel build and a
+# CANNOT_DUMP-mode Emacs needs to read loaddefs at startup.
 autoloads .PHONY: $(lisp)/loaddefs.el
 $(lisp)/loaddefs.el: $(LOADDEFS)
        @echo Directories for loaddefs: ${SUBDIRS_ALMOST}
        $(AM_V_GEN)$(emacs) -l autoload \
            --eval '(setq autoload-ensure-writable t)' \
            --eval '(setq autoload-builtin-package-versions t)' \
-           --eval '(setq generated-autoload-file (expand-file-name 
(unmsys--file-name "$@")))' \
+           --eval '(setq generated-autoload-file (expand-file-name 
(unmsys--file-name "$(lisp)/loaddefs.tmp")))' \
            -f batch-update-autoloads ${SUBDIRS_ALMOST}
+       mv -f $(lisp)/loaddefs.tmp $@
 
 # autoloads only runs when loaddefs.el is nonexistent, although it
 # generates a number of different files. Provide a force option to enable



reply via email to

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