This actually seems to be caused by the pdmp failing to load.
`make install` installs the pdmp file as `EMACS_PDMP = `./src/emacs${EXEEXT} --fingerprint`.pdmp`. However, this is not the filename that emacs tries to load - it attempts to load it from the wrong directory, which fails.
That seems to be why `initialized` is false, and why uniscribe / harfbuzz is not loaded. If I rename the emacs-<fingerprint>.pdmp file to emacs.pdmp, and place it next to emacs.exe everything works as expected (and emacs loads a lot faster!).
I did a procmon dump to see what .pdmp files emacs.exe is trying to load, and it attempts these locations:
- E:\dev\emacs-src\bin\emacs.pdmp
- E:\dev\emacs-src\libexec\emacs\30.0.50\x86_64-w64-mingw32\emacs-ef314e5e05618ae9e98f9cccc0769b2adce721d1b3bac00e305e61b4d457b0a4.pdmp
- E:\dev\emacs-src\libexec\emacs\30.0.50\x86_64-w64-mingw32\emacs.pdmp
The thing is, the emacs version is 30.0.90, not 30.0.50.
A strings dump of emacs.exe:
strings emacs.exe | grep 30.0
%emacs_dir%/libexec/emacs/30.0.50/x86_64-w64-mingw32
$Id: GNU Emacs 30.0.90 (x86_64-w64-mingw32 ACL GIF GMP GNUTLS HARFBUZZ JPEG LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY W32NOTIFY PDUMPER PNG RSVG SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XPM ZLIB) $
30.0.90
%emacs_dir%/share/emacs/30.0.90/lisp
%emacs_dir%/share/emacs/30.0.90/site-lisp;%emacs_dir%/share/emacs/site-lisp
/30.0.90/lisp/
%emacs_dir%/share/emacs/30.0.90/etc
%emacs_dir%/libexec/emacs/30.0.90/x86_64-w64-mingw32
%emacs_dir%/libexec/emacs/30.0.50/x86_64-w64-mingw32
So it seems something is going wrong with setting the path. I noticed that exec/
configure.ac has:
I tried changing this to 30.0.90 and re-building (using make bootstrap), but the resulting binary still has 30.0.50 in it.