You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This adds missing MADV_SOFT_OFFLINE definitions for RISC-V musl targets. It is analogous to #2391 where the same definitions were added for RISC-V glibc targets. The patch addresses a rustix build issue: bytecodealliance/rustix#1462
Relevant tests in libc-test/semver have been updated
-- I have added MADV_SOFT_OFFLINE to libc-test/semver/linux-riscv64gc.txt for good measure
No placeholder or unstable values like *LAST or *MAX are
included (see rust-lang/libc#3131)
Tested locally (cd libc-test && cargo test --target riscv64gc-unknown-linux-{gnu,musl});
especially relevant for platforms that may not be checked in CI
-- I've tested the riscv64gc-unknown-linux-musl target against a riscv-gnu-toolchain musl build - there are actually a bunch of other issues with struct layout, field name, and value inconsistencies, but these are unrelated to my change.
There's one consideration I want to bring up: Instead of adding the missing definitions to the RISC-V musl targets, we could also opt for a single definition at linux_like level, with cfg guards to exempt mips platforms. The definition was actually more centralized, but 1cbc523 changed it to the approach that is currently used, and I don't know what the rationale/preference is. Let me know if you'd prefer a conditionally compiled definition in linux_like and I'll happily update the pull request.
There's one consideration I want to bring up: Instead of adding the missing definitions to the RISC-V musl targets, we could also opt for a single definition at linux_like level, with cfg guards to exempt mips platforms. The definition was actually more centralized, but 1cbc523 changed it to the approach that is currently used, and I don't know what the rationale/preference is. Let me know if you'd prefer a conditionally compiled definition in linux_like and I'll happily update the pull request.
I don't like this repo's layout :) we'll be reorganizing things soon, don't worry about it for now.
tgross35
added
stable-applied
This PR has been cherry-picked to libc's stable release branch
and removed
stable-nominated
This PR should be considered for cherry-pick to libc's stable release branch
labels
Jun 2, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This adds missing MADV_SOFT_OFFLINE definitions for RISC-V musl targets. It is analogous to #2391 where the same definitions were added for RISC-V glibc targets. The patch addresses a rustix build issue: bytecodealliance/rustix#1462
Sources
https://github.com/bminor/musl/blob/c47ad25ea3b484e10326f933e927c0bc8cded3da/include/sys/mman.h#L99
Checklist
libc-test/semverhave been updated-- I have added MADV_SOFT_OFFLINE to libc-test/semver/linux-riscv64gc.txt for good measure
*LASTor*MAXareincluded (see rust-lang/libc#3131)
cd libc-test && cargo test --target riscv64gc-unknown-linux-{gnu,musl});especially relevant for platforms that may not be checked in CI
-- I've tested the
riscv64gc-unknown-linux-musltarget against a riscv-gnu-toolchain musl build - there are actually a bunch of other issues with struct layout, field name, and value inconsistencies, but these are unrelated to my change.@rustbot label +stable-nominated