[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Native compilation on Windows, was Re: Bootstrap Compilation Speed
From: |
Corwin Brust |
Subject: |
Re: Native compilation on Windows, was Re: Bootstrap Compilation Speed |
Date: |
Wed, 2 Feb 2022 17:28:01 -0600 |
On Wed, Feb 2, 2022 at 4:07 PM Phillip Lord <phillip.lord@russet.org.uk> wrote:
>
> Corwin Brust <corwin@bru.st> writes:
>
> > On Mon, Jan 31, 2022 at 9:58 AM H. Dieter Wilhelm
> > <dieter@duenenhof-wilhelm.de> 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
dll-list.txt
Description: Text document
find-deps.pl
Description: Binary data
- Re: Native compilation on Windows, was Re: Bootstrap Compilation Speed, (continued)
- Re: Native compilation on Windows, was Re: Bootstrap Compilation Speed, Eli Zaretskii, 2022/02/03
- Re: Native compilation on Windows, was Re: Bootstrap Compilation Speed, H. Dieter Wilhelm, 2022/02/21
- Re: Native compilation on Windows, was Re: Bootstrap Compilation Speed, Eli Zaretskii, 2022/02/21
- Re: Native compilation on Windows, was Re: Bootstrap Compilation Speed, H. Dieter Wilhelm, 2022/02/23
- Re: Native compilation on Windows, was Re: Bootstrap Compilation Speed, Arash Esbati, 2022/02/23
- Re: Native compilation on Windows, was Re: Bootstrap Compilation Speed, H. Dieter Wilhelm, 2022/02/23
- Re: Native compilation on Windows, was Re: Bootstrap Compilation Speed, Eli Zaretskii, 2022/02/23
- Re: Acquiring dependencies for Windows builds, was: Native compilation on Windows, H. Dieter Wilhelm, 2022/02/27
- Re: Acquiring dependencies for Windows builds, was: Native compilation on Windows, Eli Zaretskii, 2022/02/27
Re: Native compilation on Windows, was Re: Bootstrap Compilation Speed, Phillip Lord, 2022/02/02