From 34c454c99aa9e2c07a631e649c6b749d77412c7e Mon Sep 17 00:00:00 2001 From: Martin Jansa Date: Wed, 15 Feb 2023 00:05:03 +0100 Subject: python3-numpy: upgrade to 1.24.2 * remove patch applied upstream * FWIW: this version still fails to build with DEBUG_BUILD AND gcc-13 as shown in: http://errors.yoctoproject.org/Errors/Details/689841/ In file included from TOPDIR/tmp-glibc/work/core2-64-oe-linux/python3-numpy/1.24.1-r0/recipe-sysroot-native/usr/lib/x86_64-oe-linux/gcc/x86_64-oe-linux/13.0.1/include/immintrin.h:57, from TOPDIR/tmp-glibc/work/core2-64-oe-linux/python3-numpy/1.24.1-r0/numpy-1.24.1/numpy/distutils/checks/cpu_avx512_knl.c:14: In function '_mm512_mask_prefetch_i64scatter_pd', inlined from 'main' at TOPDIR/tmp-glibc/work/core2-64-oe-linux/python3-numpy/1.24.1-r0/numpy-1.24.1/numpy/distutils/checks/cpu_avx512_knl.c:23:5: TOPDIR/tmp-glibc/work/core2-64-oe-linux/python3-numpy/1.24.1-r0/recipe-sysroot-native/usr/lib/x86_64-oe-linux/gcc/x86_64-oe-linux/13.0.1/include/avx512pfintrin.h:180:3: error: 'base' may be used uninitialized [-Werror=maybe-uninitialized] 180 | __builtin_ia32_scatterpfqpd (__mask, (__v8di) __index, __addr, __scale, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | __hint); | ~~~~~~~ : In function 'main': : note: by argument 3 of type 'const void *' to '__builtin_ia32_scatterpfqpd' declared here TOPDIR/tmp-glibc/work/core2-64-oe-linux/python3-numpy/1.24.1-r0/numpy-1.24.1/numpy/distutils/checks/cpu_avx512_knl.c:18:9: note: 'base' declared here 18 | int base[128]; | ^~~~ In file included from TOPDIR/tmp-glibc/work/core2-64-oe-linux/python3-numpy/1.24.1-r0/recipe-sysroot-native/usr/lib/x86_64-oe-linux/gcc/x86_64-oe-linux/13.0.1/include/immintrin.h:53, from numpy/core/src/umath/simd.inc.src:25: TOPDIR/tmp-glibc/work/core2-64-oe-linux/python3-numpy/1.24.1-r0/recipe-sysroot-native/usr/lib/x86_64-oe-linux/gcc/x86_64-oe-linux/13.0.1/include/avx512fintrin.h: In function 'AVX512F_square_CFLOAT': TOPDIR/tmp-glibc/work/core2-64-oe-linux/python3-numpy/1.24.1-r0/recipe-sysroot-native/usr/lib/x86_64-oe-linux/gcc/x86_64-oe-linux/13.0.1/include/avx512fintrin.h:314:1: error: inlining failed in call to 'always_inline' '_mm512_setzero_ps': target specific option mismatch 314 | _mm512_setzero_ps (void) | ^~~~~~~~~~~~~~~~~ numpy/core/src/umath/simd.inc.src:977:20: note: called from here 977 | @vtype@ zeros = _mm512_setzero_@vsuffix@(); | ^~~~~~~~~~~~~~~~~~~ numpy/core/src/umath/simd.inc.src:596:1: error: inlining failed in call to 'always_inline' 'avx512_get_full_load_mask_ps': target specific option mismatch 596 | avx512_get_full_load_mask_ps(void) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ It will be probably resolved in next release from 1.25 as whole simd.inc.src was removed in: https://github.com/numpy/numpy/commit/640e85017aa8eac3e9be68b475acf27d623b16b7 but this PR https://github.com/numpy/numpy/pull/21056 wasn't backported to maintenance/1.24.x and probably isn't worth backporting now as neither DEBUG_BUILD is enabled by default nor gcc-13 merged in oe-core, and the changes don't backport cleanly. (From OE-Core rev: 8596678667797971559aed962b1c204266032186) Signed-off-by: Martin Jansa Signed-off-by: Alexandre Belloni Signed-off-by: Richard Purdie --- .../python/python3-numpy_1.24.2.bb | 72 ++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 meta/recipes-devtools/python/python3-numpy_1.24.2.bb (limited to 'meta/recipes-devtools/python/python3-numpy_1.24.2.bb') diff --git a/meta/recipes-devtools/python/python3-numpy_1.24.2.bb b/meta/recipes-devtools/python/python3-numpy_1.24.2.bb new file mode 100644 index 0000000000..78a857bf16 --- /dev/null +++ b/meta/recipes-devtools/python/python3-numpy_1.24.2.bb @@ -0,0 +1,72 @@ +SUMMARY = "A sophisticated Numeric Processing Package for Python" +HOMEPAGE = "https://numpy.org/" +DESCRIPTION = "NumPy is the fundamental package needed for scientific computing with Python." +SECTION = "devel/python" +LICENSE = "BSD-3-Clause & BSD-2-Clause & PSF-2.0 & Apache-2.0 & MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=8026691468924fb6ec155dadfe2a1a7f" + +SRCNAME = "numpy" + +SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${SRCNAME}-${PV}.tar.gz \ + file://0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch \ + file://0001-numpy-core-Define-RISCV-32-support.patch \ + file://run-ptest \ + " +SRC_URI[sha256sum] = "003a9f530e880cb2cd177cba1af7220b9aa42def9c4afc2a2fc3ee6be7eb2b22" + +GITHUB_BASE_URI = "https://github.com/numpy/numpy/releases" +UPSTREAM_CHECK_REGEX = "releases/tag/v?(?P\d+(\.\d+)+)$" + +DEPENDS += "python3-cython-native" + +inherit ptest setuptools3 github-releases + +S = "${WORKDIR}/numpy-${PV}" + +CLEANBROKEN = "1" + +do_compile:prepend() { + export NPY_DISABLE_SVML=1 +} + +# Unfortunately the following pyc files are non-deterministc due to 'frozenset' +# being written without strict ordering, even with PYTHONHASHSEED = 0 +# Upstream is discussing ways to solve the issue properly, until then let's +# just not install the problematic files. +# More info: http://benno.id.au/blog/2013/01/15/python-determinism +do_install:append() { + rm ${D}${PYTHON_SITEPACKAGES_DIR}/numpy/typing/tests/data/pass/__pycache__/literal.cpython* +} + +FILES:${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/numpy/core/lib/*.a ${PYTHON_SITEPACKAGES_DIR}/numpy/random/lib/*.a" + +# install what is needed for numpy.test() +RDEPENDS:${PN} = "${PYTHON_PN}-unittest \ + ${PYTHON_PN}-difflib \ + ${PYTHON_PN}-pprint \ + ${PYTHON_PN}-pickle \ + ${PYTHON_PN}-shell \ + ${PYTHON_PN}-doctest \ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-distutils \ + ${PYTHON_PN}-misc \ + ${PYTHON_PN}-mmap \ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-numbers \ + ${PYTHON_PN}-pydoc \ + ${PYTHON_PN}-pkgutil \ + ${PYTHON_PN}-email \ + ${PYTHON_PN}-compression \ + ${PYTHON_PN}-ctypes \ + ${PYTHON_PN}-threading \ + ${PYTHON_PN}-multiprocessing \ + ${PYTHON_PN}-json \ +" +RDEPENDS:${PN}-ptest += "${PYTHON_PN}-pytest \ + ${PYTHON_PN}-hypothesis \ + ${PYTHON_PN}-sortedcontainers \ + ${PYTHON_PN}-resource \ + ldd \ +" + +BBCLASSEXTEND = "native nativesdk" -- cgit v1.2.3-54-g00ecf