From dfaf8bec4e47eac2282e76d23e2ecc03c062ec39 Mon Sep 17 00:00:00 2001 From: Andrea Corallo Date: Tue, 25 Jan 2022 12:01:55 +0100 Subject: [PATCH] * `batch-byte+native-compile' produce .eln younger than .elc (bug#52912) * lisp/emacs-lisp/comp.el (batch-native-compile): Add return value. (batch-byte+native-compile): Touch the produced .eln after the corresponding .elc is produced. --- lisp/emacs-lisp/comp.el | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el index 71914b2f2b7..a23169aa0f1 100644 --- a/lisp/emacs-lisp/comp.el +++ b/lisp/emacs-lisp/comp.el @@ -4195,9 +4195,9 @@ last directory in `native-comp-eln-load-path')." if (or (null byte+native-compile) (cl-notany (lambda (re) (string-match re file)) native-comp-bootstrap-deny-list)) - do (comp--native-compile file) + collect (comp--native-compile file) else - do (byte-compile-file file)))) + collect (byte-compile-file file)))) ;;;###autoload (defun batch-byte+native-compile () @@ -4211,13 +4211,18 @@ variable 'NATIVE_DISABLED' is set, only byte compile." (if (equal (getenv "NATIVE_DISABLED") "1") (batch-byte-compile) (cl-assert (length= command-line-args-left 1)) - (let ((byte+native-compile t) - (byte-to-native-output-buffer-file nil)) - (batch-native-compile) + (let* ((byte+native-compile t) + (byte-to-native-output-buffer-file nil) + (eln-file (car (batch-native-compile)))) (pcase byte-to-native-output-buffer-file (`(,temp-buffer . ,target-file) (unwind-protect - (byte-write-target-file temp-buffer target-file) + (progn + (byte-write-target-file temp-buffer target-file) + ;; Touch the .eln in order to have it older than the + ;; corresponding .elc. + (when (stringp eln-file) + (set-file-times eln-file))) (kill-buffer temp-buffer)))) (setq command-line-args-left (cdr command-line-args-left))))) -- 2.39.2