-
Notifications
You must be signed in to change notification settings - Fork 13.4k
fix sysroot issue which appears for ci downloaded rustc #104076
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Conversation
r? @jyn514 (rustbot has picked a reviewer for you, use r? to override) |
b0b8196
to
1cf5fe6
Compare
I don't think this is the correct fix. It breaks I think a more fundamental issue is that we're using sysroots as both an input and output; ci-rustc-sysroot is an input for building rustdoc and an output for placing the new rustdoc binary. We should be using |
I played around with this a bit more - this new code may or may not be on the right track, but I don't have more time to dedicate to it.
|
Will cover it, thanks |
Can you clarify |
@ozkanonur I don't remember off the top of my head, but I think it was trying to copy a file to a sysroot directory that didn't exist, or something like that. I'd expect you to be able to replicate the error locally. |
Somehow it doesn't happen on my side. configprofile = "tools"
changelog-seen = 2
[build]
compiler-docs = true
[rust]
deny-warnings = false
download-rustc = true terminal output with printing some logs
|
5e51704
to
241bab9
Compare
src/bootstrap/compile.rs
Outdated
for stage in 0..=builder.top_stage { | ||
if stage != compiler.stage { | ||
let dir = sysroot_dir(stage); | ||
if !dir.ends_with("ci-rustc-sysroot") { | ||
let _ = fs::remove_dir_all(dir); | ||
} | ||
} | ||
} |
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.
@jyn514 I couldn't repreduce the stage 1 issue you mentioned, but still added this to ensure current sysroots will not be deleted.
ps: highlighted code is updated, builder.top_stage
in 0..=builder.top_stage
replaced with 2
Signed-off-by: ozkanonur <work@onurozkan.dev>
c6cff01
to
654a4e8
Compare
Thanks. I am still a little unsure this is the right approach, but it seems strictly better than the current situation. @bors r+ |
🌲 The tree is currently closed for pull requests below priority 1. This pull request will be tested once the tree is reopened. |
…iaskrgr Rollup of 10 pull requests Successful merges: - rust-lang#103117 (Use `IsTerminal` in place of `atty`) - rust-lang#103969 (Partial support for running UI tests with `download-rustc`) - rust-lang#103989 (Fix build of std for thumbv7a-pc-windows-msvc) - rust-lang#104076 (fix sysroot issue which appears for ci downloaded rustc) - rust-lang#104469 (Make "long type" printing type aware and trim types in E0275) - rust-lang#104497 (detect () to avoid redundant <> suggestion for type) - rust-lang#104577 (Don't focus on notable trait parent when hiding it) - rust-lang#104587 (Update cargo) - rust-lang#104593 (Improve spans for RPITIT object-safety errors) - rust-lang#104604 (Migrate top buttons style to CSS variables) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
Currently when compiler is downloaded rather than compiled, sysroot is being
ci-rustc-sysroot
because ofrust/src/bootstrap/compile.rs
Lines 1125 to 1131 in 7eef946
And rustdoc is overriding the downloaded one at the end of the process.
With the condition I add, we simply check if the current compiler stage is target build stage, if so use the proper sysroot instead of
ci-rustc-sysroot
.Resolves #103206