-
Notifications
You must be signed in to change notification settings - Fork 13.8k
Update bundled musl to 1.2.5 #142682
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Update bundled musl to 1.2.5 #142682
Conversation
These commits modify compiler targets. Some changes occurred in src/doc/rustc/src/platform-support cc @Noratrieb |
The previous PR stalled out on concerns of ecosystem breakage, but see this comment for @est31 concluding we can move forward without further mitigation: #125692 (comment) |
I would like to nominate this for FCP or whatever the current process is to land these kinds of major toolchain changes. Landing this update is expected to resolve ongoing issues in the ecosystem with rootless docker images. I've also drafted a rust-lang blogpost announcing this change (based on the previous musl update's post). |
The process for bumping the target baseline of Tier 2 targets is currently a Major Change Proposal + FCP (see Changing target baseline (e.g. minimum Darwin or Windows version bump) part). If you draft an MCP, I'll help with the notifying relevant target maintainers part.
|
r? @wesleywiser (since you've reviewed the previous attempt) |
I have filed an MCP: |
Building host compiler plus musl stds for crater run. @bors try |
Update bundled musl to 1.2.5 Update the bundled musl library from 1.2.3 to the 1.2.5 release from February 29, 2024. [musl releases page](https://musl.libc.org/releases.html) Prior update: #107129 MCP for this change: rust-lang/compiler-team#887 -------- This is a rebase of * #125692 Which removes the second speculative commit which ended up not panning out. I've added my own second commit that updates all other places I could find that referenced musl 1.2.3 in the codebase. try-job: dist-x86_64-musl try-job: dist-i586-gnu-i586-i686-musl try-job: dist-x86_64-linux
💥 Test timed out |
This comment has been minimized.
This comment has been minimized.
@bors2 delegate=try |
@Gankra can now perform try builds on this pull request |
This comment was marked as outdated.
This comment was marked as outdated.
🚧 Experiment ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more |
🎉 Experiment
Footnotes
|
That's a legit result right? Just, totally clean? |
The Full Report is full of broken crates. |
with that I get the following when applying it to a local project
Also, does crates/rustwide even have an ssh key setup to checkout repos via ssh? Using
i.e.
I remember testing this, but apparently in a different environment where I had configured cargo/git/ssh to be able to use an ssh key, so I missed this failure mode. |
I don't think this is worth continuing to run crater on and trying to figure out, because we already had rough consensus that any crater usage was purely informational. |
1926e11
to
0430c86
Compare
This comment has been minimized.
This comment has been minimized.
I've rebased the PR and I think I've fixed:
In particular we're currently on crosstool-ng 1.27 which defaults to musl 1.2.5, so all that needed to be changed was to remove explicit opt-outs for that version. The only opt-out I could find was for |
0430c86
to
52513ab
Compare
This PR was rebased onto a different master commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
If we could get crater to cooperate, that would be great (and I think it seemed to work when I bumped musl last time): @craterbot run mode=build-and-test name=musl_upgrade_1_2_5_with_getrandom_patch_2 start=try#8de4c7234dd9b97c9d76b58671343fdbbc9a433e+target=x86_64-unknown-linux-musl end=try#c066bf6804adc55193b71afdff6a56922f4a8689+target=x86_64-unknown-linux-musl+patch=getrandom=https://github.com/rust-random/getrandom=backports/v0.2 |
👌 Experiment ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall looks good to me, just a few small comments.
compiler/rustc_target/src/spec/targets/riscv32gc_unknown_linux_musl.rs
Outdated
Show resolved
Hide resolved
# A version that includes support for building musl 1.2.3 | ||
git checkout fe915821b652a7fa37b34a596f47d8e20bc72338 | ||
# A version that includes support for building musl 1.2.5 | ||
git checkout e149c31c48b4f4a4c9349ddf7bc0027b90245afc |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should bump to 7b4c7b315226835bab03da73a45945acb1b3bedf or higher to pick up the patches for CVE-2025-26519
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
bumped to the latest commit
I'd recommend still pinning the musl version explicitly so that another crosstool-ng update doesn't unintentionally bump musl to future releases. Effectively, all but 3 targets are now already using 1.2.5 even though that wasn't intended. Pinning the version like is currently done for ppc64le would prevent this. |
done |
This comment has been minimized.
This comment has been minimized.
🚧 Experiment ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more |
Update the bundled musl library from 1.2.3 to the 1.2.5 release from February 29, 2024.
*-linux-musl
targets to musl 1.2.5 compiler-team#887*-linux-musl
targets to 1.2.3 #107129This is a rebase of
Which removes the second speculative commit which ended up not panning out.
I've added my own second commit that updates all other places I could find that referenced musl 1.2.3 in the codebase.
try-job: dist-x86_64-musl
try-job: dist-i586-gnu-i586-i686-musl
try-job: dist-x86_64-linux