From a8f45e9f97ff21953a979d0b7ccc231f74e61a7d Mon Sep 17 00:00:00 2001 From: Kristian Sloth Lauszus Date: Tue, 28 Apr 2026 10:12:19 +0200 Subject: [PATCH 1/3] FEAT: Add armv7l wheel (manylinux/musllinux) --- .github/workflows/wheels.yml | 2 ++ cibuildwheel.toml | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 63700cf..6978457 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -53,6 +53,8 @@ jobs: - [ubuntu-22.04, musllinux_x86_64, ""] - [ubuntu-22.04-arm, manylinux_aarch64, ""] - [ubuntu-22.04-arm, musllinux_aarch64, ""] + - [ubuntu-22.04-arm, manylinux_armv7l, ""] + - [ubuntu-22.04-arm, musllinux_armv7l, ""] - [macos-15-intel, macosx_x86_64, openblas] # targeting macos >= 14. Could probably build on macos-14, but it would be a cross-compile diff --git a/cibuildwheel.toml b/cibuildwheel.toml index 2f38915..cbaecea 100644 --- a/cibuildwheel.toml +++ b/cibuildwheel.toml @@ -16,8 +16,10 @@ build-dir = "build" [tool.cibuildwheel.linux] manylinux-x86_64-image = "manylinux_2_28" manylinux-aarch64-image = "manylinux_2_28" +manylinux-armv7l-image = "manylinux_2_31" musllinux-x86_64-image = "musllinux_1_2" musllinux-aarch64-image = "musllinux_1_2" +musllinux-armv7l-image = "musllinux_1_2" [tool.cibuildwheel.linux.environment] # RUNNER_OS is a GitHub Actions specific env var; define it here so it's @@ -35,6 +37,12 @@ select = ["*-win32"] config-settings = {setup-args = ["--vsenv", "-Dallow-noblas=true"], build-dir="build"} repair-wheel-command = "" +# armv7l is a 32-bit architecture; ILP64 (64-bit BLAS integers) is not supported. +# Use standard LP64 OpenBLAS instead. +[[tool.cibuildwheel.overrides]] +select = ["*-manylinux_armv7l", "*-musllinux_armv7l"] +config-settings = {setup-args = ["-Duse-ilp64=false", "-Dallow-noblas=false"], build-dir="build"} + [tool.cibuildwheel.pyodide] before-test = "pip install -r $SRC/requirements/emscripten_test_requirements.txt" # Pyodide ensures that the wheels are already repaired by auditwheel-emscripten From e7c7101ab9dda7a5c2c7c06d717ea9ad581c1b77 Mon Sep 17 00:00:00 2001 From: Kristian Sloth Lauszus Date: Tue, 28 Apr 2026 10:14:28 +0200 Subject: [PATCH 2/3] Trigger CI --- .github/workflows/wheels.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 6978457..45ac741 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -39,7 +39,6 @@ permissions: jobs: build_wheels: - if: github.repository == 'numpy/numpy-release' name: Build wheel ${{ matrix.python }}-${{ matrix.buildplat[1] }}-${{ matrix.buildplat[2] }} runs-on: ${{ matrix.buildplat[0] }} strategy: From 866f9bd2dbc30e401b1a6b24ab36a8d4a4acd941 Mon Sep 17 00:00:00 2001 From: Kristian Sloth Lauszus Date: Tue, 28 Apr 2026 10:58:33 +0200 Subject: [PATCH 3/3] Do not use BLAS for now --- cibuildwheel.toml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cibuildwheel.toml b/cibuildwheel.toml index cbaecea..2a3b9ea 100644 --- a/cibuildwheel.toml +++ b/cibuildwheel.toml @@ -38,10 +38,9 @@ config-settings = {setup-args = ["--vsenv", "-Dallow-noblas=true"], build-dir="b repair-wheel-command = "" # armv7l is a 32-bit architecture; ILP64 (64-bit BLAS integers) is not supported. -# Use standard LP64 OpenBLAS instead. [[tool.cibuildwheel.overrides]] select = ["*-manylinux_armv7l", "*-musllinux_armv7l"] -config-settings = {setup-args = ["-Duse-ilp64=false", "-Dallow-noblas=false"], build-dir="build"} +config-settings = {setup-args = ["-Duse-ilp64=false", "-Dallow-noblas=true"], build-dir="build"} [tool.cibuildwheel.pyodide] before-test = "pip install -r $SRC/requirements/emscripten_test_requirements.txt"