Longstanding __USE_W32_SOCKETS hiccup.

Christopher Faylor cgf-use-the-mailinglist-please@cygwin.com
Fri Aug 7 19:11:00 GMT 2009

On Fri, Aug 07, 2009 at 07:50:51PM +0100, Dave Korn wrote:
>Corinna Vinschen wrote:
>> On Aug  7 18:08, Dave Korn wrote:
>>> Christopher Faylor wrote:
>>>> I haven't been paying close attention here but why are we bothering to
>>>> accommodate use of winsock2.h and time.h.  This is really only for
>>>> Cygwin itself right?
>>>   Nope.
>>>> Otherwise, I don't think we should worry about people trying to mix
>>>> winsock.h in true Cygwin programs.
>>>   It seems to have worked well enough for GNAT in gcc-4.3.2 and earlier, but GCC
>>> HEAD has undergone some sort of refactoring that means we now get a duplicate
>>> definition of timeval during compilation of libada.  This is aimed at fixing
>>> that problem.
>> Why is libada including winsock2.h when being build for Cygwin?  That's
>> a bug.
>  No, it's by design.  For some reason, presumably historical, the ada compiler
>is a hybrid of cyg and ming.  It works well enough using winsock sockets; the
>only bug is that it doesn't use __USE_W32_SOCKETS while doing so.  Previously it
>got away with it by luck, now it doesn't.

It's still a bug.

Cygwin's purpose is to hide Windows-isms.  If some package is trying to
play fast and loose by mixing the POSIX with the Windows then they have
to be willing to accommodate as we tighten things up.

You can, after all, mix msvcrt and cygwin if you want too.  That doesn't
mean we have to stand on our heads to support it.


More information about the Cygwin-developers mailing list