emscripten-core / emscripten-core/emscripten
Compile numpy 1.19+ gives function signature mismatch
- Dominant language
- C++
- Stars
- 27.6k
- Forks
- 3.6k
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 105
Description
I'm trying to compile numpy 1.19 / 1.20 / 1.21 using emcc, but get the following error:
> wasm-ld: error: function signature mismatch: zungqr_64_
> >>> defined as (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> i64 in build/temp.linux-x86_64-3.9/numpy/linalg/lapack_litemodule.o
> >>> defined as (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> i32 in build/temp.linux-x86_64-3.9/numpy/linalg/lapack_lite/f2c_z_lapack.o
Can someone give a pointer what could be wrong ? The build worked for 1.17 and 1.18. I had tried to configure `NPY_USE_BLAS_ILP64=0` environment variable based on this doc: https://numpy.org/doc/stable/user/building.html#bit-blas-and-lapack in hope of only compiling the 32 bit version. But it's still not working with the same error.
Note: there are multiple BLAS function names that throw this exception: https://github.com/numpy/numpy/blob/main/numpy/linalg/lapack_litemodule.c#L41. I just list one of them for example.
Contributor guide
Assessment
This issue has not been assessed yet.