summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am1
-rw-r--r--gnu/packages/aux-files/emacs/comp-integrity-next.el121
-rw-r--r--gnu/packages/aux-files/emacs/comp-integrity.el39
-rw-r--r--gnu/packages/emacs.scm9
-rw-r--r--gnu/packages/patches/emacs-exec-path.patch26
-rw-r--r--gnu/packages/patches/emacs-native-comp-driver-options.patch7
-rw-r--r--gnu/packages/patches/emacs-native-comp-fix-filenames.patch93
7 files changed, 84 insertions, 212 deletions
diff --git a/Makefile.am b/Makefile.am
index 8b8f4ccdcd3..85c85a574fe 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -438,7 +438,6 @@ dist_noinst_DATA = \
438AUX_FILES = \ 438AUX_FILES = \
439 gnu/packages/aux-files/chromium/master-preferences.json \ 439 gnu/packages/aux-files/chromium/master-preferences.json \
440 gnu/packages/aux-files/emacs/comp-integrity.el \ 440 gnu/packages/aux-files/emacs/comp-integrity.el \
441 gnu/packages/aux-files/emacs/comp-integrity-next.el \
442 gnu/packages/aux-files/emacs/guix-emacs.el \ 441 gnu/packages/aux-files/emacs/guix-emacs.el \
443 gnu/packages/aux-files/findclass.php \ 442 gnu/packages/aux-files/findclass.php \
444 gnu/packages/aux-files/guix.vim \ 443 gnu/packages/aux-files/guix.vim \
diff --git a/gnu/packages/aux-files/emacs/comp-integrity-next.el b/gnu/packages/aux-files/emacs/comp-integrity-next.el
deleted file mode 100644
index 74ee0952f43..00000000000
--- a/gnu/packages/aux-files/emacs/comp-integrity-next.el
+++ /dev/null
@@ -1,121 +0,0 @@
1(require 'ert)
2
3(eval-when-compile
4 (defmacro expect-feature (&optional feature)
5 `(progn
6 (eval-when-compile
7 (or (not ',feature)
8 (require ',feature)))))
9
10 (defmacro expect-native (fun &optional feature)
11 `(progn
12 (expect-feature ,feature)
13 (should (native-comp-function-p (symbol-function ',fun)))))
14
15
16 (defmacro expect-native-if-bound (fun &optional feature)
17 `(and (expect-feature ,feature)
18 (boundp ',fun)
19 (should (native-comp-function-p (symbol-function ',fun)))))
20
21 (defmacro expect-builtin (fun &optional feature)
22 `(should (primitive-function-p (symbol-function ',fun)))))
23
24(expect-native abbrev-mode)
25(expect-native backquote-process)
26(expect-native mode-line-widen)
27(expect-native buffer-menu)
28(expect-native button-mode)
29(expect-native byte-run-strip-symbol-positions)
30(expect-native case-table-get-table)
31(expect-native cconv-convert)
32(expect-native use-default-char-width-table)
33(expect-native cl-generic-p)
34(expect-native cl-struct-define)
35(expect-native-if-bound x-setup-function-keys)
36(expect-native encode-composition-rule)
37(expect-native custom-declare-face)
38(expect-native minibuffer-prompt-properties--setter)
39(expect-native custom-add-choice)
40(expect-native debug-early)
41(expect-native display-table-slot disp-table)
42(expect-native dnd-open-file)
43(expect-native dos-mode25 dos-fns)
44(expect-native find-file-text dos-w32)
45(expect-native-if-bound dynamic-setting-handle-config-changed-event)
46(expect-native easy-menu-item-present-p)
47(expect-native eldoc-mode)
48(expect-native electric-indent-mode)
49(expect-native elisp-mode-syntax-propertize)
50(expect-native getenv)
51(expect-native epa-file-find-file-hook)
52(expect-native face-list)
53(expect-native find-file-noselect)
54(expect-native fill-region)
55(expect-native font-lock-change-mode)
56(expect-native font-lock-add-keywords)
57(expect-native-if-bound fontset-plain-name)
58(expect-native format-read)
59(expect-native frame-edges)
60(expect-native-if-bound fringe-mode)
61(expect-native help-quick)
62(expect-native-if-bound image-type)
63(expect-native indent-region)
64(expect-native indian-compose-regexp)
65(expect-native msdos-setup-keyboard term/internal)
66(expect-native isearch-abort)
67(expect-native iso-transl-set-language)
68(expect-native jit-lock-mode)
69(expect-native jka-compr-build-file-regexp)
70(expect-native keymap-global-set)
71(expect-native forward-sexp)
72(expect-native lisp-string-in-doc-position-p)
73(expect-native ls-lisp-set-options ls-lisp)
74(expect-native macroexp-compiling-p)
75(expect-native map-y-or-n-p)
76(expect-native menu-find-file-existing)
77(expect-native completion-boundaries)
78(expect-native egyptian-shape-grouping)
79(expect-native mouse-double-click-time)
80(expect-native convert-define-charset-argument)
81(expect-native coding-system-change-eol-conversion)
82(expect-native store-substring mule-util)
83(expect-native-if-bound mouse-wheel-change-button)
84(expect-native advice-function-mapc)
85(expect-native comment-string-strip)
86(expect-builtin obarray-make)
87(expect-native obarray-map)
88(expect-native oclosure-type)
89(expect-native forward-page)
90(expect-native sentence-end)
91(expect-native show-paren-function)
92(expect-native pgtk-dnd-init-frame pgtk-dnd)
93(expect-native prog-context-menu)
94(expect-native-if-bound regexp-opt)
95(expect-native get-register)
96(expect-native query-replace-descr)
97(expect-native rfn-eshadow-setup-minibuffer)
98(expect-native read-multiple-choice)
99(expect-native-if-bound scroll-bar-scale)
100(expect-native gui-select-text)
101(expect-native seq-first)
102(expect-native hack-read-symbol-shorthands)
103(expect-native next-error-find-buffer)
104(expect-native exit-splash-screen)
105(expect-native buffer-local-boundp)
106(expect-native syntax-propertize-multiline)
107(expect-native tab-bar-mode)
108(expect-native tabulated-list-put-tag)
109(expect-native text-mode)
110(expect-native timer-activate)
111(expect-native tool-bar-mode)
112(expect-native tooltip-mode)
113(expect-native tty-color-desc)
114(expect-native ucs-normalize-hfs-nfd-comp-p ucs-normalize)
115(expect-native uniquify-item-p)
116(expect-native vc-mode)
117(expect-native emacs-version)
118(expect-native define-widget)
119(expect-native window-right)
120(expect-native x-dnd-init-frame x-dnd)
121(expect-native-if-bound x-handle-no-bitmap-icon)
diff --git a/gnu/packages/aux-files/emacs/comp-integrity.el b/gnu/packages/aux-files/emacs/comp-integrity.el
index abe7e7c0c9c..74ee0952f43 100644
--- a/gnu/packages/aux-files/emacs/comp-integrity.el
+++ b/gnu/packages/aux-files/emacs/comp-integrity.el
@@ -1,34 +1,25 @@
1(require 'ert) 1(require 'ert)
2 2
3(eval-when-compile 3(eval-when-compile
4 (require 'help-fns) 4 (defmacro expect-feature (&optional feature)
5
6 (defmacro expect-help (fun result &optional feature)
7 `(progn 5 `(progn
8 (eval-when-compile (when ',feature 6 (eval-when-compile
9 (require ',feature))) 7 (or (not ',feature)
10 8 (require ',feature)))))
11 (ert-deftest ,(intern (concat "expect-" (symbol-name fun)
12 "-" (symbol-name result)))
13 ()
14 (should
15 (eq ',result
16 (let ((desc (substring-no-properties
17 (with-output-to-string
18 (help-fns-function-description-header ',fun)))))
19 (cond ((string-search "native-compiled" desc) 'native)
20 ((string-search "byte-compiled" desc) 'byte)
21 ((string-search "built-in" desc) 'built-in)
22 (t nil))))))))
23 9
24 (defmacro expect-native (fun &optional feature) 10 (defmacro expect-native (fun &optional feature)
25 `(progn (expect-help ,fun native ,feature))) 11 `(progn
12 (expect-feature ,feature)
13 (should (native-comp-function-p (symbol-function ',fun)))))
14
26 15
27 (defmacro expect-native-if-bound (fun) 16 (defmacro expect-native-if-bound (fun &optional feature)
28 `(and (boundp ',fun) (expect-help ,fun native))) 17 `(and (expect-feature ,feature)
18 (boundp ',fun)
19 (should (native-comp-function-p (symbol-function ',fun)))))
29 20
30 (defmacro expect-builtin (fun &optional feature) 21 (defmacro expect-builtin (fun &optional feature)
31 `(progn (expect-help ,fun built-in ,feature)))) 22 `(should (primitive-function-p (symbol-function ',fun)))))
32 23
33(expect-native abbrev-mode) 24(expect-native abbrev-mode)
34(expect-native backquote-process) 25(expect-native backquote-process)
@@ -92,9 +83,7 @@
92(expect-native-if-bound mouse-wheel-change-button) 83(expect-native-if-bound mouse-wheel-change-button)
93(expect-native advice-function-mapc) 84(expect-native advice-function-mapc)
94(expect-native comment-string-strip) 85(expect-native comment-string-strip)
95(if (>= emacs-major-version 30) 86(expect-builtin obarray-make)
96 (expect-builtin obarray-make)
97 (expect-native obarray-make))
98(expect-native obarray-map) 87(expect-native obarray-map)
99(expect-native oclosure-type) 88(expect-native oclosure-type)
100(expect-native forward-page) 89(expect-native forward-page)
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index fb72b275444..1230a6aaf19 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -101,7 +101,7 @@
101(define-public emacs-minimal 101(define-public emacs-minimal
102 (package 102 (package
103 (name "emacs-minimal") 103 (name "emacs-minimal")
104 (version "29.4") 104 (version "30.1")
105 ;; Note: When using (replacement …), ensure that comp-native-version-dir 105 ;; Note: When using (replacement …), ensure that comp-native-version-dir
106 ;; stays the same across grafts. 106 ;; stays the same across grafts.
107 ;; Run `make check-system TESTS=emacs-native-comp' to ensure that grafts 107 ;; Run `make check-system TESTS=emacs-native-comp' to ensure that grafts
@@ -112,7 +112,7 @@
112 version ".tar.xz")) 112 version ".tar.xz"))
113 (sha256 113 (sha256
114 (base32 114 (base32
115 "0dd2mh6maa7dc5f49qdzj7bi4hda4wfm1cvvgq560djcz537k2ds")) 115 "13qkdx515qv7m8b2mpd37p16frs0xgl7bw8xvv397bz6fspc3jkc"))
116 (patches (search-patches "emacs-disable-jit-compilation.patch" 116 (patches (search-patches "emacs-disable-jit-compilation.patch"
117 "emacs-exec-path.patch" 117 "emacs-exec-path.patch"
118 "emacs-fix-scheme-indent-function.patch" 118 "emacs-fix-scheme-indent-function.patch"
@@ -173,7 +173,6 @@
173 "lisp/mail/feedmail.el" 173 "lisp/mail/feedmail.el"
174 "lisp/obsolete/pgg-pgp.el" 174 "lisp/obsolete/pgg-pgp.el"
175 "lisp/obsolete/pgg-pgp5.el" 175 "lisp/obsolete/pgg-pgp5.el"
176 "lisp/obsolete/terminal.el"
177 "lisp/org/ob-eval.el" 176 "lisp/org/ob-eval.el"
178 "lisp/textmodes/artist.el" 177 "lisp/textmodes/artist.el"
179 "lisp/progmodes/sh-script.el" 178 "lisp/progmodes/sh-script.el"
@@ -730,10 +729,6 @@ Started in 2014 as a GSOC project, Guile-Emacs was resurrected in 2024.")
730 ;; Likewise, we don't need to patch helper binaries 729 ;; Likewise, we don't need to patch helper binaries
731 ;; like etags, ctags or ebrowse. 730 ;; like etags, ctags or ebrowse.
732 "^emacs(-[0-9]+(\\.[0-9]+)*)?$"))))) 731 "^emacs(-[0-9]+(\\.[0-9]+)*)?$")))))
733 (add-after 'unpack 'help-patch-progam-file-names
734 (lambda _
735 (call-with-output-file "lisp/obsolete/terminal.el"
736 (lambda (port) (display port)))))
737 (add-after 'configure 'touch-lisp/finder-inf.el 732 (add-after 'configure 'touch-lisp/finder-inf.el
738 (lambda _ 733 (lambda _
739 (call-with-output-file "lisp/finder-inf.el" 734 (call-with-output-file "lisp/finder-inf.el"
diff --git a/gnu/packages/patches/emacs-exec-path.patch b/gnu/packages/patches/emacs-exec-path.patch
index 9a76b0237de..6e33e252589 100644
--- a/gnu/packages/patches/emacs-exec-path.patch
+++ b/gnu/packages/patches/emacs-exec-path.patch
@@ -2,15 +2,17 @@ Do not capture the build-time value of $PATH in the 'emacs' executable
2since this can noticeably increase the size of the closure of Emacs 2since this can noticeably increase the size of the closure of Emacs
3with things like GCC being referenced. 3with things like GCC being referenced.
4 4
5--- a/lisp/loadup.el 5Index: emacs-next/lisp/loadup.el
6+++ b/lisp/loadup.el 6===================================================================
7@@ -530,7 +530,8 @@ lost after dumping"))) 7--- emacs-next.orig/lisp/loadup.el
8 ((equal dump-mode "dump") "emacs") 8+++ emacs-next/lisp/loadup.el
9 ((equal dump-mode "bootstrap") "emacs") 9@@ -599,7 +599,8 @@ lost after dumping")))
10 ((equal dump-mode "pbootstrap") "bootstrap-emacs.pdmp") 10 ((equal dump-mode "dump") "emacs")
11- (t (error "Unrecognized dump mode %s" dump-mode))))) 11 ((equal dump-mode "bootstrap") "emacs")
12+ (t (error "Unrecognized dump mode %s" dump-mode)))) 12 ((equal dump-mode "pbootstrap") "bootstrap-emacs.pdmp")
13+ (exec-path nil)) 13- (t (error "Unrecognized dump mode %s" dump-mode)))))
14 (when (and (featurep 'native-compile) 14+ (t (error "Unrecognized dump mode %s" dump-mode))))
15 (equal dump-mode "pdump")) 15+ (exec-path nil))
16 ;; Don't enable this before bootstrap is completed, as the 16 (when (and (featurep 'native-compile)
17 (equal dump-mode "pdump"))
18 ;; Don't enable this before bootstrap is completed, as the
diff --git a/gnu/packages/patches/emacs-native-comp-driver-options.patch b/gnu/packages/patches/emacs-native-comp-driver-options.patch
index 308c4f1212a..e4ed5a48f1d 100644
--- a/gnu/packages/patches/emacs-native-comp-driver-options.patch
+++ b/gnu/packages/patches/emacs-native-comp-driver-options.patch
@@ -2,12 +2,13 @@ We substitute this anyway, so let's make it easier to substitute.
2 2
3--- a/lisp/emacs-lisp/comp.el 3--- a/lisp/emacs-lisp/comp.el
4+++ b/lisp/emacs-lisp/comp.el 4+++ b/lisp/emacs-lisp/comp.el
5@@ -178,8 +178,7 @@ and above." 5@@ -203,9 +203,7 @@ and above."
6 :type '(repeat string) 6 :type '(repeat string)
7 :version "28.1") 7 :version "28.1")
8 8
9-(defcustom native-comp-driver-options (when (eq system-type 'darwin) 9-(defcustom native-comp-driver-options
10- '("-Wl,-w")) 10- (cond ((eq system-type 'darwin) '("-Wl,-w"))
11- ((eq system-type 'cygwin) '("-Wl,-dynamicbase")))
11+(defcustom native-comp-driver-options nil 12+(defcustom native-comp-driver-options nil
12 "Options passed verbatim to the native compiler's back-end driver. 13 "Options passed verbatim to the native compiler's back-end driver.
13 Note that not all options are meaningful; typically only the options 14 Note that not all options are meaningful; typically only the options
diff --git a/gnu/packages/patches/emacs-native-comp-fix-filenames.patch b/gnu/packages/patches/emacs-native-comp-fix-filenames.patch
index 169323f290e..7897fa9b048 100644
--- a/gnu/packages/patches/emacs-native-comp-fix-filenames.patch
+++ b/gnu/packages/patches/emacs-native-comp-fix-filenames.patch
@@ -12,11 +12,11 @@ way into the actual variable despite attempts to remove it by calling
12The user-visible procedure ‘startup-redirect-eln-cache’ is kept, as 12The user-visible procedure ‘startup-redirect-eln-cache’ is kept, as
13packages may require it, but only pushes the new value now. 13packages may require it, but only pushes the new value now.
14 14
15Index: emacs-29.2/src/comp.c 15Index: emacs-next/src/comp.c
16=================================================================== 16===================================================================
17--- emacs-29.2.orig/src/comp.c 17--- emacs-next.orig/src/comp.c
18+++ emacs-29.2/src/comp.c 18+++ emacs-next/src/comp.c
19@@ -4396,26 +4396,17 @@ DEFUN ("comp-el-to-eln-rel-filename", Fc 19@@ -4403,26 +4403,17 @@ DEFUN ("comp-el-to-eln-rel-filename", Fc
20 Scomp_el_to_eln_rel_filename, 1, 1, 0, 20 Scomp_el_to_eln_rel_filename, 1, 1, 0,
21 doc: /* Return the relative name of the .eln file for FILENAME. 21 doc: /* Return the relative name of the .eln file for FILENAME.
22 FILENAME must exist, and if it's a symlink, the target must exist. 22 FILENAME must exist, and if it's a symlink, the target must exist.
@@ -49,7 +49,7 @@ Index: emacs-29.2/src/comp.c
49 if (NILP (Ffile_exists_p (filename))) 49 if (NILP (Ffile_exists_p (filename)))
50 xsignal1 (Qfile_missing, filename); 50 xsignal1 (Qfile_missing, filename);
51 51
52@@ -4423,64 +4414,55 @@ one for the file name and another for it 52@@ -4430,64 +4421,55 @@ one for the file name and another for it
53 filename = Fw32_long_file_name (filename); 53 filename = Fw32_long_file_name (filename);
54 #endif 54 #endif
55 55
@@ -157,7 +157,7 @@ Index: emacs-29.2/src/comp.c
157 } 157 }
158 158
159 DEFUN ("comp-el-to-eln-filename", Fcomp_el_to_eln_filename, 159 DEFUN ("comp-el-to-eln-filename", Fcomp_el_to_eln_filename,
160@@ -4494,13 +4476,7 @@ If BASE-DIR is non-nil, use it as the di 160@@ -4501,13 +4483,7 @@ If BASE-DIR is non-nil, use it as the di
161 non-absolute BASE-DIR is interpreted as relative to `invocation-directory'. 161 non-absolute BASE-DIR is interpreted as relative to `invocation-directory'.
162 If BASE-DIR is omitted or nil, look for the first writable directory 162 If BASE-DIR is omitted or nil, look for the first writable directory
163 in `native-comp-eln-load-path', and use as BASE-DIR its subdirectory 163 in `native-comp-eln-load-path', and use as BASE-DIR its subdirectory
@@ -172,7 +172,7 @@ Index: emacs-29.2/src/comp.c
172 (Lisp_Object filename, Lisp_Object base_dir) 172 (Lisp_Object filename, Lisp_Object base_dir)
173 { 173 {
174 Lisp_Object source_filename = filename; 174 Lisp_Object source_filename = filename;
175@@ -4548,10 +4524,11 @@ the latter is supposed to be used by the 175@@ -4555,10 +4531,11 @@ the latter is supposed to be used by the
176 Lisp_Object lisp_preloaded = 176 Lisp_Object lisp_preloaded =
177 Fgetenv_internal (build_string ("LISP_PRELOADED"), Qnil); 177 Fgetenv_internal (build_string ("LISP_PRELOADED"), Qnil);
178 base_dir = Fexpand_file_name (Vcomp_native_version_dir, base_dir); 178 base_dir = Fexpand_file_name (Vcomp_native_version_dir, base_dir);
@@ -186,7 +186,7 @@ Index: emacs-29.2/src/comp.c
186 CALL1I (split-string, lisp_preloaded)))))) 186 CALL1I (split-string, lisp_preloaded))))))
187 base_dir = Fexpand_file_name (build_string ("preloaded"), base_dir); 187 base_dir = Fexpand_file_name (build_string ("preloaded"), base_dir);
188 188
189@@ -5863,10 +5840,7 @@ The last directory of this list is assum 189@@ -5875,10 +5852,7 @@ The last directory of this list is assum
190 the system *.eln files, which are the files produced when building 190 the system *.eln files, which are the files produced when building
191 Emacs. */); 191 Emacs. */);
192 192
@@ -198,11 +198,11 @@ Index: emacs-29.2/src/comp.c
198 198
199 DEFVAR_LISP ("native-comp-enable-subr-trampolines", 199 DEFVAR_LISP ("native-comp-enable-subr-trampolines",
200 Vnative_comp_enable_subr_trampolines, 200 Vnative_comp_enable_subr_trampolines,
201Index: emacs-29.2/lisp/startup.el 201Index: emacs-next/lisp/startup.el
202=================================================================== 202===================================================================
203--- emacs-29.2.orig/lisp/startup.el 203--- emacs-next.orig/lisp/startup.el
204+++ emacs-29.2/lisp/startup.el 204+++ emacs-next/lisp/startup.el
205@@ -545,9 +545,6 @@ DIRS are relative." 205@@ -527,9 +527,6 @@ DIRS are relative."
206 (defvar native-comp-jit-compilation) 206 (defvar native-comp-jit-compilation)
207 (defvar native-comp-enable-subr-trampolines) 207 (defvar native-comp-enable-subr-trampolines)
208 208
@@ -212,7 +212,7 @@ Index: emacs-29.2/lisp/startup.el
212 (defun startup-redirect-eln-cache (cache-directory) 212 (defun startup-redirect-eln-cache (cache-directory)
213 "Redirect the user's eln-cache directory to CACHE-DIRECTORY. 213 "Redirect the user's eln-cache directory to CACHE-DIRECTORY.
214 CACHE-DIRECTORY must be a single directory, a string. 214 CACHE-DIRECTORY must be a single directory, a string.
215@@ -558,22 +555,10 @@ to `user-emacs-directory'. 215@@ -540,22 +537,10 @@ to `user-emacs-directory'.
216 For best results, call this function in your early-init file, 216 For best results, call this function in your early-init file,
217 so that the rest of initialization and package loading uses 217 so that the rest of initialization and package loading uses
218 the updated value." 218 the updated value."
@@ -232,10 +232,10 @@ Index: emacs-29.2/lisp/startup.el
232- (setq startup--original-eln-load-path 232- (setq startup--original-eln-load-path
233- (copy-sequence native-comp-eln-load-path)))) 233- (copy-sequence native-comp-eln-load-path))))
234- 234-
235 (defun normal-top-level () 235 (defun startup--rescale-elt-match-p (font-pattern font-object)
236 "Emacs calls this function when it first starts up. 236 "Test whether FONT-OBJECT matches an element of `face-font-rescale-alist'.
237 It sets `command-line-processed', processes the command-line, 237 FONT-OBJECT is a font-object that specifies a font to test.
238@@ -1362,12 +1347,6 @@ please check its value") 238@@ -1383,12 +1368,6 @@ please check its value")
239 startup-init-directory))) 239 startup-init-directory)))
240 (setq early-init-file user-init-file) 240 (setq early-init-file user-init-file)
241 241
@@ -248,7 +248,7 @@ Index: emacs-29.2/lisp/startup.el
248 ;; If any package directory exists, initialize the package system. 248 ;; If any package directory exists, initialize the package system.
249 (and user-init-file 249 (and user-init-file
250 package-enable-at-startup 250 package-enable-at-startup
251@@ -1502,12 +1481,6 @@ please check its value") 251@@ -1523,12 +1502,6 @@ please check its value")
252 startup-init-directory)) 252 startup-init-directory))
253 t) 253 t)
254 254
@@ -261,10 +261,10 @@ Index: emacs-29.2/lisp/startup.el
261 (when (and deactivate-mark transient-mark-mode) 261 (when (and deactivate-mark transient-mark-mode)
262 (with-current-buffer (window-buffer) 262 (with-current-buffer (window-buffer)
263 (deactivate-mark))) 263 (deactivate-mark)))
264Index: emacs-29.2/lisp/loadup.el 264Index: emacs-next/lisp/loadup.el
265=================================================================== 265===================================================================
266--- emacs-29.2.orig/lisp/loadup.el 266--- emacs-next.orig/lisp/loadup.el
267+++ emacs-29.2/lisp/loadup.el 267+++ emacs-next/lisp/loadup.el
268@@ -53,6 +53,14 @@ 268@@ -53,6 +53,14 @@
269 (setq redisplay--inhibit-bidi t) 269 (setq redisplay--inhibit-bidi t)
270 270
@@ -280,9 +280,16 @@ Index: emacs-29.2/lisp/loadup.el
280 280
281 ;; Add subdirectories to the load-path for files that might get 281 ;; Add subdirectories to the load-path for files that might get
282 ;; autoloaded when bootstrapping or running Emacs normally. 282 ;; autoloaded when bootstrapping or running Emacs normally.
283@@ -494,22 +502,20 @@ lost after dumping"))) 283@@ -538,27 +546,25 @@ This to have it working when installed o
284 (concat eln-dest-dir "native-lisp/" comp-native-version-dir "/")) 284 directory got moved. This is set to be a pair in the form of:
285 \(rel-filename-from-install-bin . rel-filename-from-local-bin)."
286 (when (and load--bin-dest-dir load--eln-dest-dir)
287- (setq eln-dest-dir
288- (concat load--eln-dest-dir "native-lisp/" comp-native-version-dir "/"))
289+ (setq load--eln-versioned-dest-dir
290+ (concat load--eln-dest-dir "native-lisp/" comp-native-version-dir "/"))
285 (maphash (lambda (_ cu) 291 (maphash (lambda (_ cu)
292 (when (stringp (native-comp-unit-file cu))
286 (let* ((file (native-comp-unit-file cu)) 293 (let* ((file (native-comp-unit-file cu))
287- (preloaded (equal (substring (file-name-directory file) 294- (preloaded (equal (substring (file-name-directory file)
288- -10 -1) 295- -10 -1)
@@ -302,33 +309,33 @@ Index: emacs-29.2/lisp/loadup.el
302- (file-name-nondirectory 309- (file-name-nondirectory
303- file) 310- file)
304- eln-dest-dir-eff) 311- eln-dest-dir-eff)
305- bin-dest-dir) 312- load--bin-dest-dir)
306+ (file-relative-name 313+ (file-relative-name
307+ (expand-file-name 314+ (expand-file-name
308+ (save-match-data 315+ (save-match-data
309+ (string-match native-lisp-needle file) 316+ (string-match native-lisp-needle file)
310+ (substring file (match-end 0))) 317+ (substring file (match-end 0)))
311+ eln-dest-dir) 318+ load--eln-versioned-dest-dir)
312+ bin-dest-dir) 319+ load--bin-dest-dir)
313 ;; Relative filename from the built uninstalled binary. 320 ;; Relative filename from the built uninstalled binary.
314 (file-relative-name file invocation-directory))))) 321 (file-relative-name file invocation-directory))))))
315 comp-loaded-comp-units-h))) 322 comp-loaded-comp-units-h)))
316@@ -557,7 +563,9 @@ lost after dumping"))) 323@@ -644,7 +650,9 @@ directory got moved. This is set to be
317 (equal dump-mode "pdump")) 324 (equal dump-mode "pdump"))
318 ;; Don't enable this before bootstrap is completed, as the 325 ;; Don't enable this before bootstrap is completed, as the
319 ;; compiler infrastructure may not be usable yet. 326 ;; compiler infrastructure may not be usable yet.
320- (setq native-comp-enable-subr-trampolines t)) 327- (setq native-comp-enable-subr-trampolines t))
321+ (setq native-comp-enable-subr-trampolines t 328+ (setq native-comp-enable-subr-trampolines t
322+ ;; We loaded everything we could. 329+ ;; We loaded everything we could.
323+ comp-file-preloaded-p nil)) 330+ comp-file-preloaded-p nil))
324 (message "Dumping under the name %s" output) 331 (message "Dumping under the name %s" output)
325 (condition-case () 332 (condition-case ()
326 (delete-file output) 333 (delete-file output)
327Index: emacs-29.2/src/Makefile.in 334Index: emacs-next/src/Makefile.in
328=================================================================== 335===================================================================
329--- emacs-29.2.orig/src/Makefile.in 336--- emacs-next.orig/src/Makefile.in
330+++ emacs-29.2/src/Makefile.in 337+++ emacs-next/src/Makefile.in
331@@ -553,6 +553,7 @@ shortlisp := $(filter-out ${shortlisp_fi 338@@ -591,6 +591,7 @@ shortlisp := $(filter-out ${shortlisp_fi
332 ## We don't really need to sort, but may as well use it to remove duplicates. 339 ## We don't really need to sort, but may as well use it to remove duplicates.
333 shortlisp := loaddefs.el loadup.el $(sort ${shortlisp}) 340 shortlisp := loaddefs.el loadup.el $(sort ${shortlisp})
334 export LISP_PRELOADED = ${shortlisp} 341 export LISP_PRELOADED = ${shortlisp}