Subject: 30.0.50; Native compilation and gmake in src

From: Gerd Möllmann <[email-masked]>
Date: Thu, 09 May 2024 07:58:49 +0200

(CC'd to Andrea.)

1. Start from a clean build with native compilation

2. Modify a .c file in src to trigger a recompilation

3. gmake in src

=> error "trying to dump non fixed-up eln file" when dumping
bootstrap-emacs.pdmp. Always.

I find this very inconvenient, esp. since this never happens without
native compilation. Only thing that works currently is to make in the
toplevel directory.

The reason for this is src/Makefile uses ELN_DESTDIR and BIN_DESTDIR in
rules, but does not contain definitions for them. In a toplevel make,
both are defined on the command line when invoking "gmake -C src
ELN_DESTDIR=...".

When making in src, ELN_DESTDIR is therefore empty, and temacs is called
with with --eln-dest empty. Loadup.el then does its thing and calls
load--fixup-all-elns before dumping. That function decides to not set
native compilation units' file member to a cons, and "trying to dump non
fixed-up eln file" is then issued when dumping such a CU.

I don't know what the right fix for this is, maybe load--fixup-all-elns
should work differently. As a workaround, it apparently suffices to add
default values to src/Makefile like so:

ELN_DESTDIR=not-set
BIN_DESTDIR=not-set

In GNU Emacs 30.0.50 (build 1, aarch64-apple-darwin23.4.0, NS
 appkit-2487.50 Version 14.4.1 (Build 23E224)) of 2024-05-04 built on
 pro2.fritz.box
Repository revision: fdfadd6f467063dc83032b4e0dbe4e7b96690670
Repository branch: master
Windowing system distributor 'Apple', version 10.3.2487
System Description:  macOS 14.4.1

Configured using:
 'configure --cache-file
 /var/folders/1d/k_6t25f94sl83szqbf8gpkrh0000gn/T//config.cache.master
 --with-native-compilation CC=clang'