Subject: bug#70842: closed (Re: bug#70842: 30.0.50; Native compilation and gmake in src)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 25 May 2024 15:23:02 +0000

Your bug report

#70842: 30.0.50; Native compilation and gmake in src

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
70842: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=70842
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#70842: 30.0.50; Native compilation and gmake in src
From: Andrea Corallo <[email-masked]>
To: Eli Zaretskii <[email-masked]>
Cc: Gerd Möllmann <[email-masked]>, [email-masked]
Date: Sat, 25 May 2024 11:22:08 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Eli Zaretskii <[email-masked]> writes:

> Ping!  Andrea, if you agree with Gerd's proposal, would you please
> install such a change?

Sorry missed this.

Installed and closing.

Thanks

  Andrea

Subject: 30.0.50; Native compilation and gmake in src
From: Gerd Möllmann <[email-masked]>
To: [email-masked]
Cc: Andrea Corallo <[email-masked]>
Date: Thu, 09 May 2024 07:58:49 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

(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'