On Wed, Feb 2, 2022 at 4:07 PM Phillip Lord wrote: > > Corwin Brust writes: > > > On Mon, Jan 31, 2022 at 9:58 AM H. Dieter Wilhelm > > wrote: > >> > >> Currently we have 19 DLLs in the /bin folder (28.0.91), whereas 27.2 has > >> 77 DLLs! Corwin could you please check your build configuration, maybe > >> together with Phil? (I'm sorry, I'm still of no help here.) > > > > Excellent observation. > > > > I hope Phil will chime-in with suggestions of what I may have > > missed/broken. I'll investigate also, obviously, and others' > > kibitzing most welcome too. > > > Strange. What are the differences? Firstly: I'm not too sure yet. I still need to download the Emacs 27.2 zip from the official source and do a direct "gap" comparison. Overall, I'm leaning toward ditching automation of dependency detection in favor of adding a separate file. All efforts to automating dependency recursion seem britle, ultimating causing more work than they save us as we have to track down one mystery after another. The proposed new file will - exhaustively lists each DLL we ship - be referenced in by documentation (such as README.W32) - be loaded by scripts, e.g. build-dep-zips.py - have additional "columns" to name the msys package, and - document why the dependency is required. I have attached a txt file which is the complete list of what I would start out including in that file. Obviously, it's missing the msys package names and has no commentary, so far. I would probably call it admin/nt/dist-build/deps.txt but I don't feel strongly about the filename. WDYT? Meanwhile, in mesier news: I wrote a perl script (also attached but don't bother) to find second (and etc) order dependances using LDD that I believe should have been (but have not been) getting pulled into the build. I thought that the msys installation folder path change Dieter caught would sort this, but the numbers seem to don't add up (yet), probably because of the undependability of the msys dependency checking that you mentioned. I thought this would get me up to the same count (77) as Dieter reported, but: $ ls *.dll | wc -l 19 $ perl ../../../find-deps.pl | xargs -I '{}' cp '{}' . searched: 19, found: 392, of which 43 are missing in /c/Users/corwi/emacs-build/install/emacs-28.0.91/bin $ ls *.dll | wc -l 62 Note, these are the 62 DLLs listed in the attached textt file. I also used this rather henus string of pipelined commands to "cross-check" for missing dependencies and only came up with one, which appears to be an optional dependency of harfbuzz: $ find ./ -name '*.dll' -print0 | xargs -0 -I '{}' cygcheck '{}' 2>&1 | grep 'could not' | cut -d ' ' -f 6 | sort | uniq libicuuc69.dll Finally, I double-checked using an even more rediculous set of pipeline commands. seemingly confirming everything the prior finds are in the bin directory: $ find ./ -name '*.dll' -print0 | xargs -0 -I '{}' cygcheck '{}' 2>&1 | grep -v 'could not' | cut -d ' ' -f 6 | sort | uniq | xargs -0 -L1 echo | xargs -0 cygpath | perl -npe 's|c:|/c|g' | xargs -L1 basename | xargs ls >/dev/null All this has me convinced some DLLs that shipped with Emacs 27.2 aren't findable as dependencies of anything we currently need for Emacs 28, but not why. And that leads me to the suggestion, above: I think we should hard-code the DLLs along with their source packages. We can consider automatically generating/updating the deps file once we get that far. Warmest regards, Corwin