Repository navigation
Could not verify LLVM version with Emscripten on NixOS #230
Description
Activity
You can try to run
cargo web build --use-system-emscriptento use your own emscripten version. It's in the help if you checkcargo web build --helpReacted by Thibault LemaireThank you, I was reading the source code as well and I just stumbled on that flag!
I was thinking it should be more prominent in the docs (I don't know why I didn't think of checking the
--help)I'll test that and post back here.
Well it's not the same error so that's progress I guess?
❯ cargo web build --use-system-emscripten --target=wasm32-unknown-emscripten --verbose ... error: linking with `emcc` failed: exit code: 1 | = note: "emcc" "-s" "DISABLE_EXCEPTION_CATCHING=0" "-L" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib" "/home/user/dev/stdweb/examples/target/wasm32-unknown-emscripten/debug/deps/minimal.17qvp3wvy3ge36bp.rcgu.o" "/home/user/dev/stdweb/examples/target/wasm32-unknown-emscripten/debug/deps/minimal.29ezgwktcliapzds.rcgu.o" "/home/user/dev/stdweb/examples/target/wasm32-unknown-emscripten/debug/deps/minimal.2dixcyq2dznoqf6f.rcgu.o" "/home/user/dev/stdweb/examples/target/wasm32-unknown-emscripten/debug/deps/minimal.2e3sp2f5hdniw8dq.rcgu.o" "/home/user/dev/stdweb/examples/target/wasm32-unknown-emscripten/debug/deps/minimal.2stwxpje5swges4g.rcgu.o" "/home/user/dev/stdweb/examples/target/wasm32-unknown-emscripten/debug/deps/minimal.39faxkgwwrs762t7.rcgu.o" "/home/user/dev/stdweb/examples/target/wasm32-unknown-emscripten/debug/deps/minimal.3eb8m1razly0qf8f.rcgu.o" "/home/user/dev/stdweb/examples/target/wasm32-unknown-emscripten/debug/deps/minimal.3tzo732szfa65bgw.rcgu.o" "/home/user/dev/stdweb/examples/target/wasm32-unknown-emscripten/debug/deps/minimal.443gbpfb1fa8iu4a.rcgu.o" "/home/user/dev/stdweb/examples/target/wasm32-unknown-emscripten/debug/deps/minimal.5dl1mmeah6wfm5cu.rcgu.o" "/home/user/dev/stdweb/examples/target/wasm32-unknown-emscripten/debug/deps/minimal.c2srm2fuob3bb6p.rcgu.o" "-o" "/home/user/dev/stdweb/examples/target/wasm32-unknown-emscripten/debug/deps/minimal.js" "-s" "EXPORTED_FUNCTIONS=[\"_main\",\"_rust_eh_personality\"]" "/home/user/dev/stdweb/examples/target/wasm32-unknown-emscripten/debug/deps/minimal.dbnavdkjs80i37r.rcgu.o" "-O0" "--memory-init-file" "0" "-g4" "-s" "DEFAULT_LIBRARY_FUNCS_TO_INCLUDE=[]" "-L" "/home/user/dev/stdweb/examples/target/wasm32-unknown-emscripten/debug/deps" "-L" "/home/user/dev/stdweb/examples/target/debug/deps" "-L" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib" "/home/user/dev/stdweb/examples/target/wasm32-unknown-emscripten/debug/deps/libstdweb-7a6929fc6b0490d1.rlib" "/home/user/dev/stdweb/examples/target/wasm32-unknown-emscripten/debug/deps/libdiscard-61ecf5c35989b1da.rlib" "/home/user/dev/stdweb/examples/target/wasm32-unknown-emscripten/debug/deps/libstdweb_internal_runtime-6eee130e7adc7143.rlib" "/home/user/dev/stdweb/examples/target/wasm32-unknown-emscripten/debug/deps/libserde_json-c735cd759ad596de.rlib" "/home/user/dev/stdweb/examples/target/wasm32-unknown-emscripten/debug/deps/libryu-c64b79a8ce6acb24.rlib" "/home/user/dev/stdweb/examples/target/wasm32-unknown-emscripten/debug/deps/libitoa-17a5036565265a53.rlib" "/home/user/dev/stdweb/examples/target/wasm32-unknown-emscripten/debug/deps/libserde-db64dd451a129519.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/libstd-55787d58fb5ea6fe.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/libpanic_unwind-f59a7a55c9d2b3e1.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/libhashbrown-dfc95e57308ebe8f.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/librustc_std_workspace_alloc-69c81ff795157707.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/libbacktrace-977f4d06be3c4d88.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/librustc_demangle-0bd9079b201eae64.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/libunwind-d452119022cae4dc.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/libcfg_if-1cada331e1cd4d54.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/liblibc-f5e8192cc8a59183.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/liballoc-b3d1e9d085a55269.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/librustc_std_workspace_core-c13c0ad8f20110e1.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/libcore-9f7cee0f9a15a27c.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/libcompiler_builtins-13394c9769210e34.rlib" "-l" "c" "-s" "NO_EXIT_RUNTIME=1" "-s" "ALLOW_MEMORY_GROWTH=1" "-s" "ERROR_ON_UNDEFINED_SYMBOLS=1" "-s" "ASSERTIONS=1" "-s" "ABORTING_MALLOC=0" "-Wl,--fatal-warnings" = note: shared:WARNING: object /run/user/1000/emscripten_temp_RyTEXP_archive_contents/stdweb-7a6929fc6b0490d1.11ivc8q9b1ak0uju.rcgu.o is not valid according to llvm-nm, cannot link shared:WARNING: object /run/user/1000/emscripten_temp_RyTEXP_archive_contents/stdweb-7a6929fc6b0490d1.11mnvucp52kumo9.rcgu.o is not valid according to llvm-nm, cannot link ... 532 lines omitted ... shared:WARNING: object /run/user/1000/emscripten_temp_fQbSlr_archive_contents/compiler_builtins-13394c9769210e34.compiler_builtins.5m4is7s4-cgu.0.rcgu.o is not valid according to llvm-nm, cannot link shared:WARNING: object /run/user/1000/emscripten_temp_fQbSlr_archive_contents/lib.rmeta is not valid according to llvm-nm, cannot link shared:WARNING: object /run/user/1000/emscripten_temp_fQbSlr_archive_contents/compiler_builtins-13394c9769210e34.compiler_builtins.5m4is7s4-cgu.0.rcgu.bc.z is not valid according to llvm-nm, cannot link shared:ERROR: undefined exported function: "_main" error: could not compile `minimal`. Caused by: process didn't exit successfully: `rustc --crate-name minimal minimal/src/main.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=618e83af52622a74 --out-dir /home/user/dev/stdweb/examples/target/wasm32-unknown-emscripten/debug/deps --target wasm32-unknown-emscripten -C incremental=/home/user/dev/stdweb/examples/target/wasm32-unknown-emscripten/debug/incremental -L dependency=/home/user/dev/stdweb/examples/target/wasm32-unknown-emscripten/debug/deps -L dependency=/home/user/dev/stdweb/examples/target/debug/deps --extern stdweb=/home/user/dev/stdweb/examples/target/wasm32-unknown-emscripten/debug/deps/libstdweb-7a6929fc6b0490d1.rlib --cfg cargo_web -C link-arg=-s -C link-arg=NO_EXIT_RUNTIME=1 -C link-arg=-s -C link-arg=ALLOW_MEMORY_GROWTH=1` (exit code: 1) error: aborting due to previous error error: build failedSame error for me. What's going on? did
emccbump the llvm version so it doesn't match anymore?@elichai Are you sure it's the same error?
If you're referring to the
Could not verify LLVM versionerror, in my case I'm pretty sure it's not due to a specific version of LLVM not being found, but rather LLVM not being found at all.Nope, Don't think it's the same anymore, sorry: #233
@elichai Actually, you were right! For my second error it's indeed the rust compiler
>=1.40.0that's at fault!I have successfully compiled the minimal example with version
1.39.0!For the record:
❯ cargo --version cargo 1.39.0 (1c6ec66d5 2019-09-30) ❯ cargo web start --use-system-emscripten --target=wasm32-unknown-emscripten ... Finished dev [unoptimized + debuginfo] target(s) in 1m 10s ...
When trying to compile the minimal example from stdweb to emscripten target, I get the following error:
cargo web start --target=wasm32-unknown-emscripten(some output elided)
My best guess is that emscripten can't find llvm (It should be discoverable at least through
pkg-config).Additionally, I noticed cargo-web downloaded its own version of emscripten.
I believe providing my own version of emscripten would solve the issue (from my system's packages), how can I do that?
Misc information:
This error is the same regardless of what I try to compile. I gave the minimal example for illustration and reproducibility, but I can actually reproduce with any other example project and a few other projects.
Also of note is that the
wasm32-unknown-unknowntarget successfully compiled for every example I tried.