pavelsavara wrote:
I don't know who needs to hear this, but I got bitten by `wasm-opt` being on my
PATH (while using WASI SDK 22).
I was trying to compile zlib-ng for WASIp2 and it's CMake platform detection
was passing `-O3` to `check_type_size("void *" SIZEOF_DATA_PTR)`
It worked on some machines and it broke on others. Those which had `wasm-opt`
on PATH.
Because in `WASIp2` the LLVM produces WASM component not WASM module.
The wasm-opt doesn't know how to read the component binary and fails with
`parse exception: surprising value (at 0:8)`
When that happens during CMake detetection, that problem is not surfaced and
you are looking at
```
-- Check size of void *
-- sizeof(void *) is bytes
CMake Error at C:/Dev/runtime/src/native/external/zlib-ng/CMakeLists.txt:485
(message):
sizeof(void *) is neither 32 nor 64 bit
```
Until now, I was naive user of CMake.
- Maybe the `--no-wasm-opt` should be the default for WASM components
- because not doing so is not breaking change, I guess.
- Maybe the `--no-wasm-opt` should be the default everywhere
- Maybe LLVM should check wasm-opt version or compatibility first ?
- Maybe `wasm-component-ld` should pass the module to wasm-opt before it makes
component out of it ?
- Or maybe wasm-opt needs to learn how to unpack component, optimize the
modules and pack it back ?
- if wasm-opt is expected on components too
Should I open new issue for this ? Which of it and where ?
https://github.com/llvm/llvm-project/pull/95208
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits