pub enum BootstrapOverrideLld {
None,
SelfContained,
External,
}
Expand description
Determines if we should override the linker used for linking Rust code built during the bootstrapping process to be LLD.
The primary use-case for this is to make local (re)builds of Rust code faster when using bootstrap.
This does not affect the behavior of the built/distributed compiler when invoked outside of bootstrap. It might affect its performance/binary size though, as that can depend on the linker that links rustc.
There are two ways of overriding the linker to be LLD:
- Self-contained LLD: use
rust-lld
from the compiler’s sysroot - External: use an external
lld
binary
It is configured depending on the target:
- Everything except MSVC
- Self-contained:
-Clinker-features=+lld -Clink-self-contained=+linker
- External:
-Clinker-features=+lld
- MSVC
- Self-contained:
-Clinker=<path to rust-lld>
- External:
-Clinker=lld
Variants§
None
Do not override the linker LLD
SelfContained
Use rust-lld
from the compiler’s sysroot
External
Use an externally provided lld
binary.
Note that the linker name cannot be overridden, the binary has to be named lld
and it has
to be in $PATH.
Implementations§
Trait Implementations§
Source§impl Clone for BootstrapOverrideLld
impl Clone for BootstrapOverrideLld
Source§fn clone(&self) -> BootstrapOverrideLld
fn clone(&self) -> BootstrapOverrideLld
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for BootstrapOverrideLld
impl Debug for BootstrapOverrideLld
Source§impl Default for BootstrapOverrideLld
impl Default for BootstrapOverrideLld
Source§fn default() -> BootstrapOverrideLld
fn default() -> BootstrapOverrideLld
Source§impl<'de> Deserialize<'de> for BootstrapOverrideLld
impl<'de> Deserialize<'de> for BootstrapOverrideLld
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Source§impl PartialEq for BootstrapOverrideLld
impl PartialEq for BootstrapOverrideLld
impl Copy for BootstrapOverrideLld
impl StructuralPartialEq for BootstrapOverrideLld
Auto Trait Implementations§
impl Freeze for BootstrapOverrideLld
impl RefUnwindSafe for BootstrapOverrideLld
impl Send for BootstrapOverrideLld
impl Sync for BootstrapOverrideLld
impl Unpin for BootstrapOverrideLld
impl UnwindSafe for BootstrapOverrideLld
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 1 byte
Size for each variant:
None
: 0 bytesSelfContained
: 0 bytesExternal
: 0 bytes