- Package:
- src:mpi4py
- Source:
- src:mpi4py
- Submitter:
- Drew Parsons
- Date:
- 2025-09-28 08:15:02 UTC
- Severity:
- normal
- Tags:
mpi4py has started failing to build on sh4:
building 'mpi4py.MPI' extension
creating build/temp.linux-sh4-cpython-313/src/mpi4py
/usr/bin/mpicc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DPYMPIABI=1 -DHAVE_DLFCN_H=1 -DHAVE_DLOPEN=1 -Isrc -I/usr/include/python3.13 -c src/mpi4py/MPI.c -o build/temp.linux-sh4-cpython-313/src/mpi4py/MPI.o
src/mpi4py/MPI.c: In function ‘__pyx_pymod_exec_MPI’:
src/mpi4py/MPI.c:289780:30: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without
289780 | static CYTHON_SMALL_CODE int __pyx_pymod_exec_MPI(PyObject *__pyx_pyinit_module)
| ^~~~~~~~~~~~~~~~~~~~
/tmp/cczUpbyN.s: Assembler messages:
/tmp/cczUpbyN.s:8852502: Error: value of 0001528e too large for field of 2 bytes at 0003995f
error: command '/usr/bin/mpicc' failed with exit code 1
Likely due to changes in gcc-15, aided and abetted by cython 3.0.
Upstream suggests building with -DCYTHON_LIMITED_API=1
see https://github.com/mpi4py/mpi4py/pull/690#issuecomment-3337456651
Hi Drew, Thanks a lot for investigating this issue and reporting it, I will have a look. However, since sh4 is not a release architecture, the severity should be lowered. Adrian
Addendum: Since we switched GCC to the LRA backend for version 15 on sh4, this particular bug could actually be a regression due to the switch and we should report this upstream. A test case will be to verify whether this issue still shows with "-mno-lra". Adrian
Alas, sh4 still gives the same mpi4py build error with -mno-lra
in 4.1.0-9:
building 'mpi4py.MPI' extension
creating build/temp.linux-sh4-cpython-313/src/mpi4py
/usr/bin/mpicc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -mno-lra -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DPYMPIABI=1 -DHAVE_DLFCN_H=1 -DHAVE_DLOPEN=1 -Isrc -I/usr/include/python3.13 -c src/mpi4py/MPI.c -o build/temp.linux-sh4-cpython-313/src/mpi4py/MPI.o
src/mpi4py/MPI.c: In function ‘__pyx_pymod_exec_MPI’:
src/mpi4py/MPI.c:289780:30: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without
289780 | static CYTHON_SMALL_CODE int __pyx_pymod_exec_MPI(PyObject *__pyx_pyinit_module)
| ^~~~~~~~~~~~~~~~~~~~
/tmp/cc53m0oU.s: Assembler messages:
/tmp/cc53m0oU.s:8580427: Error: value of 00015692 too large for field of 2 bytes at 0003a273
error: command '/usr/bin/mpicc' failed with exit code 1
Hi Drew, Thanks for testing. Can you retest with gcc-14 instead? Adrian
John Paul Adrian Glaubitz wrote: Not really, no. There's no sh4 porterbox, only the buildd. It's already configured to gcc-15.
Please don't use buildds as CI, as this can clog the build queue. As for testing with sh4, you can do that with qemu-user, see: https://wiki.debian.org/SH4/sbuildQEMU But anyway, I will look into it. Thanks for reporting it! Adrian