Skip to content

Error building libstd: with_hasher cannot be (indirectly) exposed to stable #133857

Closed
@xobs

Description

@xobs

As of yesterday's (2024-12-03) release of Rust, I am unable to build libstd for Xous:

$ RUST_COMPILER_RT_ROOT="$(pwd)/src/llvm-project/compiler-rt" \
        cargo +nightly \
        build --target riscv32imac-unknown-xous-elf 
        --manifest-path "library/sysroot/Cargo.toml"
   Compiling std v0.0.0 (/opt/Xous/rust-nightly/rust/library/std)
warning: dropping unsupported crate type `dylib` for target `riscv32imac-unknown-xous-elf`

error: `hashbrown::HashMap::<K, V, S>::with_hasher` cannot be (indirectly) exposed to stable
   --> std/src/collections/hash/map.rs:304:25
    |
304 |         HashMap { base: base::HashMap::with_hasher(hash_builder) }
    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = help: either mark the callee as `#[rustc_const_stable_indirect]`, or the caller as `#[rustc_const_unstable]`

error: `hashbrown::HashSet::<T, S>::with_hasher` cannot be (indirectly) exposed to stable
   --> std/src/collections/hash/set.rs:396:25
    |
396 |         HashSet { base: base::HashSet::with_hasher(hasher) }
    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = help: either mark the callee as `#[rustc_const_stable_indirect]`, or the caller as `#[rustc_const_unstable]`

warning: `std` (lib) generated 1 warning
error: could not compile `std` (lib) due to 2 previous errors; 1 warning emitted
$

Earlier versions did not have this error. Usually when this happens it's something Xous-specific, but in this case it looks like it's entirely within std::collections::hash.

Meta

rustc --version --verbose:

rustc 1.85.0-nightly (c44b3d50f 2024-12-03)
binary: rustc
commit-hash: c44b3d50fea96a3e0417e8264c16ea21a0a3fca2
commit-date: 2024-12-03
host: x86_64-unknown-linux-gnu
release: 1.85.0-nightly
LLVM version: 19.1.4

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-discussionCategory: Discussion or questions that doesn't represent real issues.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions