-
Notifications
You must be signed in to change notification settings - Fork 287
Description
Description
I'm trying to modify numpy/numpy-releases to build the numpy wheels for pyodide. numpy-releases is going to be the minimal repo for build artifacts. We try to limit exposure to a wider spread of github actions, apart from those absolutely necessary.
One step uses actions/setup-python
to install Python. The next step uses a python -m cibuildwheel
invocation to build the relevant wheel. However, there are issues building the cp312-pyodide_wasm32/cp313-pyodide_wasm32 candidates.
I think there is a path somewhere that is being set up incorrectly. If actions/setup-python
installs python3.12 then the cp312-pyodide_wasm32 entry fails during the build process, but the cp313-pyodide_wasm32 succeeds. If actions/setup-python
installs python3.13 then the cp313-pyodide_wasm32 entry fails, but the cp312_pyodide_wasm32 succeeds.
If I do a pre-release install of python3.14 then both the cp312 and cp313 wheels build successfully.
Note that using the pypa/cibuildwheel
action works to build both cp312 and cp313, it's only the command line call of python -m cibuildwheel
that doesn't work.
The reason I think it's a path issue is because the fail has a build error along the lines of:
/opt/hostedtoolcache/Python/3.13.7/x64/include/python3.13/pyport.h:399:2: error: "LONG_BIT definition appears wrong for platform (bad gcc/glibc config?)."
399 | #error "LONG_BIT definition appears wrong for platform (bad gcc/glibc config?)."
which means that there's an bitness incompatibility somewhere. e.g. the headers might be picked up from one Python install but the libraries might be from another.
It's not clear to me if this issue belongs in cibuildwheel or in actions/setup-python
. The CI config below is for the PR I'm trying make for the pyodide build. There's a lot of commits from me doing the fault finding above.
Build log
https://github.com/numpy/numpy-release/actions/runs/17115057979/job/48544209219