Quoting Sébastien Jodogne (2020-11-18 20:49:27) > >> When building a large C++ project using the current package, the > >> WebAssembly linking might fail with error "emscripten:ERROR: emscript: > >> failure to parse metadata output from wasm-emscripten-finalize". > > > > Which exact options passed to wasm-emscripten-finalize? > > After inspection of "/usr/share/emscripten/emscripten.py", the options are: > > ['--detect-features', '--minimize-wasm-changes', '--dyncalls-i64', > '--global-base=1024'] > > You'll find the error log attached to this mail. > > Note how "wasm-emscripten-finalize" produced an invalid JSON file: It > contains percents that are not properly escaped. From what I see on a > working emsdk deployment, no function starting with "__invoke" in the > "declares" section should be present.
Seems the problem is not which options emscripten passes to llvm, but that llvm and binaryen are out of sync: Some renaming of "emscripten EH EH functions" was previously done by binaryen and more recently in LLVM - binaryen 98 is too new to do it and LLVM is too old to do it: https://github.com/llvm/llvm-project/commit/3bba91f64eef15956f589fa446c265a714cc7893 Here is a minimal code to reproduce that (final parts of) that same error message (tested in a clean chroot of Debian sid as of today): apt install emscripten emcc --version /usr/share/emscripten/tests/runner.py test_exceptions - Jonas -- * Jonas Smedegaard - idealist & Internet-arkitekt * Tlf.: +45 40843136 Website: http://dr.jones.dk/ [x] quote me freely [ ] ask before reusing [ ] keep private
signature.asc
Description: signature