Skip to content

emcc and wasm-ld can't link our ui tests for wasm32-unknown-emscripten? #131666

Closed
@workingjubilee

Description

@workingjubilee

Perhaps I'm holding it wrong? About a fifth of the rustc UI test suite to fail on wasm32-unknown-emscripten when trying to run ./x.py test --target wasm32-unknown-emscripten. In all cases we get an error like this:


error: linking with `emcc` failed: exit status: 1
   |
   = note: "emcc" "-s" "EXPORTED_FUNCTIONS=[\"_main\"]" "/home/jubilee/rust/rustc/build/x86_64-unknown-linux-gnu/test/ui/array-slice-vec/vector-no-ann-2/a.vector_no_ann_2.86c223511763191d-cgu.0.rcgu.o" "/home/jubilee/rust/rustc/build/x86_64-unknown-linux-gnu/test/ui/array-slice-vec/vector-no-ann-2/a.1t3t8w654vioaffrv2c1spxg2.rcgu.o" "/home/jubilee/rust/rustc/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/wasm32-unknown-emscripten/lib/libstd-6499696fb99a9577.rlib" "/home/jubilee/rust/rustc/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/wasm32-unknown-emscripten/lib/libpanic_unwind-0c3cc3cd32c2b4b3.rlib" "/home/jubilee/rust/rustc/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/wasm32-unknown-emscripten/lib/libmemchr-e7a6f41ef20fcc54.rlib" "/home/jubilee/rust/rustc/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/wasm32-unknown-emscripten/lib/librustc_demangle-d35e921e53f26e9e.rlib" "/home/jubilee/rust/rustc/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/wasm32-unknown-emscripten/lib/libstd_detect-a7a77daaad248f5e.rlib" "/home/jubilee/rust/rustc/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/wasm32-unknown-emscripten/lib/libhashbrown-e0e54cdb8e75fbf2.rlib" "/home/jubilee/rust/rustc/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/wasm32-unknown-emscripten/lib/librustc_std_workspace_alloc-9f19c89c353a136f.rlib" "/home/jubilee/rust/rustc/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/wasm32-unknown-emscripten/lib/libminiz_oxide-ffd1c27bbffc4236.rlib" "/home/jubilee/rust/rustc/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/wasm32-unknown-emscripten/lib/libadler-4452dbe2564d6cb8.rlib" "/home/jubilee/rust/rustc/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/wasm32-unknown-emscripten/lib/libunwind-684258862f7c352d.rlib" "/home/jubilee/rust/rustc/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/wasm32-unknown-emscripten/lib/libcfg_if-0f4ad8f59845e58a.rlib" "/home/jubilee/rust/rustc/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/wasm32-unknown-emscripten/lib/liblibc-2be890f74433405e.rlib" "/home/jubilee/rust/rustc/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/wasm32-unknown-emscripten/lib/liballoc-48460e2c05fc2c62.rlib" "/home/jubilee/rust/rustc/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/wasm32-unknown-emscripten/lib/librustc_std_workspace_core-841075126ac27f05.rlib" "/home/jubilee/rust/rustc/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/wasm32-unknown-emscripten/lib/libcore-ee3c0a07d74de06f.rlib" "/home/jubilee/rust/rustc/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/wasm32-unknown-emscripten/lib/libcompiler_builtins-c113413e38c4b290.rlib" "-l" "c" "-B/home/jubilee/rust/rustc/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "--target=wasm32-unknown-emscripten" "-s" "DISABLE_EXCEPTION_CATCHING=0" "-L" "/home/jubilee/rust/rustc/build/wasm32-unknown-emscripten/native/rust-test-helpers" "-L" "/home/jubilee/rust/rustc/build/x86_64-unknown-linux-gnu/test/ui/array-slice-vec/vector-no-ann-2/auxiliary" "-L" "/home/jubilee/rust/rustc/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/wasm32-unknown-emscripten/lib/self-contained" "-o" "/home/jubilee/rust/rustc/build/x86_64-unknown-linux-gnu/test/ui/array-slice-vec/vector-no-ann-2/a.wasm" "-O2" "-g0" "-sABORTING_MALLOC=0"
   = note: wasm-ld: error: /home/jubilee/.emscripten_cache/sysroot/lib/wasm32-emscripten/libstandalonewasm.a(__main_void.o): undefined symbol: main

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-linkageArea: linking into static, shared libraries and binariesA-testsuiteArea: The testsuite used to check the correctness of rustcC-bugCategory: This is a bug.O-emscriptenTarget: 50% off wasm32-unknown-musl. the savings come out of stdio.h, but hey, you get SDL!T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions