]> git.eshelyaron.com Git - emacs.git/commitdiff
* `batch-byte+native-compile' produce .eln younger than .elc (bug#52912)
authorAndrea Corallo <akrl@sdf.org>
Tue, 25 Jan 2022 11:01:55 +0000 (12:01 +0100)
committerAndrea Corallo <akrl@sdf.org>
Tue, 25 Jan 2022 16:47:34 +0000 (17:47 +0100)
* 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

index 71914b2f2b76ea0b22364589038c8244acde83ce..a23169aa0f1c2c5dc966f861d7487c63f9cdd032 100644 (file)
@@ -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)))))