[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
51/216: gnu: python-numpy: Update to 1.26.4 and fix build with gcc-14.
From: |
guix-commits |
Subject: |
51/216: gnu: python-numpy: Update to 1.26.4 and fix build with gcc-14. |
Date: |
Sat, 4 Jan 2025 07:27:15 -0500 (EST) |
janneke pushed a commit to branch core-packages-team
in repository guix.
commit d16547a4edffbc6502e716617a19cc3317db831e
Author: Janneke Nieuwenhuizen <janneke@gnu.org>
AuthorDate: Wed Dec 11 21:36:22 2024 +0100
gnu: python-numpy: Update to 1.26.4 and fix build with gcc-14.
* gnu/packages/patches/python-numpy-gcc-14.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/python-xyz.scm (python-numpy): Update to 1.26.4 and use it.
[arguments]: Add phase "relax-gcc-14-strictness". In phase "check", disable
more tests.
[native-inputs]: Add gcc-14 before gfortran so that gfortran's fenv.h
include
doesn't win and break the build.
Change-Id: I9c8053c66f21521371a85107ef1864a1c0d19ad4
---
gnu/local.mk | 1 +
gnu/packages/patches/python-numpy-gcc-14.patch | 14 +++++++
gnu/packages/python-xyz.scm | 57 +++++++++++++++++---------
3 files changed, 53 insertions(+), 19 deletions(-)
diff --git a/gnu/local.mk b/gnu/local.mk
index 0af1194876..250b8f8d2d 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1980,6 +1980,7 @@ dist_patch_DATA =
\
%D%/packages/patches/python-feedparser-missing-import.patch \
%D%/packages/patches/python-louvain-fix-test.patch \
%D%/packages/patches/python-matplotlib-fix-legend-loc-best-test.patch
\
+ %D%/packages/patches/python-numpy-gcc-14.patch \
%D%/packages/patches/python-random2-getrandbits-test.patch \
%D%/packages/patches/python-pillow-use-zlib-1.3.patch \
%D%/packages/patches/python-pydocstyle-add-support-for-pep701.patch \
diff --git a/gnu/packages/patches/python-numpy-gcc-14.patch
b/gnu/packages/patches/python-numpy-gcc-14.patch
new file mode 100644
index 0000000000..1d022108c7
--- /dev/null
+++ b/gnu/packages/patches/python-numpy-gcc-14.patch
@@ -0,0 +1,14 @@
+Upstream status: Not presented upstream.
+
+--- numpy-1.26.4/numpy/core/src/common/half_private.hpp.orig 2024-12-11
22:32:59.883085553 +0100
++++ numpy-1.26.4/numpy/core/src/common/half_private.hpp 2024-12-11
22:33:05.291112742 +0100
+@@ -1,6 +1,9 @@
+ #ifndef NUMPY_CORE_SRC_COMMON_HALF_PRIVATE_HPP
+ #define NUMPY_CORE_SRC_COMMON_HALF_PRIVATE_HPP
+
++int fetestexcept (int);
++int feclearexcept (int);
++int feraiseexcept (int);
+ #include "npstd.hpp"
+ #include "float_status.hpp"
+
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 74396692ed..0dc8599db7 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -8912,7 +8912,7 @@ programming language and the extended Cython programming
language. It makes
writing C extensions for Python as easy as Python itself.")
(license license:asl2.0)))
-;; Needed for scipy
+;; Needed for scipy and numpy
(define-public python-cython-0.29.35
(package
(inherit python-cython)
@@ -8990,11 +8990,7 @@ writing C extensions for Python as easy as Python
itself.")
(define-public python-numpy
(package
(name "python-numpy")
- ;; XXX: Any other versions up to 1.26.4 failed to build with error similar
- ;; to: 'fenv_t' has not been declared in '::' 58 | using ::fenv_t;
- ;; See
<https://github.com/numpy/numpy/issues/21075#issuecomment-1047976197>,
- ;; <https://github.com/numpy/numpy/issues/24318>.
- (version "1.24.4")
+ (version "1.26.4")
(source
(origin
(method url-fetch)
@@ -9003,7 +8999,8 @@ writing C extensions for Python as easy as Python
itself.")
version "/numpy-" version ".tar.gz"))
(sha256
(base32
- "0qwldmkq5bns561ppkz7psphc4jqfj5j1x4dhq0i8r4qwjjf7xc0"))))
+ "0410j6jfz1yzm5s0v0yrc1j0q6ih4322357and7arr0jxnlsn0ia"))
+ (patches (search-patches "python-numpy-gcc-14.patch"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -9012,6 +9009,10 @@ writing C extensions for Python as easy as Python
itself.")
(ice-9 format))
#:phases
#~(modify-phases %standard-phases
+ (add-before 'build 'relax-gcc-14-strictness
+ (lambda _
+ (setenv "CFLAGS"
+ "-g -O2 -Wno-error=implicit-function-declaration")))
(add-before 'build 'parallelize-build
(lambda _
(setenv "NPY_NUM_BUILD_JOBS"
@@ -9078,30 +9079,48 @@ include_dirs = ~:*~a/include~%"
#$@(if (or (target-x86?) (target-arm32?))
`(" and not
test_identityless_reduction_huge_array"
" and not (TestKind and test_all)")
- '())
+ '())
;; This test fails when building from
aarch64-linux.
#$@(if (target-arm32?)
- `(" and not test_features")
- '())
+ `(" and not test_features")
+ '())
;; These tests seem to fail on machines without
;; an FPU is still under investigation upstream.
;; https://github.com/numpy/numpy/issues/20635
- #$@(if (target-riscv64?)
- `(" and not test_float"
- " and not test_fpclass")
- '())))))))))
- (native-inputs
- (list gfortran
- meson-python
+ ;; They also fail with gcc-14
+ " and not test_float"
+ " and not test_fpclass"
+
+ ;; These tests fail with gcc-14
+ " and not test_context_locality"
+ " and not test_cosh"
+ " and not test_default_policy_singleton"
+ " and not test_exp_exceptions"
+ " and not test_half_fpe"
+ " and not test_owner_is_base"
+ " and not test_policy_propagation"
+ " and not test_set_policy"
+ " and not test_sinh"
+ " and not test_square_values"
+ " and not test_sum"
+ " and not test_switch_owner"
+ " and not test_thread_locality"))))))))
+ (native-inputs
+ (list meson-python
pkg-config
- python-cython ;; overwrite Cython from meson-python
+ python-cython-0.29.35 ;overwrite Cython from meson-python
python-hypothesis
python-mypy
python-pytest
python-pytest-xdist
python-setuptools
python-typing-extensions
- python-wheel))
+ python-wheel
+ ;; XXX: Avoid to: 'fenv_t' has not been declared in '::' 58 | using
::fenv_t;
+ ;; See
<https://github.com/numpy/numpy/issues/21075#issuecomment-1047976197>,
+ ;; <https://github.com/numpy/numpy/issues/24318>.
+ gcc ;fevn.h c[++] include must precede fortran's
+ gfortran))
(inputs (list bash openblas))
(home-page "https://numpy.org";)
(synopsis "Fundamental package for scientific computing with Python")
- 86/216: gnu: aalib: Fix build with gcc-14., (continued)
- 86/216: gnu: aalib: Fix build with gcc-14., guix-commits, 2025/01/04
- 111/216: gnu: nvi: Fix build with gcc-14., guix-commits, 2025/01/04
- 124/216: gnu: libgee: Fix build with gcc-14., guix-commits, 2025/01/04
- 18/216: gnu: bdb: Use automake-1.16.5., guix-commits, 2025/01/04
- 22/216: gnu: expect: Fix build with gcc-14., guix-commits, 2025/01/04
- 21/216: gnu: torsocks: Fix build with gcc-14., guix-commits, 2025/01/04
- 27/216: gnu: cmake-bootstrap: Fix build with gcc-14., guix-commits, 2025/01/04
- 29/216: gnu: llvm-13: Fix build with gcc-14., guix-commits, 2025/01/04
- 39/216: gnu: cyrus-sasl: Fix build mwith gcc-14., guix-commits, 2025/01/04
- 46/216: gnu: pth: Fix build with gcc-14., guix-commits, 2025/01/04
- 51/216: gnu: python-numpy: Update to 1.26.4 and fix build with gcc-14.,
guix-commits <=
- 77/216: gnu: vala-0.52: Fix build with gcc-14., guix-commits, 2025/01/04
- 83/216: gnu: xf86-video-nouveau: Fix build with gcc-14., guix-commits, 2025/01/04
- 20/216: gnu: libstdc++: Fix build for x86-linux with gcc-14., guix-commits, 2025/01/04
- 24/216: gnu: go-1.21.5: Skip test failing with gcc-14., guix-commits, 2025/01/04
- 26/216: gnu: xmlto: Fix build with gcc-14., guix-commits, 2025/01/04
- 55/216: gnu: ldb: Update to 2.9.2; fixes build with gcc-14., guix-commits, 2025/01/04
- 40/216: gnu: jack-1: Fix build with gcc-14., guix-commits, 2025/01/04
- 35/216: gnu: zziplib: Update to 0.13.78; fixes build with gcc-14., guix-commits, 2025/01/04
- 45/216: gnu: openldap: Update to 2.6.9; fixes build with gcc-14., guix-commits, 2025/01/04
- 56/216: gnu: flex: Use -Wno-error= for cross-build., guix-commits, 2025/01/04