> 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.