[arch-commits] Commit in python2/trunk (3 files)
Stéphane Gaudreault
stephane at archlinux.org
Tue Jan 31 13:38:55 UTC 2012
Date: Tuesday, January 31, 2012 @ 08:38:55
Author: stephane
Revision: 148408
upgpkg: python2 2.7.2-5
Fix upstream issue #13156: revert changeset f6feed6ec3f9, which was only relevant for native TLS implementations, and fails with the ad-hoc TLS implementation when a thread doesn't have an auto thread state (e.g. a thread created outside of Python calling into a subinterpreter).
Added:
python2/trunk/13156-revert-tls-changeset-subinterpreter.patch
Modified:
python2/trunk/PKGBUILD
python2/trunk/gdbm-magic-values.patch
-------------------------------------------------+
13156-revert-tls-changeset-subinterpreter.patch | 61 ++++++++++++++++++++++
PKGBUILD | 11 ++-
gdbm-magic-values.patch | 1
3 files changed, 69 insertions(+), 4 deletions(-)
Added: 13156-revert-tls-changeset-subinterpreter.patch
===================================================================
--- 13156-revert-tls-changeset-subinterpreter.patch (rev 0)
+++ 13156-revert-tls-changeset-subinterpreter.patch 2012-01-31 13:38:55 UTC (rev 148408)
@@ -0,0 +1,61 @@
+
+# HG changeset patch
+# User Charles-François Natali <neologix at free.fr>
+# Date 1318446474 -7200
+# Node ID ee4fe16d9b4822457ad855ea6c44e65030166304
+# Parent f6feed6ec3f9b024cecd0fd587595c403f55624f
+Issue #13156: revert changeset f6feed6ec3f9, which was only relevant for native
+TLS implementations, and fails with the ad-hoc TLS implementation when a thread
+doesn't have an auto thread state (e.g. a thread created outside of Python
+calling into a subinterpreter).
+
+diff --git a/Include/pystate.h b/Include/pystate.h
+--- a/Include/pystate.h
++++ b/Include/pystate.h
+@@ -111,7 +111,6 @@ PyAPI_FUNC(void) PyThreadState_Clear(PyT
+ PyAPI_FUNC(void) PyThreadState_Delete(PyThreadState *);
+ #ifdef WITH_THREAD
+ PyAPI_FUNC(void) PyThreadState_DeleteCurrent(void);
+-PyAPI_FUNC(void) _PyGILState_Reinit(void);
+ #endif
+
+ PyAPI_FUNC(PyThreadState *) PyThreadState_Get(void);
+diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c
+--- a/Modules/signalmodule.c
++++ b/Modules/signalmodule.c
+@@ -976,7 +976,6 @@ void
+ PyOS_AfterFork(void)
+ {
+ #ifdef WITH_THREAD
+- _PyGILState_Reinit();
+ PyEval_ReInitThreads();
+ main_thread = PyThread_get_thread_ident();
+ main_pid = getpid();
+diff --git a/Python/pystate.c b/Python/pystate.c
+--- a/Python/pystate.c
++++ b/Python/pystate.c
+@@ -537,23 +537,6 @@ void
+ autoInterpreterState = NULL;
+ }
+
+-/* Reset the TLS key - called by PyOS_AfterFork.
+- * This should not be necessary, but some - buggy - pthread implementations
+- * don't flush TLS on fork, see issue #10517.
+- */
+-void
+-_PyGILState_Reinit(void)
+-{
+- PyThreadState *tstate = PyGILState_GetThisThreadState();
+- PyThread_delete_key(autoTLSkey);
+- if ((autoTLSkey = PyThread_create_key()) == -1)
+- Py_FatalError("Could not allocate TLS entry");
+-
+- /* re-associate the current thread state with the new key */
+- if (PyThread_set_key_value(autoTLSkey, (void *)tstate) < 0)
+- Py_FatalError("Couldn't create autoTLSkey mapping");
+-}
+-
+ /* When a thread state is created for a thread by some mechanism other than
+ PyGILState_Ensure, it's important that the GILState machinery knows about
+ it so it doesn't try to create another thread state for the thread (this is
+
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2012-01-31 13:31:47 UTC (rev 148407)
+++ PKGBUILD 2012-01-31 13:38:55 UTC (rev 148408)
@@ -5,7 +5,7 @@
pkgname=python2
pkgver=2.7.2
-pkgrel=4
+pkgrel=5
_pybasever=2.7
pkgdesc="A high-level scripting language"
arch=('i686' 'x86_64')
@@ -18,10 +18,12 @@
options=('!makeflags')
source=(http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz
linux2.patch
- gdbm-magic-values.patch)
+ gdbm-magic-values.patch
+ 13156-revert-tls-changeset-subinterpreter.patch)
sha1sums=('56700044141402dc35e7a0a24aa7ffda1a8c1a53'
'937c06190899a491d662c7918658313e7640070e'
- '0f4cd9508c9ace620a829a688a9285e0480b5fb5')
+ 'ede2c991b1a91eec5a01cc2d3a11231f17d750ae'
+ 'd61fa2b8efd1d08a2ee8a9aed434dc94b8297d6b')
build() {
cd "${srcdir}/Python-${pkgver}"
@@ -44,6 +46,9 @@
# http://bugs.python.org/issue13007
patch -Np1 -i ../gdbm-magic-values.patch
+ # http://bugs.python.org/issue13156
+ patch -Np1 -i ../13156-revert-tls-changeset-subinterpreter.patch
+
# Ensure that we are using the system copy of various libraries (expat, zlib and libffi),
# rather than copies shipped in the tarball
rm -r Modules/expat
Modified: gdbm-magic-values.patch
===================================================================
--- gdbm-magic-values.patch 2012-01-31 13:31:47 UTC (rev 148407)
+++ gdbm-magic-values.patch 2012-01-31 13:38:55 UTC (rev 148408)
@@ -10,4 +10,3 @@
return "gdbm"
# Check for old Berkeley db hash file format v2
-diff -up Python-2.7.2/Misc/NEWS.gdbm-1.9-magic Python-2.7.2/Misc/NEWS
More information about the arch-commits
mailing list