Skip to content

build_std can't find crate for panic_abort #83805

@Timmmm

Description

@Timmmm

I'm trying to build std for wasm32-unknown-unknown. I cloned the wasm template but compiling it gives this:

$ cargo +nightly build -Z build-std --target wasm32-unknown-unknown
...
   Compiling wasm-pack-template v0.1.0 (/Users/tim/wasm-pack-template)
error[E0463]: can't find crate for `panic_abort`

I tried adding the panic_abort crate from crates.io but it gives some other errors and I'm pretty sure I shouldn't have to.

Compiling with RUSTC_LOG=info gives a bit more info:

INFO rustc_metadata::creader panic runtime not found -- loading panic_abort
INFO rustc_metadata::creader resolving crate `panic_abort`
INFO rustc_metadata::creader falling back to a load
INFO rustc_metadata::locator lib candidate: /Users/tim/.rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libpanic_abort-14c6721c1e3ddac4.rlib
INFO rustc_metadata::locator rlib reading metadata from: /Users/tim/.rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libpanic_abort-14c6721c1e3ddac4.rlib
INFO rustc_metadata::locator Rejecting via proc macro: expected true got false
INFO rustc_metadata::locator metadata mismatch

As you can see it is looking for the wrong libpanic_abort.rlib! It's especially weird because it finds the right crate when it tries to resolve other ones, e.g:

INFO rustc_metadata::creader resolving crate `cfg_if`
INFO rustc_metadata::creader falling back to a load
INFO rustc_metadata::locator lib candidate: /Users/tim/wasm-pack-template/target/wasm32-unknown-unknown/debug/deps/libcfg_if-40fde05178aa587c.rlib
INFO rustc_metadata::locator lib candidate: /Users/tim/wasm-pack-template/target/wasm32-unknown-unknown/debug/deps/libcfg_if-40fde05178aa587c.rmeta
INFO rustc_metadata::locator rmeta reading metadata from: /Users/tim/wasm-pack-template/target/wasm32-unknown-unknown/debug/deps/libcfg_if-40fde05178aa587c.rmeta
INFO rustc_metadata::creader register crate `cfg_if` (cnum = 17. private_dep = false)

And it actually did successfully compile libpanic_abort.rlib for wasm:

$ ls -1 target/wasm32-unknown-unknown/debug/deps/*panic*
target/wasm32-unknown-unknown/debug/deps/console_error_panic_hook-837ce2b56de85633.d
target/wasm32-unknown-unknown/debug/deps/libconsole_error_panic_hook-837ce2b56de85633.rlib
target/wasm32-unknown-unknown/debug/deps/libconsole_error_panic_hook-837ce2b56de85633.rmeta
target/wasm32-unknown-unknown/debug/deps/libpanic_abort-5dadd1d612661286.rlib
target/wasm32-unknown-unknown/debug/deps/libpanic_abort-5dadd1d612661286.rmeta
target/wasm32-unknown-unknown/debug/deps/libpanic_unwind-e15a40c08ac4e7e5.rlib
target/wasm32-unknown-unknown/debug/deps/libpanic_unwind-e15a40c08ac4e7e5.rmeta
target/wasm32-unknown-unknown/debug/deps/panic_abort-5dadd1d612661286.d
target/wasm32-unknown-unknown/debug/deps/panic_unwind-e15a40c08ac4e7e5.d

Possibly related to #56228. I also made a thread about this here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions