stabilize -Clinker-features=-lld on x64 linux
This stabilizes a subset of the `-Clinker-features` components on x64 linux: the lld opt-out. The opt-in is not stabilized, as interactions with other stable flags require more internal work, but are not needed for stabilizing using rust-lld by default. Similarly, since we only switch to rust-lld on x64 linux, the opt-out is only stabilized there. Other targets still require `-Zunstable-options` to use it.
This commit is contained in:
@@ -725,7 +725,7 @@ impl ToJson for LinkSelfContainedComponents {
|
||||
}
|
||||
|
||||
bitflags::bitflags! {
|
||||
/// The `-Z linker-features` components that can individually be enabled or disabled.
|
||||
/// The `-C linker-features` components that can individually be enabled or disabled.
|
||||
///
|
||||
/// They are feature flags intended to be a more flexible mechanism than linker flavors, and
|
||||
/// also to prevent a combinatorial explosion of flavors whenever a new linker feature is
|
||||
@@ -756,7 +756,7 @@ bitflags::bitflags! {
|
||||
rustc_data_structures::external_bitflags_debug! { LinkerFeatures }
|
||||
|
||||
impl LinkerFeatures {
|
||||
/// Parses a single `-Z linker-features` well-known feature, not a set of flags.
|
||||
/// Parses a single `-C linker-features` well-known feature, not a set of flags.
|
||||
pub fn from_str(s: &str) -> Option<LinkerFeatures> {
|
||||
Some(match s {
|
||||
"cc" => LinkerFeatures::CC,
|
||||
@@ -765,6 +765,17 @@ impl LinkerFeatures {
|
||||
})
|
||||
}
|
||||
|
||||
/// Return the linker feature name, as would be passed on the CLI.
|
||||
///
|
||||
/// Returns `None` if the bitflags aren't a singular component (but a mix of multiple flags).
|
||||
pub fn as_str(self) -> Option<&'static str> {
|
||||
Some(match self {
|
||||
LinkerFeatures::CC => "cc",
|
||||
LinkerFeatures::LLD => "lld",
|
||||
_ => return None,
|
||||
})
|
||||
}
|
||||
|
||||
/// Returns whether the `lld` linker feature is enabled.
|
||||
pub fn is_lld_enabled(self) -> bool {
|
||||
self.contains(LinkerFeatures::LLD)
|
||||
|
||||
Reference in New Issue
Block a user