From 440bafef7cce6044d4f9d6ca3c3e0856ee9732b7 Mon Sep 17 00:00:00 2001 From: Ken Raeburn Date: Sun, 9 Apr 2017 02:13:43 -0400 Subject: [PATCH] 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 185554ca63a..63d593c7e68 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 -- 2.39.2