Closed
Description
When -mmulti-value
is added in wasi-sdk (the wasi-libc
CFLAGS, and all CMAKE_C_FLAGS
& CMAKE_CXX_FLAGS
in the top-level makefile), clang generates mismatching wasm compiler-rt function signatures, as can be seen in the wasm-ld
warning messages:
wasm-ld: warning: function signature mismatch: __udivti3
>>> defined as (i32, i64, i64, i64, i64) -> void in /home/gitpod/.ghc-wasm/wasi-sdk/lib/clang/15.0.5/lib/wasi/libclang_rt.builtins-wasm32.a(muloti4.c.obj)
>>> defined as (i64, i64, i64, i64) -> i64 in /home/gitpod/.ghc-wasm/wasi-sdk/lib/clang/15.0.5/lib/wasi/libclang_rt.builtins-wasm32.a(udivti3.c.obj)
wasm-ld: warning: function signature mismatch: __multi3
>>> defined as (i32, i64, i64, i64, i64) -> void in /home/gitpod/.ghc-wasm/wasi-sdk/bin/../share/wasi-sysroot/lib/wasm32-wasi/libc.a(intscan.o)
>>> defined as (i64, i64, i64, i64) -> i64 in /home/gitpod/.ghc-wasm/wasi-sdk/lib/clang/15.0.5/lib/wasi/libclang_rt.builtins-wasm32.a(multi3.c.obj)
wasm-ld: warning: function signature mismatch: __muloti4
>>> defined as (i32, i64, i64, i64, i64, i32) -> void in /home/gitpod/.ghc-wasm/wasi-sdk/bin/../share/wasi-sysroot/lib/wasm32-wasi/libc.a(pselect.o)
>>> defined as (i64, i64, i64, i64, i32) -> i64 in /home/gitpod/.ghc-wasm/wasi-sdk/lib/clang/15.0.5/lib/wasi/libclang_rt.builtins-wasm32.a(muloti4.c.obj)
Posting the bug early, and a self-contained minimal repro should come later.