diff options
author | Janneke Nieuwenhuizen <janneke@gnu.org> | 2024-12-11 21:36:22 +0100 |
---|---|---|
committer | Andreas Enge <andreas@enge.fr> | 2025-07-18 20:17:14 +0200 |
commit | 6c6a442ff6a82e06ef31e561a2bb3e5b34efc5e5 (patch) | |
tree | 4b1dede832eccd5d654120106360da5100709198 | |
parent | d4f2e2ae37fcce3283b0ee7b7add15301c53dce4 (diff) |
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
-rw-r--r-- | gnu/local.mk | 1 | ||||
-rw-r--r-- | gnu/packages/patches/python-numpy-gcc-14.patch | 14 | ||||
-rw-r--r-- | gnu/packages/python-xyz.scm | 46 |
3 files changed, 51 insertions, 10 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 866bc66ae7..395c588ca0 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2047,6 +2047,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 e76fc99171..9e486a52d2 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -9976,7 +9976,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) @@ -10062,7 +10062,7 @@ writing C extensions for Python as easy as Python itself.") ;; - URL <https://raw.githubusercontent.com/numpy/numpy> ;; - commit :: 2f3549c9d7c5048621568e431c86bc7530742723 ;; - file <doc/source/building/understanding_meson.rst> - (version "1.26.2") + (version "1.26.4") (source (origin (method url-fetch) @@ -10071,7 +10071,8 @@ writing C extensions for Python as easy as Python itself.") version "/numpy-" version ".tar.gz")) (sha256 (base32 - "1snknqb4hmv6b720nsaz21g7h6z1ikdvnsqyy5vmgavnfr23hmzn")))) + "0410j6jfz1yzm5s0v0yrc1j0q6ih4322357and7arr0jxnlsn0ia")) + (patches (search-patches "python-numpy-gcc-14.patch")))) (build-system pyproject-build-system) (arguments (list @@ -10092,6 +10093,10 @@ writing C extensions for Python as easy as Python itself.") (delete (string-append gfortran "/include/c++") (string-split (getenv "CPLUS_INCLUDE_PATH") #\:)) ":"))))) + (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" @@ -10174,21 +10179,42 @@ include_dirs = ~:*~a/include~%" ;; 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" - " and not test_fp_noncontiguous") - '()))))))))) + `(" and not test_fp_noncontiguous") + '()) + ;; 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 gfortran - meson-python + (list meson-python pkg-config + 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") |