From: Andrea Corallo Date: Wed, 9 Aug 2023 13:13:48 +0000 (+0200) Subject: Fix emacs-lisp-native-compile-and-load eln target directory (bug#64226) X-Git-Tag: emacs-29.1.90~236 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=b93107c20b2;p=emacs.git Fix emacs-lisp-native-compile-and-load eln target directory (bug#64226) * lisp/emacs-lisp/comp.el (comp-spill-lap-function): Don't use `byte+native-compile' to select output directory but always axpect it explicit through `native-compile-target-directory'. (batch-byte+native-compile): Set `native-compile-target-directory'. * test/src/comp-tests.el (comp-tests-bootstrap): Set `native-compile-target-directory'. --- diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el index 322df0e86a1..bdce4254bf5 100644 --- a/lisp/emacs-lisp/comp.el +++ b/lisp/emacs-lisp/comp.el @@ -1392,11 +1392,8 @@ clashes." (unless byte-to-native-top-level-forms (signal 'native-compiler-error-empty-byte filename)) (unless (comp-ctxt-output comp-ctxt) - (setf (comp-ctxt-output comp-ctxt) (comp-el-to-eln-filename - filename - (or native-compile-target-directory - (when byte+native-compile - (car (last native-comp-eln-load-path))))))) + (setf (comp-ctxt-output comp-ctxt) + (comp-el-to-eln-filename filename native-compile-target-directory))) (setf (comp-ctxt-speed comp-ctxt) (alist-get 'native-comp-speed byte-native-qualities) (comp-ctxt-debug comp-ctxt) (alist-get 'native-comp-debug @@ -4351,6 +4348,8 @@ variable \"NATIVE_DISABLED\" is set, only byte compile." (batch-byte-compile) (cl-assert (length= command-line-args-left 1)) (let* ((byte+native-compile t) + (native-compile-target-directory + (car (last native-comp-eln-load-path))) (byte-to-native-output-buffer-file nil) (eln-file (car (batch-native-compile)))) (comp-write-bytecode-file eln-file) diff --git a/test/src/comp-tests.el b/test/src/comp-tests.el index b0d865292b7..0e36a3c9190 100644 --- a/test/src/comp-tests.el +++ b/test/src/comp-tests.el @@ -70,9 +70,11 @@ Check that the resulting binaries do not differ." :suffix "-comp-stage1.el" (ert-with-temp-file comp2-src :suffix "-comp-stage2.el" - (let* ((byte+native-compile t) ; FIXME HACK + (let* ((byte+native-compile t) + (native-compile-target-directory + (car (last native-comp-eln-load-path))) (comp-src (expand-file-name "../../../lisp/emacs-lisp/comp.el" - (ert-resource-directory))) + (ert-resource-directory))) ;; Can't use debug symbols. (native-comp-debug 0)) (copy-file comp-src comp1-src t)