Module dist

Source
Expand description

Implementation of the various distribution aspects of the compiler.

This module is responsible for creating tarballs of the standard library, compiler, and documentation. This ends up being what we distribute to everyone as well.

No tarball is actually created literally in this file, but rather we shell out to rust-installer still. This may one day be replaced with bits and pieces of rustup.rs!

Structs§

Analysis
Bootstrap
Tarball intended for internal consumption to ease rustc/std development.
BuildManifest
Tarball containing a prebuilt version of the build-manifest tool, intended to be used by the release process to avoid cloning the monorepo and building stuff.
Cargo
Clippy
CodegenBackend
DebuggerScripts
Docs
Extended
Gcc
Tarball containing a prebuilt version of the libgccjit library, needed as a dependency for the GCC codegen backend (similarly to the LLVM backend needing a prebuilt libLLVM).
JsonDocs
LlvmBitcodeLinker
LlvmTools
Mingw
Miri
PlainSourceTarball
ReproducibleArtifacts
Tarball containing artifacts necessary to reproduce the build of rustc.
RustAnalyzer
RustDev
Tarball intended for internal consumption to ease rustc/std development.
Rustc
RustcDev
Tarball containing the compiler that gets downloaded and used by rust.download-rustc.
RustcDocs
Rustfmt
Src
Std

Functions§

add_env πŸ”’
copy_src_dirs πŸ”’
Use the builder to make a filtered copy of base/X for X in (src_dirs - exclude_dirs) to dst_dir.
copy_target_libs πŸ”’
Copy stamped files into an image’s target/lib directory.
distdir πŸ”’
find_files πŸ”’
install_llvm_file πŸ”’
make_win_dist πŸ”’
maybe_install_llvm πŸ”’
Maybe add LLVM object files to the given destination lib-dir. Allows either static or dynamic linking.
maybe_install_llvm_runtime
Maybe add libLLVM.so to the runtime lib-dir for rustc itself.
maybe_install_llvm_target
Maybe add libLLVM.so to the target lib-dir for linking.
pkgname
should_build_extended_tool πŸ”’
skip_host_target_lib πŸ”’
tmpdir
verify_uefi_rlib_format πŸ”’
Check that all objects in rlibs for UEFI targets are COFF. This ensures that the C compiler isn’t producing ELF objects, which would not link correctly with the COFF objects.