Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Message-Id: <4.3.1.2.20010306155238.026065f0@pop.ma.ultranet.com> X-Sender: lhall AT pop DOT ma DOT ultranet DOT com X-Mailer: QUALCOMM Windows Eudora Version 4.3.1 Date: Tue, 06 Mar 2001 15:58:39 -0500 To: Matt DOT Brozowski AT tavve DOT com, cygwin AT cygwin DOT com From: "Larry Hall (RFK Partners, Inc)" Subject: Re: #define Win32_Winsock fails in 1.1.8 In-Reply-To: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" At 10:00 AM 3/6/2001, Matt DOT Brozowski AT tavve DOT com wrote: >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 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 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. Does your program actually want to use Winsock with select or does it just do so because UNIX socket semantics were missing in Cygwin 1.0? The reason I ask is because I'm left with the distinct impression that you're trying to meld Win32 and UNIX semantics for sockets, which is going to be difficult at least. Perhaps, if this is the case, you might consider reviewing your socket code in light of changes in 1.1.8. If things aren't quite right yet, perhaps the proper fix is to extend Cygwin's socket implementation to properly support the UNIX semantics. I'm just thinking out loud here, since I don't have socket programming experience. I'm just left with particular impressions of things, after reading this list for years... Larry Hall lhall AT rfk DOT com RFK Partners, Inc. http://www.rfk.com 118 Washington Street (508) 893-9779 - RFK Office Holliston, MA 01746 (508) 893-9889 - FAX -- Want to unsubscribe from this list? Check out: http://cygwin.com/ml/#unsubscribe-simple