This is the mail archive of the cygwin-apps mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [64bit] python3 vs. threads


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]