git: 3c11b048c3de - main - math/py-numpy: add SIMD options
Date: Tue, 09 Jun 2026 02:57:52 UTC
The branch main has been updated by vishwin:
URL: https://cgit.FreeBSD.org/ports/commit/?id=3c11b048c3de3af38dabc809a80dd0fbac51c7ff
commit 3c11b048c3de3af38dabc809a80dd0fbac51c7ff
Author: Charlie Li <vishwin@FreeBSD.org>
AuthorDate: 2026-06-09 02:46:29 +0000
Commit: Charlie Li <vishwin@FreeBSD.org>
CommitDate: 2026-06-09 02:46:29 +0000
math/py-numpy: add SIMD options
Per the 2.4 release notes, the default/minimum baseline for compiled
optimisations on amd64 and i386 is increased to the v2 microarchitecture.
Thus, those using CPUs without the full feature set from v2 will
encounter SIGILL when running numpy with the default/minimum baseline.
Add option to disable compiled optimisations, relying entirely on
dispatched code paths when available and applicable. Not recommended
except for very old CPUs. Also add native option.
PR: 295633, 295664
---
math/py-numpy/Makefile | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/math/py-numpy/Makefile b/math/py-numpy/Makefile
index e40e3339dc6d..865fcf7c2bb3 100644
--- a/math/py-numpy/Makefile
+++ b/math/py-numpy/Makefile
@@ -1,5 +1,6 @@
PORTNAME= numpy
DISTVERSION= 2.4.6
+PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= math python
MASTER_SITES= PYPI \
@@ -23,7 +24,8 @@ TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}hypothesis>=5.3.0:devel/py-hypothesis@${PY_
USES= compiler:c++17-lang cpe fortran pkgconfig python:3.11+ shebangfix
USE_PYTHON= autoplist concurrent cython pep517 pytest
-PEP517_BUILD_CONFIG_SETTING= -Csetup-args=-Dallow-noblas=false
+PEP517_BUILD_CONFIG_SETTING= -Csetup-args=-Dallow-noblas=false \
+ -Csetup-args=-Dcpu-baseline-detect=disabled
WITHOUT_FBSD10_FIX= yes
SHEBANG_GLOB= *.py
@@ -36,18 +38,26 @@ TEST_WRKSRC= ${WRKDIR}
TEST_ARGS= --pyargs numpy
OPTIONS_DEFINE= DOCS
-OPTIONS_SINGLE= BLASLIB
+OPTIONS_SINGLE= BLASLIB SIMD
OPTIONS_SINGLE_BLASLIB= BLIS FLEXIBLAS NETLIB OPENBLAS
-OPTIONS_DEFAULT= OPENBLAS
+OPTIONS_SINGLE_SIMD= MIN NATIVE NONE
+OPTIONS_DEFAULT= MIN OPENBLAS
BLIS_DESC= BLIS BLAS-like implementation
FLEXIBLAS_DESC= FlexiBLAS BLAS implementation
+MIN_DESC= Minimum recommended CPU features ${MIN_DESC_${ARCH}}
+MIN_DESC_amd64= (x86-64-v2 microarchitecture)
+MIN_DESC_i386= (x86-64-v2 microarchitecture)
+NONE_DESC= Dispatched optimizations only (not recommended except old CPUs)
BLIS_USES= blaslapack:blis
BLIS_VARS= PEP517_BUILD_CONFIG_SETTING+="-Csetup-args=-Dblas=blis -Csetup-args=-Dlapack=flame"
BLIS_BROKEN= math/libflame does not provide a pkg-config file
FLEXIBLAS_USES= blaslapack:flexiblas
FLEXIBLAS_VARS= PEP517_BUILD_CONFIG_SETTING+="-Csetup-args=-Dblas=flexiblas -Csetup-args=-Dlapack=flexiblas"
+MIN_VARS= PEP517_BUILD_CONFIG_SETTING+="-Csetup-args=-Dcpu-baseline=min"
+NATIVE_VARS= PEP517_BUILD_CONFIG_SETTING+="-Csetup-args=-Dcpu-baseline=native"
+NONE_VARS= PEP517_BUILD_CONFIG_SETTING+="-Csetup-args=-Dcpu-baseline=none"
NETLIB_LIB_DEPENDS= libcblas.so:math/cblas
NETLIB_USES= blaslapack:netlib
NETLIB_VARS= PEP517_BUILD_CONFIG_SETTING+="-Csetup-args=-Dblas=blas -Csetup-args=-Dlapack=lapack"