Subject: bug#46256: [feature/native-comp] AOT eln files ignored if run from build tree

From: Eli Zaretskii <[email-masked]>
Date: Thu, 04 Mar 2021 23:33:20 +0200

> From: Andrea Corallo <[email-masked]>
> Cc: [email-masked]
> Date: Thu, 04 Mar 2021 20:11:27 +0000
> 
> > Now I make some change in Emacs that modifies the ABI hash, and
> > rebuild.  The previous subdirectory of native-lisp/ is no longer
> > valid; if I modify some of the preloaded Lisp files, a new .eln file
> > is produced in a new subdirectory of native-lisp/.  But now that new
> > subdirectory has only the *.eln files for those Lisp files I modified
> > _after_ the ABI-changing change.  Which means most of the preloaded
> > files do not have *.eln files in the native-lisp/ subdirectory that
> > corresponds to the latest ABI.  Does this mean Emacs now falls back to
> > using *.elc files when it produces the emacs.pdmp file?
> 
> Yes, I think so.  ATM if the ABI hash is modified something like 'make
> bootstrap' is needed to re-build all .eln.

Ouch!  We should fix that, because making ABI-breaking changes in the
tree is a frequent case during development, and bootstrap removes all
the previous binaries, which is why I never bootstrap.

So currently the only way to fill up a newly created subdirectory of
native-lisp/ is to manually delete the *.elc files of all the files in
lisp.mk's $shortlisp list, is that sufficient?