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: H. Dieter Wilhelm
Subject: Re: Native compilation on Windows, was Re: Bootstrap Compilation Speed
Date: Mon, 21 Feb 2022 22:59:07 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (windows-nt)

Eli Zaretskii <eliz@gnu.org> writes:

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

When trying above iterative approach, I just find libgmp and after
adding libgmp-10.dll to the folder there are no further dependencies to
see!?

  uidg1626@VSL7V7PW MINGW64 ~/emacs-build/build/emacs-28.0.91/bin
  $ objdump.exe -p *.exe *.dll |grep "DLL Name"|sort -u
          DLL Name: ADVAPI32.dll
          DLL Name: COMCTL32.dll
          DLL Name: GDI32.dll
          DLL Name: KERNEL32.dll
          DLL Name: MPR.dll
          DLL Name: SHELL32.dll
          DLL Name: USER32.dll
          DLL Name: USP10.dll
          DLL Name: WINMM.dll
          DLL Name: WINSPOOL.DRV
          DLL Name: WSOCK32.dll
          DLL Name: comdlg32.dll
          DLL Name: libgmp-10.dll
          DLL Name: msvcrt.dll
          DLL Name: ole32.dll

Thank you

        Dieter



reply via email to

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