Subject: Re: bug#47067: 28.0.50; [feature/native-comp] Crash while scrolling through dispnew.c

From: Eli Zaretskii <[email-masked]>
Date: Mon, 05 Apr 2021 21:19:38 +0300

> From: Andrea Corallo <[email-masked]>
> Cc: [email-masked]
> Date: Mon, 05 Apr 2021 18:04:53 +0000
> 
> >  . If I manually recompile a preloaded .el file, like this:
> >
> >      emacs -batch -l comp -f batch-byte-native-compile-for-bootstrap ../lisp/isearch.el
> >
> >    then the produced .eln file is written not into the preloaded
> >    folder, but into its parent, i.e. native-lisp/28.0.50-NNNNNN/.
> >
> > And here is the possible link between these two issues: if I start
> > Emacs after compiling preloaded files manually as above, then Emacs
> > seems to load the *.eln files from native-lisp/28.0.50-NNNNNN/, not
> > from native-lisp/28.0.50-NNNNNN/preloaded, and the problems with the
> > backtraces miraculously disappear!
> >
> > Any idea what is going on here?
> 
> I think I understand the second issue (at least):
> 
> ATM which file is preloaded and which is not is suggested by the build
> system to Emacs (using the LISP_PRELOADED env var) so that Emacs decides
> where to depose the eln.  Unfortunately when the build system is by
> passed with a manual invocation Emacs is unaware of this information and
> not targeting the preloaded sub-directory.
> 
> Not sure what's the best strategy to improve this.

How about a boolean variable comp-file-preloaded-p, which could be set
to signal to comp.el that the file being compiled should be preloaded?
Then the manual command would need to set that via -eval.