emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Native compilation on Windows, was Re: Bootstrap Compilation Speed


From: Eli Zaretskii
Subject: Re: Native compilation on Windows, was Re: Bootstrap Compilation Speed
Date: Thu, 03 Feb 2022 09:10:34 +0200

> From: Phillip Lord <phillip.lord@russet.org.uk>
> Cc: Arash Esbati <arash@gnu.org>,  "H. Dieter Wilhelm"
>  <dieter@duenenhof-wilhelm.de>,  Eli Zaretskii <eliz@gnu.org>,  Emacs
>  developers <emacs-devel@gnu.org>
> Date: Wed, 02 Feb 2022 22:04:42 +0000
> 
> If I remember correctly, this is because the msys dependency tree is
> not totally reliable.
> 
> At the time, I was trying hard to decrease the binary
> size. Unfortuately, the msys tree is an "at most" dependency rather than
> an "at least"; so, it's very easy to find that, again, you've pulled in
> half of msys2 which is not the intention.
> 
> Hence this skipping.

I can suggest a way to find all the actual dependencies of a set of
*.exe programs and DLLs by using only the standard tools, and
is thus very reliable.  The command to use is this:

  objdump -p *.exe *.dll | fgrep "DLL Name:" | gawk " {print $3, $4, $5}" | 
sort -u

Run this in the 'bin/' directory where you have executable programs
and DLLs, and it will show a sorted list of all the DLLs needed by
those programs and DLLs.  You will need to recognize and ignore any
system DLLs, such as msvcrt.dll, KERNEL32.dll, USER32.dll, WS2_32.dll
etc. in the list; for the rest, make sure every one of them is in the
same 'bin/' directory.  Each time you add some DLL to the 'bin/'
directory, re-run the above command again, because adding DLLs can
potentially add dependencies.  Repeat this process until all the DLLs
shown by the command are in the same directory: then you are done.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]