Mailing-List: contact cygwin-help@sourceware.cygnus.com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@sources.redhat.com Delivered-To: mailing list cygwin@sources.redhat.com Message-Id: <4.3.1.2.20010306155238.026065f0@pop.ma.ultranet.com> X-Sender: lhall@pop.ma.ultranet.com X-Mailer: QUALCOMM Windows Eudora Version 4.3.1 Date: Tue, 06 Mar 2001 15:58:39 -0500 To: Matt.Brozowski@tavve.com, cygwin@cygwin.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.Brozowski@tavve.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@rfk.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