Subject: Re: bug#22959: Emacs on Windows depends on libwinpthreads

From: Eli Zaretskii <[email-masked]>
Date: Sun, 17 Apr 2016 17:37:38 +0300

> From: Fabrice Popineau <[email-masked]>
> Date: Sat, 16 Apr 2016 23:48:35 +0200
> 
> At this point, when I build emacs for w64 using msys2,
> emacs.exe depends on libwinpthread for only one symbol
> which is clock_gettime().
> This is called from lib/gettime.c:gettime().

This is not supposed to happen.  I don't see this on my system.

There's some factor at work here that I cannot figure out: the
configure-time test for clock_gettime doesn't try to look for that
function in the pthreads library, it only tries the "normal" link
without any extra libraries, and if that fails, tries 2 extra
libraries: librt and libposix4, none of which I'd expect to see on
MS-Windows in a MinGW installation.

It could be something peculiar to MinGW64/MSYS2 build.  Are you sure
libwinpthread dependency is not a requirement of the MinGW64 GCC port?

So please look in config.log, and tell how did pthreads get into this
test.

> It may be possible to remove this dependency for w64
> and switch to gettimeofday(). No idea if we would lose 
> something in doing so.

Probably nothing at all, as the 32-build AFAIK doesn't depend on
libwinpthread (at least mine doesn't).

> There is another dependency which is libdbus.dll, which
> is automatically found. I have no idea if dbus is useful
> for w64/msys2.

If you don't wand D-Bus, you can configure with --without-dbus.

> I may add that a full blown emacs compiled with msys2
> needs up to 57 dlls to run ( that is : all image formats dll,
> gnutls, etc.) and this is what I copy in my emacs/bin directory.

57 DLLs sounds excessive.  I counted the ones I think Emacs uses on my
system, and only got as far as 32.  Can you show a list of those 57
libraries?