[arch-commits] Commit in python/trunk (PKGBUILD PKGBUILD.3.5 issue25150.patch)
Felix Yan
fyan at archlinux.org
Sun Sep 20 12:49:06 UTC 2015
Date: Sunday, September 20, 2015 @ 14:49:06
Author: fyan
Revision: 247006
upgpkg: python 3.5.0-2
add a patch for compatible with OpenMP
Added:
python/trunk/issue25150.patch
Modified:
python/trunk/PKGBUILD
Deleted:
python/trunk/PKGBUILD.3.5
------------------+
PKGBUILD | 11 ++++--
PKGBUILD.3.5 | 93 -----------------------------------------------------
issue25150.patch | 78 ++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 86 insertions(+), 96 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2015-09-20 11:57:08 UTC (rev 247005)
+++ PKGBUILD 2015-09-20 12:49:06 UTC (rev 247006)
@@ -7,7 +7,7 @@
pkgname=python
pkgver=3.5.0
-pkgrel=1
+pkgrel=2
_pybasever=3.5
pkgdesc="Next generation of the python high-level scripting language"
arch=('i686' 'x86_64')
@@ -27,10 +27,12 @@
replaces=('python3')
source=("http://www.python.org/ftp/python/${pkgver%rc*}/Python-${pkgver}.tar.xz"
test_gdb-version-fix.patch
- dont-make-libpython-readonly.patch)
+ dont-make-libpython-readonly.patch
+ issue25150.patch)
sha1sums=('871a06df9ab70984b7398ac53047fe125c757a70'
'ab86515aff465385675e2e6e593f09596e0a8db0'
- 'c22b24324b8e53326702de439c401d97927ee3f2')
+ 'c22b24324b8e53326702de439c401d97927ee3f2'
+ 'bd068695d22931320069200f240c425096bb5011')
prepare() {
cd Python-${pkgver}
@@ -41,6 +43,9 @@
# FS#45809
patch -p1 -i ../dont-make-libpython-readonly.patch
+ # https://bugs.python.org/issue25150
+ patch -p1 -i ../issue25150.patch
+
# FS#23997
sed -i -e "s|^#.* /usr/local/bin/python|#!/usr/bin/python|" Lib/cgi.py
Deleted: PKGBUILD.3.5
===================================================================
--- PKGBUILD.3.5 2015-09-20 11:57:08 UTC (rev 247005)
+++ PKGBUILD.3.5 2015-09-20 12:49:06 UTC (rev 247006)
@@ -1,93 +0,0 @@
-# $Id: PKGBUILD 234956 2015-03-26 07:56:56Z fyan $
-# Maintainer: Angel Velasquez <angvp at archlinux.org>
-# Maintainer: Felix Yan <felixonmars at archlinux.org>
-# Contributor: Stéphane Gaudreault <stephane at archlinux.org>
-# Contributor: Allan McRae <allan at archlinux.org>
-# Contributor: Jason Chu <jason at archlinux.org>
-
-pkgname=python
-pkgver=3.5.0rc3
-pkgrel=1
-_pybasever=3.4
-pkgdesc="Next generation of the python high-level scripting language"
-arch=('i686' 'x86_64')
-license=('custom')
-url="http://www.python.org/"
-depends=('expat' 'bzip2' 'gdbm' 'openssl' 'libffi' 'zlib')
-makedepends=('tk' 'sqlite' 'valgrind' 'bluez-libs' 'mpdecimal' 'hardening-wrapper')
-checkdepends=('gdb' 'xorg-server-xvfb')
-optdepends=('python-setuptools'
- 'python-pip'
- 'sqlite'
- 'mpdecimal: for decimal'
- 'xz: for lzma'
- 'tk: for tkinter')
-options=('!makeflags')
-provides=('python3')
-replaces=('python3')
-source=(http://www.python.org/ftp/python/${pkgver%rc*}/Python-${pkgver}.tar.xz)
-sha1sums=('d4f5a75142bd9290cd7603db5f26fa62a25ef273')
-
-prepare() {
- cd Python-${pkgver}
-
- # FS#23997
- sed -i -e "s|^#.* /usr/local/bin/python|#!/usr/bin/python|" Lib/cgi.py
-
- # Ensure that we are using the system copy of various libraries (expat, zlib, libffi, and libmpdec),
- # rather than copies shipped in the tarball
- rm -r Modules/expat
- rm -r Modules/zlib
- rm -r Modules/_ctypes/{darwin,libffi}*
- rm -r Modules/_decimal/libmpdec
-}
-
-build() {
- cd Python-${pkgver}
-
- # Disable bundled pip & setuptools
- ./configure --prefix=/usr \
- --enable-shared \
- --with-threads \
- --with-computed-gotos \
- --enable-ipv6 \
- --with-system-expat \
- --with-dbmliborder=gdbm:ndbm \
- --with-system-ffi \
- --with-system-libmpdec \
- --enable-loadable-sqlite-extensions \
- --without-ensurepip
-
- make
-}
-
-check() {
- # test_pathlib/test_posixpath: http://bugs.python.org/issue24950
-
- cd Python-${pkgver}
- LD_LIBRARY_PATH="${srcdir}/Python-${pkgver}":${LD_LIBRARY_PATH} \
- TERM=screen HOME="$srcdir" xvfb-run \
- "${srcdir}/Python-${pkgver}/python" -m test.regrtest -uall
-}
-
-package() {
- cd Python-${pkgver}
- make DESTDIR="${pkgdir}" install maninstall
-
- # Why are these not done by default...
- ln -s python3 "${pkgdir}"/usr/bin/python
- ln -s python3-config "${pkgdir}"/usr/bin/python-config
- ln -s idle3 "${pkgdir}"/usr/bin/idle
- ln -s pydoc3 "${pkgdir}"/usr/bin/pydoc
- ln -s python${_pybasever}.1 "${pkgdir}"/usr/share/man/man1/python.1
-
- # Fix FS#22552
- ln -sf ../../libpython${_pybasever}m.so \
- "${pkgdir}/usr/lib/python${_pybasever}/config-${_pybasever}m/libpython${_pybasever}m.so"
-
- # Clean-up reference to build directory
- sed -i "s|$srcdir/Python-${pkgver}:||" "$pkgdir/usr/lib/python${_pybasever}/config-${_pybasever}m/Makefile"
-
- # License
- install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
-}
Added: issue25150.patch
===================================================================
--- issue25150.patch (rev 0)
+++ issue25150.patch 2015-09-20 12:49:06 UTC (rev 247006)
@@ -0,0 +1,78 @@
+
+# HG changeset patch
+# User Victor Stinner <victor.stinner at gmail.com>
+# Date 1442581594 -7200
+# Node ID d4fcb362f7c66b25b22ddc0d27db0cc96acc727b
+# Parent d04a0954e142f873adee88ec5bc1c1d81cd46bc4
+Issue #25150: Hide the private _Py_atomic_xxx symbols from the public
+Python.h header to fix a compilation error with OpenMP. PyThreadState_GET()
+becomes an alias to PyThreadState_Get() to avoid ABI incompatibilies.
+
+It is important that the _PyThreadState_Current variable is always accessed
+with the same implementation of pyatomic.h. Use the PyThreadState_Get()
+function so extension modules will all reuse the same implementation.
+
+diff --git a/Include/pyatomic.h b/Include/pyatomic.h
+--- a/Include/pyatomic.h
++++ b/Include/pyatomic.h
+@@ -1,8 +1,6 @@
+-/* Issue #23644: <stdatomic.h> is incompatible with C++, see:
+- https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60932 */
+-#if !defined(Py_LIMITED_API) && !defined(__cplusplus)
+ #ifndef Py_ATOMIC_H
+ #define Py_ATOMIC_H
++#ifdef Py_BUILD_CORE
+
+ #include "dynamic_annotations.h"
+
+@@ -248,5 +246,5 @@ static __inline__ void
+ #define _Py_atomic_load_relaxed(ATOMIC_VAL) \
+ _Py_atomic_load_explicit(ATOMIC_VAL, _Py_memory_order_relaxed)
+
++#endif /* Py_BUILD_CORE */
+ #endif /* Py_ATOMIC_H */
+-#endif /* Py_LIMITED_API */
+diff --git a/Include/pystate.h b/Include/pystate.h
+--- a/Include/pystate.h
++++ b/Include/pystate.h
+@@ -177,20 +177,13 @@ PyAPI_FUNC(int) PyThreadState_SetAsyncEx
+ /* Variable and macro for in-line access to current thread state */
+
+ /* Assuming the current thread holds the GIL, this is the
+- PyThreadState for the current thread.
+-
+- Issue #23644: pyatomic.h is incompatible with C++ (yet). Disable
+- PyThreadState_GET() optimization: declare it as an alias to
+- PyThreadState_Get(), as done for limited API. */
+-#if !defined(Py_LIMITED_API) && !defined(__cplusplus)
++ PyThreadState for the current thread. */
++#ifdef Py_BUILD_CORE
+ PyAPI_DATA(_Py_atomic_address) _PyThreadState_Current;
+-#endif
+-
+-#if defined(Py_DEBUG) || defined(Py_LIMITED_API) || defined(__cplusplus)
+-#define PyThreadState_GET() PyThreadState_Get()
++# define PyThreadState_GET() \
++ ((PyThreadState*)_Py_atomic_load_relaxed(&_PyThreadState_Current))
+ #else
+-#define PyThreadState_GET() \
+- ((PyThreadState*)_Py_atomic_load_relaxed(&_PyThreadState_Current))
++# define PyThreadState_GET() PyThreadState_Get()
+ #endif
+
+ typedef
+diff --git a/Misc/NEWS b/Misc/NEWS
+--- a/Misc/NEWS
++++ b/Misc/NEWS
+@@ -11,6 +11,10 @@ Release date: TBA
+ Core and Builtins
+ -----------------
+
++- Issue #25150: Hide the private _Py_atomic_xxx symbols from the public
++ Python.h header to fix a compilation error with OpenMP. PyThreadState_GET()
++ becomes an alias to PyThreadState_Get() to avoid ABI incompatibilies.
++
+ Library
+ -------
+
+
More information about the arch-commits
mailing list