[numpy] Fixing FTBFS on ppc64le (#1078354)
Jaromír Cápík
jcapik at fedoraproject.org
Wed May 7 14:32:06 UTC 2014
commit 76d41f73a224bb51a6635fa056347f9de94bca8e
Author: Jaromir Capik <jcapik at redhat.com>
Date: Wed May 7 16:32:19 2014 +0200
Fixing FTBFS on ppc64le (#1078354)
numpy-1.8.1.ppc64le.patch | 131 +++++++++++++++++++++++++++++++++++++++++++++
numpy.spec | 10 +++-
2 files changed, 140 insertions(+), 1 deletions(-)
---
diff --git a/numpy-1.8.1.ppc64le.patch b/numpy-1.8.1.ppc64le.patch
new file mode 100644
index 0000000..d0f5466
--- /dev/null
+++ b/numpy-1.8.1.ppc64le.patch
@@ -0,0 +1,131 @@
+@@ -, +, @@
+---
+ doc/release/1.8.1-notes.rst | 4 ++++
+ numpy/core/include/numpy/npy_cpu.h | 3 +++
+ numpy/core/include/numpy/npy_endian.h | 3 ++-
+ numpy/core/setup.py | 2 +-
+ numpy/core/setup_common.py | 4 ++++
+ numpy/core/src/npymath/ieee754.c.src | 3 ++-
+ numpy/core/src/npymath/npy_math_private.h | 3 ++-
+ numpy/core/src/private/npy_fpmath.h | 5 ++++-
+ 8 files changed, 22 insertions(+), 5 deletions(-)
+--- numpy-1.8.1/numpy/core/setup_common.py
++++ numpy-1.8.1/numpy/core/setup_common.py
+@@ -256,6 +256,8 @@ _IEEE_QUAD_PREC_BE = ['300', '031', '326
+ _IEEE_QUAD_PREC_LE = _IEEE_QUAD_PREC_BE[::-1]
+ _DOUBLE_DOUBLE_BE = ['301', '235', '157', '064', '124', '000', '000', '000'] + \
+ ['000'] * 8
++_DOUBLE_DOUBLE_LE = ['000', '000', '000', '124', '064', '157', '235', '301'] + \
++ ['000'] * 8
+
+ def long_double_representation(lines):
+ """Given a binary dump as given by GNU od -b, look for long double
+@@ -295,6 +297,8 @@ def long_double_representation(lines):
+ return 'IEEE_QUAD_LE'
+ elif read[8:-8] == _DOUBLE_DOUBLE_BE:
+ return 'DOUBLE_DOUBLE_BE'
++ elif read[8:-8] == _DOUBLE_DOUBLE_LE:
++ return 'DOUBLE_DOUBLE_LE'
+ elif read[:16] == _BEFORE_SEQ:
+ if read[16:-8] == _IEEE_DOUBLE_LE:
+ return 'IEEE_DOUBLE_LE'
+--- numpy-1.8.1/numpy/core/include/numpy/npy_cpu.h
++++ numpy-1.8.1/numpy/core/include/numpy/npy_cpu.h
+@@ -5,6 +5,7 @@
+ * NPY_CPU_AMD64
+ * NPY_CPU_PPC
+ * NPY_CPU_PPC64
++ * NPY_CPU_PPC64LE
+ * NPY_CPU_SPARC
+ * NPY_CPU_S390
+ * NPY_CPU_IA64
+@@ -41,6 +42,8 @@
+ * _ARCH_PPC is used by at least gcc on AIX
+ */
+ #define NPY_CPU_PPC
++#elif defined(__ppc64le__)
++ #define NPY_CPU_PPC64LE
+ #elif defined(__ppc64__)
+ #define NPY_CPU_PPC64
+ #elif defined(__sparc__) || defined(__sparc)
+--- numpy-1.8.1/numpy/core/include/numpy/npy_endian.h
++++ numpy-1.8.1/numpy/core/include/numpy/npy_endian.h
+@@ -27,7 +27,8 @@
+ || defined(NPY_CPU_ARMEL) \
+ || defined(NPY_CPU_AARCH64) \
+ || defined(NPY_CPU_SH_LE) \
+- || defined(NPY_CPU_MIPSEL)
++ || defined(NPY_CPU_MIPSEL) \
++ || defined(NPY_CPU_PPC64LE)
+ #define NPY_BYTE_ORDER NPY_LITTLE_ENDIAN
+ #elif defined(NPY_CPU_PPC) \
+ || defined(NPY_CPU_SPARC) \
+--- numpy-1.8.1/numpy/core/setup.py
++++ numpy-1.8.1/numpy/core/setup.py
+@@ -466,7 +466,7 @@ def configuration(parent_package='',top_
+ 'MOTOROLA_EXTENDED_12_BYTES_BE',
+ 'IEEE_QUAD_LE', 'IEEE_QUAD_BE',
+ 'IEEE_DOUBLE_LE', 'IEEE_DOUBLE_BE',
+- 'DOUBLE_DOUBLE_BE']:
++ 'DOUBLE_DOUBLE_BE', 'DOUBLE_DOUBLE_LE']:
+ moredefs.append(('HAVE_LDOUBLE_%s' % rep, 1))
+ else:
+ raise ValueError("Unrecognized long double format: %s" % rep)
+--- numpy-1.8.1/numpy/core/src/npymath/ieee754.c.src
++++ numpy-1.8.1/numpy/core/src/npymath/ieee754.c.src
+@@ -133,7 +133,8 @@ float _nextf(float x, int p)
+ return x;
+ }
+
+-#ifdef HAVE_LDOUBLE_DOUBLE_DOUBLE_BE
++#if defined(HAVE_LDOUBLE_DOUBLE_DOUBLE_BE) || \
++ defined(HAVE_LDOUBLE_DOUBLE_DOUBLE_LE)
+
+ /*
+ * FIXME: this is ugly and untested. The asm part only works with gcc, and we
+--- numpy-1.8.1/numpy/core/src/npymath/npy_math_private.h
++++ numpy-1.8.1/numpy/core/src/npymath/npy_math_private.h
+@@ -435,7 +435,8 @@ do {
+ typedef npy_uint32 ldouble_sign_t;
+ #endif
+
+-#ifndef HAVE_LDOUBLE_DOUBLE_DOUBLE_BE
++#if !defined(HAVE_LDOUBLE_DOUBLE_DOUBLE_BE) && \
++ !defined(HAVE_LDOUBLE_DOUBLE_DOUBLE_LE)
+ /* Get the sign bit of x. x should be of type IEEEl2bitsrep */
+ #define GET_LDOUBLE_SIGN(x) \
+ (((x).a[LDBL_SIGN_INDEX] & LDBL_SIGN_MASK) >> LDBL_SIGN_SHIFT)
+--- numpy-1.8.1/numpy/core/src/private/npy_fpmath.h
++++ numpy-1.8.1/numpy/core/src/private/npy_fpmath.h
+@@ -29,6 +29,8 @@
+ #define HAVE_LDOUBLE_INTEL_EXTENDED_16_BYTES_LE
+ #elif defined(NPY_CPU_PPC) || defined(NPY_CPU_PPC64)
+ #define HAVE_LDOUBLE_IEEE_DOUBLE_16_BYTES_BE
++ #elif defined(NPY_CPU_PPC64LE)
++ #define HAVE_LDOUBLE_IEEE_DOUBLE_16_BYTES_LE
+ #endif
+ #endif
+ #endif
+@@ -41,7 +43,8 @@
+ defined(HAVE_LDOUBLE_INTEL_EXTENDED_16_BYTES_LE) || \
+ defined(HAVE_LDOUBLE_INTEL_EXTENDED_12_BYTES_LE) || \
+ defined(HAVE_LDOUBLE_MOTOROLA_EXTENDED_12_BYTES_BE) || \
+- defined(HAVE_LDOUBLE_DOUBLE_DOUBLE_BE))
++ defined(HAVE_LDOUBLE_DOUBLE_DOUBLE_BE) || \
++ defined(HAVE_LDOUBLE_DOUBLE_DOUBLE_LE))
+ #error No long double representation defined
+ #endif
+
+--- numpy-1.8.1/doc/release/1.8.1-notes.rst
++++ numpy-1.8.1/doc/release/1.8.1-notes.rst
+@@ -81,6 +81,10 @@ calls to ``numpy.distutils.system_info.g
+ print anything on the output. This is mostly for other packages using
+ numpy.distutils.
+
++Build system
++~~~~~~~~~~~~
++Added experimental support for the ppc64le architecture.
++
+ Deprecations
+ ============
+
diff --git a/numpy.spec b/numpy.spec
index d487192..28a9622 100644
--- a/numpy.spec
+++ b/numpy.spec
@@ -9,7 +9,7 @@
Name: numpy
Version: 1.8.1
-Release: 1%{?dist}
+Release: 2%{?dist}
Epoch: 1
Summary: A fast multidimensional array facility for Python
@@ -19,6 +19,8 @@ License: BSD and Python
URL: http://www.numpy.org/
Source0: http://downloads.sourceforge.net/numpy/%{name}-%{version}%{?relc}.tar.gz
+Patch0: numpy-1.8.1.ppc64le.patch
+
BuildRequires: python2-devel lapack-devel python-setuptools gcc-gfortran atlas-devel python-nose
Requires: python-nose
%if 0%{?with_python3}
@@ -83,6 +85,9 @@ This package includes a version of f2py that works properly with NumPy.
%prep
%setup -q -n %{name}-%{version}%{?relc}
+
+%patch0 -p1
+
# workaround for rhbz#849713
# http://mail.scipy.org/pipermail/numpy-discussion/2012-July/063530.html
rm numpy/distutils/command/__init__.py && touch numpy/distutils/command/__init__.py
@@ -232,6 +237,9 @@ popd &> /dev/null
%changelog
+* Wed May 07 2014 Jaromir Capik <jcapik at redhat.com> - 1:1.8.1-2
+- Fixing FTBFS on ppc64le (#1078354)
+
* Tue Mar 25 2014 Orion Poplawski <orion at nwra.com> - 1:1.8.1-1
- Update to 1.8.1
More information about the scm-commits
mailing list