[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
<   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
diff -r1.1.1.2 socketmodule.c
< #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. */
< /* 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 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