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

From: [email-masked] (Phillip Lord)
Date: Wed, 09 Mar 2016 18:56:37 +0000

Eli Zaretskii <[email-masked]> writes:

>> From: [email-masked] (Phillip Lord)
>> Cc: [email-masked]
>> Date: Wed, 09 Mar 2016 16:32:44 +0000
>> 
>> > If MinGW64 builds binaries that depend on libwinpthread DLL, then why
>> > isn't that DLL part of the MinGW64 GCC installation?  That sounds like
>> > a bug in MinGW64 packaging, or maybe your installation is somehow
>> > incomplete or misconfigured?
>> 
>> It is part of the distribution. The problem is generating a binary for
>> other people that they can use. If I install Emacs and then package that
>> location, the executable will not work.
>
> Ah, okay.  Then I think the only way of making distributable binaries
> is to find a GCC distribution that doesn't infect programs it produces
> with the libwinpthread dependency.

IIUC, I could cross-compile Emacs on debian, but I don't know if that
would solve the issue. The mingw mailing list suggests that it's not
possible using their tool chain.

>> > (This is the first time that a MinGW64 Emacs user complains about
>> > this, so I wonder how others solve this problem.)
>> 
>> The Emacs-W64 distribution which builds in ming-w64 just copies
>> libwinpthread-1.dll into the bin directory.
>
> Someone who does that will have to provide the sources of that library
> from the same location, or they will be in violation of the GPL.

Does it? libwinpthread isn't GPL. I would assume that it's a system
library so is not covered by Emacs' GPL either.

>> The other solution is
>> 
>> ./configure CFLAGS=-static
>
> If that gives reasonable results, yes.  What problems, if any, does it
> create?

Well, it works, which is a reasonable result.

Disadvantage? I guess, if it is dropped into an existing ming-w64
installation, then it will (effectively) duplicate the libwinpthread
binary that is there. More, it will not gain any updates to that
libwinpthread library. If Emacs is being used standalone on a system
with no other part of mingw/msys then these points are moot.

Phil