#11 Fix broken s390x
Merged 24 days ago by limb. Opened 24 days ago by qulogic.
rpms/ qulogic/numpy master  into  master

file added
+51

@@ -0,0 +1,51 @@ 

+ From af36784b2b38577a87208003d6827d02dc0c0fc2 Mon Sep 17 00:00:00 2001

+ From: Michael Hudson-Doyle <michael.hudson@canonical.com>

+ Date: Thu, 24 Oct 2019 21:46:00 +1300

+ Subject: [PATCH] BUG: fix integer size confusion in handling array's ndmin

+  argument

+ 

+ The ndmin local variable was changed from an "int" to an "npy_intp" but

+ &ndmin is passed to PyArg_ParseTupleAndKeywords against a "i" argument

+ spec, but these integers have different sizes (well on an LP64 platform

+ anyway). This actually works on a little endian system but fails

+ on a big endian one. Fix this by converting the local back to an int,

+ and being a little careful before assigning the result of PyLong_AsLong to

+ it.

+ 

+ Fixes #14767

+ ---

+  numpy/core/src/multiarray/multiarraymodule.c | 10 +++++-----

+  1 file changed, 5 insertions(+), 5 deletions(-)

+ 

+ diff --git a/numpy/core/src/multiarray/multiarraymodule.c b/numpy/core/src/multiarray/multiarraymodule.c

+ index 44156704996..9693275e74d 100644

+ --- a/numpy/core/src/multiarray/multiarraymodule.c

+ +++ b/numpy/core/src/multiarray/multiarraymodule.c

+ @@ -1562,8 +1562,7 @@ _array_fromobject(PyObject *NPY_UNUSED(ignored), PyObject *args, PyObject *kws)

+      PyArrayObject *oparr = NULL, *ret = NULL;

+      npy_bool subok = NPY_FALSE;

+      npy_bool copy = NPY_TRUE;

+ -    int nd;

+ -    npy_intp ndmin = 0;

+ +    int ndmin = 0, nd;

+      PyArray_Descr *type = NULL;

+      PyArray_Descr *oldtype = NULL;

+      NPY_ORDER order = NPY_KEEPORDER;

+ @@ -1625,13 +1624,14 @@ _array_fromobject(PyObject *NPY_UNUSED(ignored), PyObject *args, PyObject *kws)

+  

+              ndmin_obj = PyDict_GetItem(kws, npy_ma_str_ndmin);

+              if (ndmin_obj) {

+ -                ndmin = PyLong_AsLong(ndmin_obj);

+ -                if (error_converting(ndmin)) {

+ +                long t = PyLong_AsLong(ndmin_obj);

+ +                if (error_converting(t)) {

+                      goto clean_type;

+                  }

+ -                else if (ndmin > NPY_MAXDIMS) {

+ +                else if (t > NPY_MAXDIMS) {

+                      goto full_path;

+                  }

+ +                ndmin = t;

+              }

+  

+              /* copy=False with default dtype, order (any is OK) and ndim */

file modified
+11 -2

@@ -8,7 +8,7 @@ 

  

  Name:           numpy

  Version:        1.17.4

- Release:        1%{?dist}

+ Release:        2%{?dist}

  Epoch:          1

  Summary:        A fast multidimensional array facility for Python

  

@@ -17,6 +17,8 @@ 

  URL:            http://www.numpy.org/

  Source0:        https://github.com/%{name}/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.gz

  Source1:        https://docs.scipy.org/doc/numpy/numpy-html-1.17.0.zip

+ # https://github.com/numpy/numpy/issues/14767

+ Patch0001:      https://github.com/numpy/numpy/pull/14769.patch

  

  

  %description

@@ -149,7 +151,10 @@ 

  

  %check

  %if %{with tests}

- %if %{_arch} != s390x && %{_arch} != ppc64le

+ %ifarch ppc64le

+ # https://github.com/numpy/numpy/issues/14357

+ python3 runtests.py -- -k 'not test_einsum_sums_cfloat64'

+ %else

  python3 runtests.py

  %endif

  %endif

@@ -190,6 +195,10 @@ 

  

  

  %changelog

+ * Mon Nov 11 2019 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 1:1.17.4-2

+ - Backport patch for s390x failures

+ - Enable non-broken tests on ppc64le

+ 

  * Mon Nov 11 2019 Gwyn Ciesla <gwync@protonmail.com> - 1:1.17.4-1

  - 1.17.4

  

Please can we stop disabling arches without reporting anything upstream, in bugzilla, or even in just a comment. I shouldn't have to figure this out as a downstream consumer of numpy.

Pull-Request has been merged by limb

24 days ago

PS, please build for F31 too since it has 1.17 as well.