[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