Cygwin socket library status enquiry

Jason Tishler jason at tishler.net
Tue Dec 18 08:15:02 EST 2001


On Tue, Dec 18, 2001 at 03:45:46AM +0000, Andy Todd wrote:
> "Steve Holden" <sholden at holdenweb.com> wrote in
> >Can anyone tell me what's going on?

Not really.  All that I can offer is that Cygwin Python passes test_socket
with the Cygwin (i.e., not Python) caveat below.

> I believe that there are still some socket problems with Cygwin, although 
> most have been addressed by recent versions of the DLL. In particular there 
> were problems with Win98 that have now been resolved on my installation.

Andy brings up a good point -- What platform are you using?  9x/Me or
NT/2000/XP?  If 9x/Me, then try under NT/2000/XP.  If NT/2000/XP.,
then try to post a minimal C test program that exhibits the problem
to cygwin at cygwin.com.

> I don't think everything is solved with the current port of Python though.
> By searching the Cygwin mailing list for 'python' and 'socket';
> 
> http://cygwin.com/cgi-bin/htsearch?method=and&format=builtin-
> long&sort=time&config=htdig&restrict=%2Fml%2Fcygwin%2F&exclude=&words=pytho
> n+socket
> 
> (excuse wrapping of URL) it looks like Jason is still ironing out socket 
> problems and has been working on them as recently as a couple of days ago;
> 
> http://sources.redhat.com/ml/cygwin/2001-12/msg00639.html

The root cause of the above problems are completely unrelated to sockets.
They are actually caused by Cygwin's fork() which requires all DLLs in
children to be based at the same address as in the parent.  Otherwise,
the Cygwin DLL causes the child to abort during fork().

Python's test_socket just happens to be one way of tickling this
problem.  In fact, the situation has been recently exacerbated since
many libraries that were previously static have just been updated to
be shared (e.g., OpenSSL).  Hopefully, a DLL rebasing technique will
solve this fork() problem for Python and other applications.

Jason




More information about the Python-list mailing list