emscripten-core / emscripten-core/emscripten

Compile numpy 1.19+ gives function signature mismatch

Open
#15,272 3 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.