-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Dropped: 003-without-vendored-meson.patch 004-workaround-for-multiple-top-level-packages-discovered.patch This time, we really need to use meson to build numpy. And to make things more complicated, the 'vendored' meson package (that comes with numpy) must be used. This is because they have some special logic in there that's specific to numpy. With this change, we also need to keep a special/internal 'openwrt-cross.txt.in' file, because cross-compiling numpy also requires that a 'longdouble_format' property be added. More details about this: numpy/numpy#23972 https://github.com/numpy/numpy/blob/maintenance/2.2.x/doc/source/building/cross_compilation.rst Removing quirk fix for x86_64 with detecting 'avx512f'. This should work with the new meson stuff. And finally, added a test.sh script. This should make sure that this package works fine during upgrades. Signed-off-by: Alexandru Ardelean <[email protected]>
- Loading branch information
Showing
6 changed files
with
82 additions
and
55 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,11 +6,11 @@ | |
include $(TOPDIR)/rules.mk | ||
|
||
PKG_NAME:=numpy | ||
PKG_VERSION:=2.1.3 | ||
PKG_VERSION:=2.2.1 | ||
PKG_RELEASE:=1 | ||
|
||
PYPI_NAME:=$(PKG_NAME) | ||
PKG_HASH:=aa08e04e08aaf974d4458def539dece0d28146d866a39da5639596f4921fd761 | ||
PKG_HASH:=45681fd7128c8ad1c379f0ca0776a8b0c6583d2f69889ddac01559dfe4390918 | ||
|
||
PKG_MAINTAINER:=Alexandru Ardelean <[email protected]> | ||
|
||
|
@@ -27,9 +27,43 @@ PKG_BUILD_DEPENDS:=python-cython/host pyproject-metadata/host | |
PYTHON3_PKG_BUILD_VARS:= \ | ||
$(if $(CONFIG_NUMPY_OPENBLAS_SUPPORT),,NPY_BLAS_ORDER= NPY_LAPACK_ORDER= ) | ||
|
||
MESON_USE_STAGING_PYTHON:=1 | ||
|
||
include ../pypi.mk | ||
include $(INCLUDE_DIR)/package.mk | ||
include ../python3-package.mk | ||
include $(INCLUDE_DIR)/meson.mk | ||
|
||
MESON_ARGS+= \ | ||
-Ddisable-optimization=true \ | ||
-Dcpu-baseline=min | ||
|
||
# Override 'Meson', to use numpy's vendored meson | ||
define Meson | ||
$(call Python3/Run,,$(PKG_BUILD_DIR)/vendored-meson/meson/meson.py $(1),$(2)) | ||
endef | ||
|
||
define Meson/CreateCrossFile | ||
$(STAGING_DIR_HOST)/bin/sed \ | ||
-e "s|@CC@|$(foreach BIN,$(TARGET_CC),'$(BIN)',)|" \ | ||
-e "s|@CXX@|$(foreach BIN,$(TARGET_CXX),'$(BIN)',)|" \ | ||
-e "s|@LD@|$(foreach FLAG,$(TARGET_LINKER),'$(FLAG)',)|" \ | ||
-e "s|@AR@|$(TARGET_AR)|" \ | ||
-e "s|@STRIP@|$(TARGET_CROSS)strip|" \ | ||
-e "s|@NM@|$(TARGET_NM)|" \ | ||
-e "s|@PKGCONFIG@|$(PKG_CONFIG)|" \ | ||
-e "s|@CMAKE@|$(STAGING_DIR_HOST)/bin/cmake|" \ | ||
-e "s|@PYTHON@|$(PYTHON_BIN)|" \ | ||
-e "s|@CFLAGS@|$(foreach FLAG,$(TARGET_CFLAGS) $(EXTRA_CFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS),'$(FLAG)',)|" \ | ||
-e "s|@CXXFLAGS@|$(foreach FLAG,$(TARGET_CXXFLAGS) $(EXTRA_CXXFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS),'$(FLAG)',)|" \ | ||
-e "s|@LDFLAGS@|$(foreach FLAG,$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS),'$(FLAG)',)|" \ | ||
-e "s|@ARCH@|$(MESON_ARCH)|" \ | ||
-e "s|@CPU@|$(MESON_CPU)|" \ | ||
-e "s|@ENDIAN@|$(if $(CONFIG_BIG_ENDIAN),big,little)|" \ | ||
< files/openwrt-cross.txt.in \ | ||
> $(1) | ||
echo "longdouble_format = '$(if $(CONFIG_BIG_ENDIAN),IEEE_DOUBLE_BE,IEEE_DOUBLE_LE)'" >> $(1) | ||
endef | ||
|
||
define Package/python3-numpy | ||
SUBMENU:=Python | ||
|
@@ -54,12 +88,6 @@ config NUMPY_OPENBLAS_SUPPORT | |
endmenu | ||
endef | ||
|
||
ifeq ($(ARCH),x86_64) | ||
# FIXME: temporary fix for x86_64 with GCC 13 + musl; | ||
# numpy does not detect this compiler extension, so we just enable it | ||
TARGET_CFLAGS += -mavx512f | ||
endif | ||
|
||
define Build/Prepare/numpy-sitecfg | ||
echo "[DEFAULT]" > $(PKG_BUILD_DIR)/site.cfg | ||
echo "library_dirs = $(STAGING_DIR)/usr/lib" >> $(PKG_BUILD_DIR)/site.cfg | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
[binaries] | ||
c = [@CC@] | ||
c_ld = [@LD@] | ||
cpp = [@CXX@] | ||
cpp_ld = [@LD@] | ||
ar = '@AR@' | ||
strip = '@STRIP@' | ||
nm = '@NM@' | ||
pkg-config = '@PKGCONFIG@' | ||
cmake = '@CMAKE@' | ||
python = '@PYTHON@' | ||
|
||
[built-in options] | ||
c_args = [@CFLAGS@] | ||
c_link_args = [@LDFLAGS@] | ||
cpp_args = [@CXXFLAGS@] | ||
cpp_link_args = [@LDFLAGS@] | ||
prefix = '/usr' | ||
|
||
[host_machine] | ||
system = 'linux' | ||
cpu_family = '@ARCH@' | ||
cpu = '@CPU@' | ||
endian = '@ENDIAN@' | ||
|
||
[properties] | ||
needs_exe_wrapper = true |
2 changes: 1 addition & 1 deletion
2
lang/python/numpy/patches/002-avoid-build-user-config-files.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
34 changes: 0 additions & 34 deletions
34
lang/python/numpy/patches/003-without-vendored-meson.patch
This file was deleted.
Oops, something went wrong.
12 changes: 0 additions & 12 deletions
12
lang/python/numpy/patches/004-workaround-for-multiple-top-level-packages-discovered.patch
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
#!/bin/sh | ||
|
||
EXP_VER="$2" | ||
|
||
python3 - << EOF | ||
import sys | ||
import numpy as np | ||
if (np.__version__ != "$EXP_VER"): | ||
print("Got incorrect version: " + np.__version__) | ||
sys.exit(1) | ||
arr = np.array([1, 2, 3, 4, 5]) | ||
print(arr) | ||
EOF | ||
|