Skip to content

clang generates mismatching wasm compiler-rt function signatures with -mmulti-value #59095

Closed
@TerrorJack

Description

@TerrorJack

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.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions