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ยง
- 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. - StdLink ๐
Enumsยง
Constantsยง
Functionsยง
- Link some files into a rustc sysroot.
- Cargoโs output path for librustc_codegen_llvm in a given stage, compiled by a particular compiler for the specified target and backend.
- Tries to find LLVMโs
compiler-rt
source directory, for buildinglibrary/profiler_builtins
. - copy_
and_ ๐stamp - 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. - Copies third party objects needed by various targets for self-contained linkage.
- Copies third party objects needed by various targets.
- Cargoโs output path for librustc in a given stage, compiled by a particular compiler for the specified target.
- Cargoโs output path for the standard library in a given stage, compiled by a particular compiler for the specified target.
- needs_
codegen_ ๐config - rustc_
llvm_ ๐env Pass down configuration from the LLVM build into the build of rustc_llvm and rustc_codegen_llvm. - Configure cargo to compile the standard library, adding appropriate env vars and such.
- Resolves standard library crates for
Std::run_make
for any build kind (like check, build, clippy, etc.).