Skip to content

Document Assemble in bootstrap #912

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

Merged
merged 1 commit into from
Oct 4, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 18 additions & 5 deletions src/building/bootstrapping.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,20 @@ Build artifacts include, but are not limited to:

[rlib]: ../serialization.md

#### Assembling the compiler

There is a separate step between building the compiler and making it possible
to run. This step is called _assembling_ or _uplifting_ the compiler. It copies
all the necessary build artifacts from `build/stageN-sysroot` to
`build/stage(N+1)`, which allows you to use `build/stage(N+1)` as a [toolchain]
with `rustup toolchain link`.

There is [no way to trigger this step on its own][#73519], but `x.py` will
perform it automatically any time you build with stage N+1.

[toolchain]: https://rustc-dev-guide.rust-lang.org/building/how-to-build-and-run.html#creating-a-rustup-toolchain
[#73519]: https://github.com/rust-lang/rust/issues/73519

#### Examples

- `x.py build --stage 0` means to build with the beta `rustc`.
Expand All @@ -166,12 +180,11 @@ Build artifacts include, but are not limited to:
- `x.py test --stage 0 compiler/rustc` builds the compiler but runs no tests:
it's running `cargo test -p rustc`, but cargo doesn't understand Rust's
tests. You shouldn't need to use this, use `test` instead (without arguments).
- `x.py build --stage 0 compiler/rustc` builds the compiler, but does not make
it usable: the build artifacts are not assembled into the final compiler
([#73519]). Use `x.py build library/std` instead, which puts the compiler in
`stage1/rustc`.
- `x.py build --stage 0 compiler/rustc` builds the compiler, but does
not [assemble] it. Use `x.py build library/std` instead, which puts the
compiler in `stage1/rustc`.

[#73519]: https://github.com/rust-lang/rust/issues/73519
[assemble]: #assembling-the-compiler

### Building vs. Running

Expand Down