From b93107c20b2899612c5c7a15187fc69866905e47 Mon Sep 17 00:00:00 2001 From: Andrea Corallo Date: Wed, 9 Aug 2023 15:13:48 +0200 Subject: [PATCH] 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'. --- lisp/emacs-lisp/comp.el | 9 ++++----- test/src/comp-tests.el | 6 ++++-- 2 files changed, 8 insertions(+), 7 deletions(-) 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) -- 2.39.2