Skip to content

std: include dlmalloc for all non-wasi Wasm targets#153686

Open
Twey wants to merge 2 commits intorust-lang:mainfrom
Twey:patch-1
Open

std: include dlmalloc for all non-wasi Wasm targets#153686
Twey wants to merge 2 commits intorust-lang:mainfrom
Twey:patch-1

Conversation

@Twey
Copy link

@Twey Twey commented Mar 11, 2026

Currently, building std for a custom Wasm target with an OS other than unknown will fail, because sys/alloc/mod.rs will attempt to use sys/alloc/wasm.rs, the dlmalloc-based allocator used on wasm32-unknown-unknown. However, currently dlmalloc is only pulled in when target_os = "unknown".

Instead, we should make Cargo.toml and alloc/mod.rs match: either

  • disable wasm.rs in alloc/mod.rs where not(target_os = "unknown"), or
  • pull in dlmalloc for all Wasm targets with target_family = "wasm32" that aren't covered by the upper branches of alloc/mod.rs.

This PR takes the latter approach, because it allows more code to compile without a custom allocator.

Currently, building std for a custom Wasm target with an OS other than `unknown` will fail, because `sys/alloc/mod.rs` will attempt to use `sys/alloc/wasm.rs`, the dlmalloc-based allocator used on `wasm32-unknown-unknown`.  However, currently dlmalloc is only pulled in when `target_os = "unknown"`.

Instead, we should make `Cargo.toml` and `alloc/mod.rs` match: either
- disable `wasm.rs` in `alloc/mod.rs` where `not(target_os = "unknown")`, or
- pull in `dlmalloc` for all Wasm targets with  `target_family = "wasm32"` that aren't covered by the [upper branches of `alloc/mod.rs`](https://github.com/rust-lang/rust/blob/main/library/std/src/sys/alloc/mod.rs#L72-L100).

This PR takes the latter approach, because it allows more code to compile without a custom allocator.
@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Mar 11, 2026
@rustbot
Copy link
Collaborator

rustbot commented Mar 11, 2026

r? @Mark-Simulacrum

rustbot has assigned @Mark-Simulacrum.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

  • Owners of files modified in this PR: @ChrisDenton, libs
  • @ChrisDenton, libs expanded to 8 candidates

@bjorn3
Copy link
Member

bjorn3 commented Mar 11, 2026

wasm32-wali-linux-musl probably also needs to omit dlmalloc.

@Twey
Copy link
Author

Twey commented Mar 11, 2026

Updated so that it is excluded on cfg(unix) in general.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-libs Relevant to the library team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants