]> git.eshelyaron.com Git - emacs.git/commitdiff
* Fix `byte-compile-file' for native compilation (bug#45442)
authorAndrea Corallo <akrl@sdf.org>
Sat, 26 Dec 2020 19:16:26 +0000 (20:16 +0100)
committerAndrea Corallo <akrl@sdf.org>
Sat, 26 Dec 2020 19:38:36 +0000 (20:38 +0100)
* lisp/emacs-lisp/bytecomp.el (byte-compile-file): Fix logic for
native compilation.

lisp/emacs-lisp/bytecomp.el

index 620f15c619d8aeea2aeec209f8edc71da12c46af..9f5d121024a5d42a640b9d59d7c68b37327644ff 100644 (file)
@@ -2020,16 +2020,16 @@ See also `emacs-lisp-byte-compile-and-load'."
          (insert "\n")                 ; aaah, unix.
          (cond
           ((null target-file) nil)     ;We only wanted the warnings!
-          ((and (or (file-writable-p target-file)
-                    byte-native-compiling)
-                 ;; We attempt to create a temporary file in the
-                 ;; target directory, so the target directory must be
-                 ;; writable.
-                 (file-writable-p
-                  (file-name-directory
-                   ;; Need to expand in case TARGET-FILE doesn't
-                   ;; include a directory (Bug#45287).
-                   (expand-file-name target-file))))
+          ((or byte-native-compiling
+               (and (file-writable-p target-file)
+                    ;; We attempt to create a temporary file in the
+                    ;; target directory, so the target directory must be
+                    ;; writable.
+                    (file-writable-p
+                     (file-name-directory
+                      ;; Need to expand in case TARGET-FILE doesn't
+                      ;; include a directory (Bug#45287).
+                      (expand-file-name target-file)))))
            ;; We must disable any code conversion here.
            (let* ((coding-system-for-write 'no-conversion)
                   ;; Write to a tempfile so that if another Emacs
@@ -2037,7 +2037,8 @@ See also `emacs-lisp-byte-compile-and-load'."
                   ;; parallel bootstrap), it does not risk getting a
                   ;; half-finished file.  (Bug#4196)
                   (tempfile
-                   (make-temp-file (expand-file-name target-file)))
+                   (make-temp-file (when (file-writable-p target-file)
+                                      (expand-file-name target-file))))
                   (default-modes (default-file-modes))
                   (temp-modes (logand default-modes #o600))
                   (desired-modes (logand default-modes #o666))