-
Notifications
You must be signed in to change notification settings - Fork 12.5k
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
complicated build stages #119946
Comments
Note that there's been lots of prior discussion on this: |
I think some of this logic is also just wrong. For instance: rust/src/bootstrap/src/core/build_steps/tool.rs Lines 822 to 840 in 288daeb
This copies the clippy/miri built with the stage N compiler into the stage N sysroot. But that makes no sense: for rustc we copy the rustc built with the stage N compiler into the stage N+1 sysroot. The same should happen here. Currently, miri.exe that is copied to the stage 1 sysroot needs to be loaded with the libraries that are in the stage 2 sysroot. Clearly that makes no sense. |
So specifically, currently we're copying from stage1-tools-bin to stage1/bin. But we're also copying from stage1-rustc to stage2/bin. One of these has to be wrong, I think -- and I think it's the tools that are wrong. |
Additional ref. to this issue: https://rust-lang.zulipchat.com/#narrow/stream/326414-t-infra.2Fbootstrap/topic/Stage.20for.20copying.20tools.20into.20the.20sysroot |
Current approach on bootstrap stages adds too much complexity on the bootstrap codebase; the complexity continues to grow with the additional changes made on bootstrap and it's not even functioning correctly (like writing incorrect stages to stdout on certain commands).
One possible solution could be to handle stage behaviours as part of the
Step
trait individually onStep
implementation.Some references to why current implementation of step calculations is making things so difficult/complicated:
rust/src/bootstrap/src/core/build_steps/compile.rs
Lines 839 to 847 in ef32456
rust/src/bootstrap/src/core/build_steps/compile.rs
Lines 905 to 926 in ef32456
Particularly, the behaviors of the force_use_stage function are not really useful for all use cases (for instance, see #118233 and #118918)
rust/src/bootstrap/src/lib.rs
Lines 1403 to 1417 in ef32456
@rustbot label +T-bootstrap
The text was updated successfully, but these errors were encountered: