Subject: bug#57309: 29.0.50; Build error "trying to dump non fixed-up eln file"

From: Eli Zaretskii <[email-masked]>
Date: Sun, 21 Aug 2022 13:58:23 +0300

> From: Gerd Möllmann <[email-masked]>
> Cc: [email-masked],  [email-masked],  [email-masked]
> Date: Sun, 21 Aug 2022 12:45:05 +0200
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> > I've removed src/emacs and src/bootstrap-emacs, and said "make".  That
> > succeeded, but most of the preloaded files were loaded as *.elc.  Then
> > I touch'ed every .el file that is preloaded, and said "make" again.
> > This ELC+ELN-compiled all of them, and then successfully loaded and
> > dumped them.
> >
> > Not sure what that means, but maybe try the same recipe?
> 
> That it succeeds is kind of what I'm afraid of :-).
> 
> I think Lars mentioned that a simple second make run made things work
> for him, and now I'm afraid if I leave the debugger or touch anything, I
> won't be able to reproduce the error again.
> 
> BTW, I think I've seen the same bug with the last change to Makefile.in,
> only with a different error message "...incoherent something...", where
> Lars mentioned he had seen that sort of error ca. once per month or so.
> 
> Something is really fishy here.

The *.eln files aren't regenerated unless the corresponding *.el files
are newer than their *.elc files.  This is a basic snafu we are living
with since the development of Emacs 28, and it still isn't resolved.
This happens even when Emacs changes in a way that requires a new
subdirectory under native-lisp/, which is a clear sign that the *.eln
files need to be regenerated.

So yes, something is definitely "fishy".  I suspect that the changes
Andrea did recently required a bump in the ABI_VERSION value, which
would then prevent Emacs from trying to load the old *.eln files.  But
maybe I'm missing something.  I hope Andrea chimes in soon.