Expand description
Implementation of compiling various phases of the compiler and standard library.
This module contains some of the real meat in the bootstrap build system which is where Cargo is used to compile the standard library, libtest, and the compiler. This module is also responsible for assembling the sysroot as it goes along from the output of the previous stage.
Structs§
- Assemble
- Cargo
Target - Codegen
Backend - Rustc
- Rustc
Link 🔒 RustcLink
copies all of the rlibs from the rustc build into the previous stage’s sysroot. This is necessary for tools usingrustc_private
, where the previous compiler will build a tool against the next compiler. To build a tool against a compiler, the rlibs of that compiler that it links against must be in the sysroot of the compiler that’s doing the compiling.- Startup
Objects - Std
- StdLink 🔒
- Sysroot
Enums§
Constants§
Functions§
- add_
to_ sysroot - Link some files into a rustc sysroot.
- apple_
darwin_ 🔒sign_ file - apple_
darwin_ 🔒update_ library_ name - compiler_
file - compiler_
rt_ 🔒for_ profiler - Tries to find LLVM’s
compiler-rt
source directory, for buildinglibrary/profiler_builtins
. - copy_
and_ 🔒stamp - copy_
codegen_ 🔒backends_ to_ sysroot - Creates the
codegen-backends
folder for a compiler that’s about to be assembled as a complete compiler. - copy_
llvm_ 🔒libunwind - copy_
sanitizers 🔒 - Copies sanitizer runtime libraries into target libdir.
- copy_
self_ 🔒contained_ objects - Copies third party objects needed by various targets for self-contained linkage.
- copy_
third_ 🔒party_ objects - Copies third party objects needed by various targets.
- cp_
rustc_ 🔒component_ to_ ci_ sysroot - is_
codegen_ 🔒cfg_ needed - is_
lto_ stage - We only use LTO for stage 2+, to speed up build time of intermediate stages.
- needs_
codegen_ 🔒config - run_
cargo - rustc_
cargo - rustc_
cargo_ env - rustc_
llvm_ 🔒env - Pass down configuration from the LLVM build into the build of rustc_llvm and rustc_codegen_llvm.
- std_
cargo - Configure cargo to compile the standard library, adding appropriate env vars and such.
- std_
crates_ for_ run_ make - Resolves standard library crates for
Std::run_make
for any build kind (like check, build, clippy, etc.). - stream_
cargo - strip_
debug