This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

#define Win32_Winsock fails in 1.1.8


I hope this is the right mailing list for this.

I am in the process of trying to migrate my application from Cygwin 1.0 to
Cygwin 1.1.8.  My application uses Windows sockets and select and uses
#define Win32_Winsock and #include <windows.h> at the top of the source
file as mentioned in the FAQ.  This works fine in Cygwin 1.0 but I notice I
get select errors when recompiling and then running it with Cygwin 1.1.8.
After debugging it I found that 1.1.8 is failing to use the Windows style
fd_set defined in winsock.h but rather is using the one from sys/types.h
which it shouldn't be.  (This can be easily seen in the debugger.)

After doing a little investigation I determined that the bug was introduced
when #include <sys/reent.h> was added to /usr/include/string.h.  This
causes string.h to recursively cause sys/types.h to be included before
winsock.h has a chance to be included.  Therefore the wrong fd_set is used.
The unfortunate ting about this bug is that everything compiles fine it is
only a runtime that this bug appears.

It's not really clear to me what an appropriate fix would be other than
removing sys/reent.h from string.h.  Does anyone have any ideas and can it
be put on the fixes to do list.

Matt Brozowski
Tavve Software Company




--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]