On Mon, Jul 25, 2022, 8:28 PM Lynn Winebarger wrote: > On Mon, Jul 25, 2022, 12:54 PM Stefan Monnier > wrote: > >> > Otherwise, I was able to resolve the various issues (including some >> > extensive surgery on vc/ediff-X files to stamp out the circular >> loading). >> > I am going to have to do a real bootstrap to avoid the "incoherent eln" >> > error, though, and somehow force native compilation for all the >> libraries >> > loaded in the dump (that are not on the compiler's "forbidden" list, >> > anyway). >> >> BTW, I don't really understand why you're bumping into circularity issue >> with things like ediff. I do know it has circularity issues, but they >> only affect compilation, AFAIK. >> > > The C code for the require form hits the panic button if it has to load > something when dump-mode is non-nil. Something similar happens when an > autoload is invoked during dump-mode, but I haven't looked for the exact > piece of code that does it so I don't know if it's C or lisp. > > So, I'm wondering: do you include "the world" in both dumps (the >> first, done to build `src/bootstrap-emacs.pdmp`, and the second to >> build the final `src/emacs.pdmp`) or do you include it only >> in the second dump? >> > > I initially was trying to just run the second one, but I got the > "incoherent ELN" error. So I set up a new build directory, did a fresh > configure followed by "make bootstrap". I had to further refine the > site-load.el to explicitly load everything required at compile time, wrap > every instance of any expression requiring a generated file with "unless > dump-mode" (since in dump-mode the site-load or loadup file must load all > the required files to work anyway). That fails when site-load starts > loading bits of cc-mode for the second dump since none of the files in > site-load are even byte-compiled with the bootstrap emacs. So I generated > a list of .elc targets from site-load (same method used for lisp.mk), > then put together a hacked Makefile in BUILD/lisp that ran the > bootstrap-emacs executable with the suffix rule from the standard > Makefile. That also failed with the incoherent ELN message. Then I > noticed the rule that uses the "byte-compile-refresh-preloaded" function, > so I'm trying that in the Makefile. However, I'm still waiting for the > preloaded files to finish native compiling. > > I'd be happy to follow the 3 step path to dumping, but I thought the whole > "no redumping support" prevented that approach. > Even native compiling using the bootstrap emacs with byte-compile-refresh-preloaded is failing. I might try redoing the bootstrap, then run the native compiler on the site-load files sequentially. That will take several hours at least, though. Lynn