Subject: bug#74382: `compile-first` Make rule is no longer using `load-prefer-newer`

From: Gerd Möllmann <[email-masked]>
Date: Sun, 17 Nov 2024 16:43:01 +0100

Konstantin Kharlamov <[email-masked]> writes:

> On Sun, 2024-11-17 at 08:25 +0100, Gerd Möllmann wrote:
>> Konstantin Kharlamov <[email-masked]> writes:
>> 
>> > Sure, I just reproduced it after removing all `.elc` files in the
>> > repo,
>> > here how:
>> > 
>> > 1. `git checkout f2f13fa630b` (a commit from April)
>> > 2. `make -j$(nproc)` to compile. Note: you don't need to wait for
>> > build
>> > to finish, I just waited for all files under `lisp/emacs-lisp`
>> > directory to finish compilation, and then ^C'ed it.
>> > 3. `git checkout 29098a291f5` (a November commit).
>> > 4. `make -j$(nproc)`
>> 
>> This would always work if lisp/Makefile would rm the .elc files from
>> COMPILE_FIRST, right? I suspect this isn't done to speed up the build
>> in
>> the usual case, and because it's a bit difficult to automatically
>> determine if it has to done or not.
>> 
>> Does a "make clean" after the checkout in (3) make it work?
>
> I don't think so, because `make clean` for some reason doesn't remove
> `.elc` artifacts.

Ah, right, it is bootstrap-clean that removes the .elc files.