[Stackless] Problems on OS X

Jonathan Hogg jonathan at onegoodidea.com
Sat Sep 28 14:00:51 CEST 2002


Hi again,

On 27/9/2002 21:31, Sébastien Pierre wrote:

> I actually tried to make a Fink port for stackless, and ran into the
> same error. I then applied patches from the Fink Python 2.2 port for
> Jaguar to a Stackless CVS snapshot.

Yeah I suspected it was an OS X problem rather than Stackless, but I thought
I'd swing it by the list here and see if anyone else had hit it already.


On 27/9/2002 23:09, Christian Tismer wrote:

> Thanks! This is great!
> This bug has been there fom the beginning.
> The main tasklet is waiting for something, and then
> the last tasklet ends without sending/receiving.
> This case was not captured yet.
> The bug fix (in CVS) applies to all platforms.
> 
> Thanks a lot, Jonathan!

No problem. Really it was nothing ;-)


Apple recently released Darwin 6.01, which corresponds to the BSD part of
10.2. So I pulled down the Python package as they build it and did a diff of
this against the standard Python 2.2 package and found actually remarkably
very little change. I took the change that they had made and applied this to
the Stackless code and it now seems to build fine.

The diff against the current CVS code is:

Index: configure
===================================================================
RCS file: /home/cvs/stackless/src/configure,v
retrieving revision 1.2
diff -r1.2 configure
1104c1104
<   CPP="${CC-cc} -E -traditional-cpp"
---
>   CPP="${CC-cc} -E -no-cpp-precomp"
Index: Modules/socketmodule.c
===================================================================
RCS file: /home/cvs/stackless/src/Modules/socketmodule.c,v
retrieving revision 1.1.1.2
diff -r1.1.1.2 socketmodule.c
216,229d215
< #ifdef __APPLE__
< /* On OS X, getaddrinfo returns no error indication of lookup
<    failure, so we must use the emulation instead of the libinfo
<    implementation. Unfortunately, performing an autoconf test
<    for this bug would require DNS access for the machine performing
<    the configuration, which is not acceptable. Therefore, we
<    determine the bug just by checking for __APPLE__. If this bug
<    gets ever fixed, perhaps checking for sys/version.h would be
<    appropriate, which is 10/0 on the system with the bug. */
< #undef HAVE_GETADDRINFO
< /* avoid clashes with the C library definition of the symbol. */
< #define getaddrinfo fake_getaddrinfo
< #endif
< 

The main trick appears to be to configure it with the '--enable-ipv6' flag.

Thanks all.

Jonathan

-- 
jonathan hogg, one good idea ltd, 131 queen margaret dr., glasgow g20 8pd
http://www.onegoodidea.com/ tel:+44-(0)7976-614338 fax:+44-(0)7970-537451



More information about the Stackless mailing list