[64bit] python3 vs. threads
Yaakov (Cygwin/X)
yselkowitz@users.sourceforge.net
Wed Jul 31 01:53:00 GMT 2013
On 2013-07-30 17:54, Yaakov (Cygwin/X) wrote:
> On 2013-06-03 23:30, Yaakov (Cygwin/X) wrote:
>> Jason,
>>
>> As part of the 64bit bootstrap process, I packaged python3, but had to
>> configure it --without-threads due to a runtime error.
>
> I think I tracked down the source of the problem:
>
> The PyThread TLS APIs, added in 3.2 via issue 9786 (namely,
> PyThread_*_key and PyThread_*_key_value in Include/pythread.h and
> Python/thread_pthread.h) assume sizeof(pthread_key_t) == sizeof(int).
> However, on x86_64-cygwin, pthread_key_t is a pointer and so the native
> calls fail when passed the incorrect values.
>
> As for fixing it, we could s/int/long/g those APIs, but I'm not sure
> what the ramifications of that might be. Can you think of a better
> solution?
I have patchsets ready for 2.7.5 (to fix the parsetuple issue) and 3.2.5
in Ports git; see 3.2-thread-cygwin64.patch for my proposed solution,
which would have to be rebased to a newer version and expanded to all
the other platform-specific implementations before pushing upstream.
If you're okay with these, I have packages ready for x86_64.
http://cygwin-ports.git.sourceforge.net/git/gitweb.cgi?p=cygwin-ports/python;a=tree
http://cygwin-ports.git.sourceforge.net/git/gitweb.cgi?p=cygwin-ports/python3;a=tree
Yaakov
More information about the Cygwin-apps
mailing list