Clarify cfg(bootstrap) docs

This commit is contained in:
jyn 2023-04-08 16:53:36 -04:00 committed by Tshepang Mbambo
parent ff78970088
commit bea76af07d
1 changed files with 5 additions and 1 deletions

View File

@ -256,6 +256,10 @@ So the stage2 compiler has to recompile `std` for the target.
### Why does only libstd use `cfg(bootstrap)`?
NOTE: for docs on `cfg(bootstrap)` itself, see [Complications of Bootstrapping][complications].
[complications]: #complications-of-bootstrapping
The `rustc` generated by the stage0 compiler is linked to the freshly-built
`std`, which means that for the most part only `std` needs to be cfg-gated,
so that `rustc` can use features added to std immediately after their addition,
@ -265,7 +269,7 @@ Note this is different from any other Rust program: stage1 `rustc`
is built by the _beta_ compiler, but using the _master_ version of libstd!
The only time `rustc` uses `cfg(bootstrap)` is when it adds internal lints
that use diagnostic items. This happens very rarely.
that use diagnostic items, or when it uses unstable library features that were recently changed.
### What is a 'sysroot'?