Auto merge of #122305 - Nilstrieb:target-tiers, r=davidtwco

Add metadata to targets

follow up to #121905 and #122157

This adds four pieces of metadata to every target:
- description
- tier
- host tools
- std

This information is currently scattered across target docs and both
- not machine readable, making validation harder
- sometimes subtly encoding by the table it's in, causing mistakes and making it harder to review changes to the properties

By putting it in the compiler, we improve this. Later, we will use this canonical information to generate target documentation from it.

I used find-replace for all the `description: None`.

One thing I'm not sure about is the behavior for the JSON. It doesn't really make sense that custom targets supply this information, especially the tier. But for the roundtrip tests, we do need to print and parse it. Maybe emit a warning when a custom target provides the metadata key? Either way, I don't think that's important right now, this PR should get merged ASAP or it will conflict all over the place.

r? davidtwco
This commit is contained in:
bors 2024-03-11 12:27:15 +00:00
commit d255c6a57c
232 changed files with 1422 additions and 238 deletions

View File

@ -2,7 +2,9 @@ use std::borrow::Cow;
use std::collections::BTreeMap; use std::collections::BTreeMap;
pub use serde_json::Value as Json; pub use serde_json::Value as Json;
use serde_json::{Map, Number}; use serde_json::{json, Map, Number};
use crate::spec::TargetMetadata;
pub trait ToJson { pub trait ToJson {
fn to_json(&self) -> Json; fn to_json(&self) -> Json;
@ -120,3 +122,14 @@ impl ToJson for crate::abi::call::Conv {
Json::String(s.to_owned()) Json::String(s.to_owned())
} }
} }
impl ToJson for TargetMetadata {
fn to_json(&self) -> Json {
json!({
"description": self.description,
"tier": self.tier,
"host_tools": self.host_tools,
"std": self.std,
})
}
}

View File

@ -8,7 +8,12 @@ use object::elf;
pub fn target(target_cpu: &'static str, mmcu: &'static str) -> Target { pub fn target(target_cpu: &'static str, mmcu: &'static str) -> Target {
Target { Target {
arch: "avr".into(), arch: "avr".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
data_layout: "e-P1-p:16:8-i8:8-i16:8-i32:8-i64:8-f32:8-f64:8-n8-a:8".into(), data_layout: "e-P1-p:16:8-i8:8-i16:8-i32:8-i64:8-f32:8-f64:8-n8-a:8".into(),
llvm_target: "avr-unknown-unknown".into(), llvm_target: "avr-unknown-unknown".into(),
pointer_width: 16, pointer_width: 16,

View File

@ -1743,11 +1743,9 @@ impl TargetWarnings {
pub struct Target { pub struct Target {
/// Target triple to pass to LLVM. /// Target triple to pass to LLVM.
pub llvm_target: StaticCow<str>, pub llvm_target: StaticCow<str>,
/// A short description of the target including platform requirements, /// Metadata about a target, for example the description or tier.
/// for example "64-bit Linux (kernel 3.2+, glibc 2.17+)". /// Used for generating target documentation.
/// Optional for now, intended to be required in the future. pub metadata: TargetMetadata,
/// Part of #120745.
pub description: Option<StaticCow<str>>,
/// Number of bits in a pointer. Influences the `target_pointer_width` `cfg` variable. /// Number of bits in a pointer. Influences the `target_pointer_width` `cfg` variable.
pub pointer_width: u32, pub pointer_width: u32,
/// Architecture to use for ABI considerations. Valid options include: "x86", /// Architecture to use for ABI considerations. Valid options include: "x86",
@ -1759,6 +1757,23 @@ pub struct Target {
pub options: TargetOptions, pub options: TargetOptions,
} }
/// Metadata about a target like the description or tier.
/// Part of #120745.
/// All fields are optional for now, but intended to be required in the future.
#[derive(Default, PartialEq, Clone, Debug)]
pub struct TargetMetadata {
/// A short description of the target including platform requirements,
/// for example "64-bit Linux (kernel 3.2+, glibc 2.17+)".
pub description: Option<StaticCow<str>>,
/// The tier of the target. 1, 2 or 3.
pub tier: Option<u64>,
/// Whether the Rust project ships host tools for a target.
pub host_tools: Option<bool>,
/// Whether a target has the `std` library. This is usually true for targets running
/// on an operating system.
pub std: Option<bool>,
}
impl Target { impl Target {
pub fn parse_data_layout(&self) -> Result<TargetDataLayout, TargetDataLayoutErrors<'_>> { pub fn parse_data_layout(&self) -> Result<TargetDataLayout, TargetDataLayoutErrors<'_>> {
let mut dl = TargetDataLayout::parse_from_llvm_datalayout_string(&self.data_layout)?; let mut dl = TargetDataLayout::parse_from_llvm_datalayout_string(&self.data_layout)?;
@ -2549,7 +2564,7 @@ impl Target {
let mut base = Target { let mut base = Target {
llvm_target: get_req_field("llvm-target")?.into(), llvm_target: get_req_field("llvm-target")?.into(),
description: get_req_field("description").ok().map(Into::into), metadata: Default::default(),
pointer_width: get_req_field("target-pointer-width")? pointer_width: get_req_field("target-pointer-width")?
.parse::<u32>() .parse::<u32>()
.map_err(|_| "target-pointer-width must be an integer".to_string())?, .map_err(|_| "target-pointer-width must be an integer".to_string())?,
@ -2558,6 +2573,22 @@ impl Target {
options: Default::default(), options: Default::default(),
}; };
// FIXME: This doesn't properly validate anything and just ignores the data if it's invalid.
// That's okay for now, the only use of this is when generating docs, which we don't do for
// custom targets.
if let Some(Json::Object(mut metadata)) = obj.remove("metadata") {
base.metadata.description = metadata
.remove("description")
.and_then(|desc| desc.as_str().map(|desc| desc.to_owned().into()));
base.metadata.tier = metadata
.remove("tier")
.and_then(|tier| tier.as_u64())
.filter(|tier| (1..=3).contains(tier));
base.metadata.host_tools =
metadata.remove("host_tools").and_then(|host| host.as_bool());
base.metadata.std = metadata.remove("std").and_then(|host| host.as_bool());
}
let mut incorrect_type = vec![]; let mut incorrect_type = vec![];
macro_rules! key { macro_rules! key {
@ -3253,7 +3284,7 @@ impl ToJson for Target {
} }
target_val!(llvm_target); target_val!(llvm_target);
target_val!(description); target_val!(metadata);
d.insert("target-pointer-width".to_string(), self.pointer_width.to_string().to_json()); d.insert("target-pointer-width".to_string(), self.pointer_width.to_string().to_json());
target_val!(arch); target_val!(arch);
target_val!(data_layout); target_val!(data_layout);

View File

@ -15,7 +15,12 @@ pub fn target() -> Target {
// MACOSX_DEPLOYMENT_TARGET. To enable cross-language LTO to work // MACOSX_DEPLOYMENT_TARGET. To enable cross-language LTO to work
// correctly, we do too. // correctly, we do too.
llvm_target: macos_llvm_target(arch).into(), llvm_target: macos_llvm_target(arch).into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
arch: arch.target_arch(), arch: arch.target_arch(),

View File

@ -12,7 +12,12 @@ pub fn target() -> Target {
// This is required for the target to pick the right // This is required for the target to pick the right
// MACH-O commands, so we do too. // MACH-O commands, so we do too.
llvm_target: ios_llvm_target(arch).into(), llvm_target: ios_llvm_target(arch).into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
arch: arch.target_arch(), arch: arch.target_arch(),

View File

@ -8,7 +8,12 @@ pub fn target() -> Target {
Target { Target {
llvm_target: mac_catalyst_llvm_target(arch).into(), llvm_target: mac_catalyst_llvm_target(arch).into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
arch: arch.target_arch(), arch: arch.target_arch(),

View File

@ -12,7 +12,12 @@ pub fn target() -> Target {
// This is required for the simulator target to pick the right // This is required for the simulator target to pick the right
// MACH-O commands, so we do too. // MACH-O commands, so we do too.
llvm_target: ios_sim_llvm_target(arch).into(), llvm_target: ios_sim_llvm_target(arch).into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
arch: arch.target_arch(), arch: arch.target_arch(),

View File

@ -5,7 +5,12 @@ pub fn target() -> Target {
let arch = Arch::Arm64; let arch = Arch::Arm64;
Target { Target {
llvm_target: tvos_llvm_target(arch).into(), llvm_target: tvos_llvm_target(arch).into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
arch: arch.target_arch(), arch: arch.target_arch(),

View File

@ -5,7 +5,12 @@ pub fn target() -> Target {
let arch = Arch::Arm64_sim; let arch = Arch::Arm64_sim;
Target { Target {
llvm_target: tvos_sim_llvm_target(arch).into(), llvm_target: tvos_sim_llvm_target(arch).into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
arch: arch.target_arch(), arch: arch.target_arch(),

View File

@ -5,7 +5,12 @@ pub fn target() -> Target {
let base = opts("watchos", Arch::Arm64); let base = opts("watchos", Arch::Arm64);
Target { Target {
llvm_target: "aarch64-apple-watchos".into(), llvm_target: "aarch64-apple-watchos".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
arch: "aarch64".into(), arch: "aarch64".into(),

View File

@ -9,7 +9,12 @@ pub fn target() -> Target {
// This is required for the simulator target to pick the right // This is required for the simulator target to pick the right
// MACH-O commands, so we do too. // MACH-O commands, so we do too.
llvm_target: watchos_sim_llvm_target(arch).into(), llvm_target: watchos_sim_llvm_target(arch).into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
arch: arch.target_arch(), arch: arch.target_arch(),

View File

@ -4,7 +4,12 @@ use crate::spec::{base, StackProbeType, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "aarch64_be-unknown-linux-gnu".into(), llvm_target: "aarch64_be-unknown-linux-gnu".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(), data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
arch: "aarch64".into(), arch: "aarch64".into(),

View File

@ -7,7 +7,12 @@ pub fn target() -> Target {
Target { Target {
llvm_target: "aarch64_be-unknown-linux-gnu_ilp32".into(), llvm_target: "aarch64_be-unknown-linux-gnu_ilp32".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "E-m:e-p:32:32-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(), data_layout: "E-m:e-p:32:32-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
arch: "aarch64".into(), arch: "aarch64".into(),

View File

@ -4,7 +4,12 @@ use crate::spec::{base, StackProbeType, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "aarch64_be-unknown-netbsd".into(), llvm_target: "aarch64_be-unknown-netbsd".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(), data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
arch: "aarch64".into(), arch: "aarch64".into(),

View File

@ -4,7 +4,12 @@ pub fn target() -> Target {
let base = base::solid::opts("asp3"); let base = base::solid::opts("asp3");
Target { Target {
llvm_target: "aarch64-unknown-none".into(), llvm_target: "aarch64-unknown-none".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
arch: "aarch64".into(), arch: "aarch64".into(),

View File

@ -6,7 +6,12 @@ use crate::spec::{base, SanitizerSet, StackProbeType, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "aarch64-linux-android".into(), llvm_target: "aarch64-linux-android".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
arch: "aarch64".into(), arch: "aarch64".into(),

View File

@ -8,7 +8,12 @@ const LINKER_SCRIPT: &str = include_str!("./aarch64_nintendo_switch_freestanding
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "aarch64-unknown-none".into(), llvm_target: "aarch64-unknown-none".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
arch: "aarch64".into(), arch: "aarch64".into(),

View File

@ -8,7 +8,12 @@ pub fn target() -> Target {
Target { Target {
llvm_target: "aarch64-pc-windows-gnu".into(), llvm_target: "aarch64-pc-windows-gnu".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128".into(),
arch: "aarch64".into(), arch: "aarch64".into(),

View File

@ -7,7 +7,12 @@ pub fn target() -> Target {
Target { Target {
llvm_target: "aarch64-pc-windows-msvc".into(), llvm_target: "aarch64-pc-windows-msvc".into(),
description: Some("ARM64 Windows MSVC".into()), metadata: crate::spec::TargetMetadata {
description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128".into(),
arch: "aarch64".into(), arch: "aarch64".into(),

View File

@ -3,7 +3,12 @@ use crate::spec::{base, SanitizerSet, StackProbeType, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "aarch64-unknown-freebsd".into(), llvm_target: "aarch64-unknown-freebsd".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
arch: "aarch64".into(), arch: "aarch64".into(),

View File

@ -3,7 +3,12 @@ use crate::spec::{base, SanitizerSet, StackProbeType, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "aarch64-unknown-fuchsia".into(), llvm_target: "aarch64-unknown-fuchsia".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
arch: "aarch64".into(), arch: "aarch64".into(),

View File

@ -3,7 +3,12 @@ use crate::spec::{base, StackProbeType, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "aarch64-unknown-hermit".into(), llvm_target: "aarch64-unknown-hermit".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
arch: "aarch64".into(), arch: "aarch64".into(),
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),

View File

@ -11,7 +11,12 @@ pub fn target() -> Target {
// LLVM does not currently have a separate illumos target, // LLVM does not currently have a separate illumos target,
// so we still pass Solaris to it // so we still pass Solaris to it
llvm_target: "aarch64-unknown-solaris2.11".into(), llvm_target: "aarch64-unknown-solaris2.11".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
arch: "aarch64".into(), arch: "aarch64".into(),

View File

@ -3,7 +3,12 @@ use crate::spec::{base, SanitizerSet, StackProbeType, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "aarch64-unknown-linux-gnu".into(), llvm_target: "aarch64-unknown-linux-gnu".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
arch: "aarch64".into(), arch: "aarch64".into(),

View File

@ -3,7 +3,12 @@ use crate::spec::{base, StackProbeType, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "aarch64-unknown-linux-gnu_ilp32".into(), llvm_target: "aarch64-unknown-linux-gnu_ilp32".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:e-p:32:32-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
arch: "aarch64".into(), arch: "aarch64".into(),

View File

@ -14,7 +14,12 @@ pub fn target() -> Target {
Target { Target {
llvm_target: "aarch64-unknown-linux-musl".into(), llvm_target: "aarch64-unknown-linux-musl".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
arch: "aarch64".into(), arch: "aarch64".into(),

View File

@ -8,7 +8,12 @@ pub fn target() -> Target {
Target { Target {
// LLVM 15 doesn't support OpenHarmony yet, use a linux target instead. // LLVM 15 doesn't support OpenHarmony yet, use a linux target instead.
llvm_target: "aarch64-unknown-linux-musl".into(), llvm_target: "aarch64-unknown-linux-musl".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
arch: "aarch64".into(), arch: "aarch64".into(),

View File

@ -3,7 +3,12 @@ use crate::spec::{base, StackProbeType, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "aarch64-unknown-netbsd".into(), llvm_target: "aarch64-unknown-netbsd".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
arch: "aarch64".into(), arch: "aarch64".into(),

View File

@ -31,7 +31,12 @@ pub fn target() -> Target {
}; };
Target { Target {
llvm_target: "aarch64-unknown-none".into(), llvm_target: "aarch64-unknown-none".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
arch: "aarch64".into(), arch: "aarch64".into(),

View File

@ -25,7 +25,12 @@ pub fn target() -> Target {
}; };
Target { Target {
llvm_target: "aarch64-unknown-none".into(), llvm_target: "aarch64-unknown-none".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
arch: "aarch64".into(), arch: "aarch64".into(),

View File

@ -3,7 +3,12 @@ use crate::spec::{base, Cc, LinkerFlavor, Lld, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "aarch64-unknown-unknown".into(), llvm_target: "aarch64-unknown-unknown".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
// from: https://llvm.org/docs/LangRef.html#data-layout // from: https://llvm.org/docs/LangRef.html#data-layout
// e = little endian // e = little endian

View File

@ -3,7 +3,12 @@ use crate::spec::{base, StackProbeType, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "aarch64-unknown-openbsd".into(), llvm_target: "aarch64-unknown-openbsd".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
arch: "aarch64".into(), arch: "aarch64".into(),

View File

@ -8,7 +8,12 @@ pub fn target() -> Target {
Target { Target {
llvm_target: "aarch64-unknown-redox".into(), llvm_target: "aarch64-unknown-redox".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
arch: "aarch64".into(), arch: "aarch64".into(),

View File

@ -8,7 +8,12 @@ pub fn target() -> Target {
Target { Target {
llvm_target: "aarch64-unknown-none".into(), llvm_target: "aarch64-unknown-none".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
arch: "aarch64".into(), arch: "aarch64".into(),

View File

@ -12,7 +12,12 @@ pub fn target() -> Target {
Target { Target {
llvm_target: "aarch64-unknown-windows".into(), llvm_target: "aarch64-unknown-windows".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128".into(),
arch: "aarch64".into(), arch: "aarch64".into(),

View File

@ -7,7 +7,12 @@ pub fn target() -> Target {
Target { Target {
llvm_target: "aarch64-pc-windows-msvc".into(), llvm_target: "aarch64-pc-windows-msvc".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128".into(),
arch: "aarch64".into(), arch: "aarch64".into(),

View File

@ -3,7 +3,12 @@ use crate::spec::{base, StackProbeType, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "aarch64-unknown-linux-gnu".into(), llvm_target: "aarch64-unknown-linux-gnu".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
arch: "aarch64".into(), arch: "aarch64".into(),

View File

@ -5,7 +5,12 @@ pub fn target() -> Target {
let base = opts("watchos", Arch::Arm64_32); let base = opts("watchos", Arch::Arm64_32);
Target { Target {
llvm_target: "arm64_32-apple-watchos".into(), llvm_target: "arm64_32-apple-watchos".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:o-p:32:32-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:o-p:32:32-i64:64-i128:128-n32:64-S128".into(),
arch: "aarch64".into(), arch: "aarch64".into(),

View File

@ -15,7 +15,12 @@ pub fn target() -> Target {
// MACOSX_DEPLOYMENT_TARGET. To enable cross-language LTO to work // MACOSX_DEPLOYMENT_TARGET. To enable cross-language LTO to work
// correctly, we do too. // correctly, we do too.
llvm_target: macos_llvm_target(arch).into(), llvm_target: macos_llvm_target(arch).into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
arch: arch.target_arch(), arch: arch.target_arch(),

View File

@ -12,7 +12,12 @@ pub fn target() -> Target {
// This is required for the target to pick the right // This is required for the target to pick the right
// MACH-O commands, so we do too. // MACH-O commands, so we do too.
llvm_target: ios_llvm_target(arch).into(), llvm_target: ios_llvm_target(arch).into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
arch: arch.target_arch(), arch: arch.target_arch(),

View File

@ -12,7 +12,12 @@ pub fn target() -> Target {
Target { Target {
llvm_target: "arm64ec-pc-windows-msvc".into(), llvm_target: "arm64ec-pc-windows-msvc".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128".into(),
arch: "arm64ec".into(), arch: "arm64ec".into(),

View File

@ -3,7 +3,12 @@ use crate::spec::{base, SanitizerSet, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "arm-linux-androideabi".into(), llvm_target: "arm-linux-androideabi".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -3,7 +3,12 @@ use crate::spec::{base, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "arm-unknown-linux-gnueabi".into(), llvm_target: "arm-unknown-linux-gnueabi".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -3,7 +3,12 @@ use crate::spec::{base, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "arm-unknown-linux-gnueabihf".into(), llvm_target: "arm-unknown-linux-gnueabihf".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -6,7 +6,12 @@ pub fn target() -> Target {
// to determine the calling convention and float ABI, and it doesn't // to determine the calling convention and float ABI, and it doesn't
// support the "musleabi" value. // support the "musleabi" value.
llvm_target: "arm-unknown-linux-gnueabi".into(), llvm_target: "arm-unknown-linux-gnueabi".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -6,7 +6,12 @@ pub fn target() -> Target {
// uses it to determine the calling convention and float ABI, and it // uses it to determine the calling convention and float ABI, and it
// doesn't support the "musleabihf" value. // doesn't support the "musleabihf" value.
llvm_target: "arm-unknown-linux-gnueabihf".into(), llvm_target: "arm-unknown-linux-gnueabihf".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -4,7 +4,12 @@ use crate::spec::{base, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "armeb-unknown-linux-gnueabi".into(), llvm_target: "armeb-unknown-linux-gnueabi".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "E-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "E-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -6,7 +6,12 @@ use crate::spec::{Cc, LinkerFlavor, Lld, PanicStrategy, RelocModel, Target, Targ
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "armebv7r-none-eabi".into(), llvm_target: "armebv7r-none-eabi".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "E-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "E-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -6,7 +6,12 @@ use crate::spec::{Cc, LinkerFlavor, Lld, PanicStrategy, RelocModel, Target, Targ
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "armebv7r-none-eabihf".into(), llvm_target: "armebv7r-none-eabihf".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "E-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "E-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -14,7 +14,12 @@ use crate::spec::{cvs, Cc, LinkerFlavor, Lld, PanicStrategy, RelocModel, Target,
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "armv4t-none-eabi".into(), llvm_target: "armv4t-none-eabi".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
arch: "arm".into(), arch: "arm".into(),
/* Data layout args are '-' separated: /* Data layout args are '-' separated:

View File

@ -3,7 +3,12 @@ use crate::spec::{base, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "armv4t-unknown-linux-gnueabi".into(), llvm_target: "armv4t-unknown-linux-gnueabi".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -5,7 +5,12 @@ use crate::spec::{base, cvs, FramePointer, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "armv5te-none-eabi".into(), llvm_target: "armv5te-none-eabi".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
arch: "arm".into(), arch: "arm".into(),
/* Data layout args are '-' separated: /* Data layout args are '-' separated:

View File

@ -3,7 +3,12 @@ use crate::spec::{base, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "armv5te-unknown-linux-gnueabi".into(), llvm_target: "armv5te-unknown-linux-gnueabi".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -7,7 +7,12 @@ pub fn target() -> Target {
// uses it to determine the calling convention and float ABI, and LLVM // uses it to determine the calling convention and float ABI, and LLVM
// doesn't support the "musleabihf" value. // doesn't support the "musleabihf" value.
llvm_target: "armv5te-unknown-linux-gnueabi".into(), llvm_target: "armv5te-unknown-linux-gnueabi".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -3,7 +3,12 @@ use crate::spec::{base, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "armv5te-unknown-linux-uclibcgnueabi".into(), llvm_target: "armv5te-unknown-linux-uclibcgnueabi".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -3,7 +3,12 @@ use crate::spec::{base, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "armv6-unknown-freebsd-gnueabihf".into(), llvm_target: "armv6-unknown-freebsd-gnueabihf".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -3,7 +3,12 @@ use crate::spec::{base, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "armv6-unknown-netbsdelf-eabihf".into(), llvm_target: "armv6-unknown-netbsdelf-eabihf".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -12,7 +12,12 @@ pub fn target() -> Target {
Target { Target {
llvm_target: "armv6k-none-eabihf".into(), llvm_target: "armv6k-none-eabihf".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -13,7 +13,12 @@ pub fn target() -> Target {
base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-march=armv7-a"]); base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-march=armv7-a"]);
Target { Target {
llvm_target: "armv7-none-linux-android".into(), llvm_target: "armv7-none-linux-android".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -13,7 +13,12 @@ pub fn target() -> Target {
Target { Target {
llvm_target: "thumbv7a-vita-eabihf".into(), llvm_target: "thumbv7a-vita-eabihf".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -3,7 +3,12 @@ use crate::spec::{base, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "armv7-unknown-freebsd-gnueabihf".into(), llvm_target: "armv7-unknown-freebsd-gnueabihf".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -6,7 +6,12 @@ use crate::spec::{base, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "armv7-unknown-linux-gnueabi".into(), llvm_target: "armv7-unknown-linux-gnueabi".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -6,7 +6,12 @@ use crate::spec::{base, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "armv7-unknown-linux-gnueabihf".into(), llvm_target: "armv7-unknown-linux-gnueabihf".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -11,7 +11,12 @@ pub fn target() -> Target {
// to determine the calling convention and float ABI, and it doesn't // to determine the calling convention and float ABI, and it doesn't
// support the "musleabi" value. // support the "musleabi" value.
llvm_target: "armv7-unknown-linux-gnueabi".into(), llvm_target: "armv7-unknown-linux-gnueabi".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -8,7 +8,12 @@ pub fn target() -> Target {
// uses it to determine the calling convention and float ABI, and LLVM // uses it to determine the calling convention and float ABI, and LLVM
// doesn't support the "musleabihf" value. // doesn't support the "musleabihf" value.
llvm_target: "armv7-unknown-linux-gnueabihf".into(), llvm_target: "armv7-unknown-linux-gnueabihf".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -9,7 +9,12 @@ pub fn target() -> Target {
Target { Target {
// LLVM 15 doesn't support OpenHarmony yet, use a linux target instead. // LLVM 15 doesn't support OpenHarmony yet, use a linux target instead.
llvm_target: "armv7-unknown-linux-gnueabi".into(), llvm_target: "armv7-unknown-linux-gnueabi".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -7,7 +7,12 @@ pub fn target() -> Target {
let base = base::linux_uclibc::opts(); let base = base::linux_uclibc::opts();
Target { Target {
llvm_target: "armv7-unknown-linux-gnueabi".into(), llvm_target: "armv7-unknown-linux-gnueabi".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -7,7 +7,12 @@ pub fn target() -> Target {
let base = base::linux_uclibc::opts(); let base = base::linux_uclibc::opts();
Target { Target {
llvm_target: "armv7-unknown-linux-gnueabihf".into(), llvm_target: "armv7-unknown-linux-gnueabihf".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -3,7 +3,12 @@ use crate::spec::{base, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "armv7-unknown-netbsdelf-eabihf".into(), llvm_target: "armv7-unknown-netbsdelf-eabihf".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -3,7 +3,12 @@ use crate::spec::{base, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "armv7-unknown-linux-gnueabihf".into(), llvm_target: "armv7-unknown-linux-gnueabihf".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -4,7 +4,12 @@ pub fn target() -> Target {
let base = base::solid::opts("asp3"); let base = base::solid::opts("asp3");
Target { Target {
llvm_target: "armv7a-none-eabi".into(), llvm_target: "armv7a-none-eabi".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -4,7 +4,12 @@ pub fn target() -> Target {
let base = base::solid::opts("asp3"); let base = base::solid::opts("asp3");
Target { Target {
llvm_target: "armv7a-none-eabihf".into(), llvm_target: "armv7a-none-eabihf".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -32,7 +32,12 @@ pub fn target() -> Target {
}; };
Target { Target {
llvm_target: "armv7a-none-eabi".into(), llvm_target: "armv7a-none-eabi".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -24,7 +24,12 @@ pub fn target() -> Target {
}; };
Target { Target {
llvm_target: "armv7a-none-eabihf".into(), llvm_target: "armv7a-none-eabihf".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -5,7 +5,12 @@ pub fn target() -> Target {
let arch = Arch::Armv7k; let arch = Arch::Armv7k;
Target { Target {
llvm_target: "armv7k-apple-watchos".into(), llvm_target: "armv7k-apple-watchos".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:o-p:32:32-Fi8-i64:64-a:0:32-n32-S128".into(), data_layout: "e-m:o-p:32:32-Fi8-i64:64-a:0:32-n32-S128".into(),
arch: arch.target_arch(), arch: arch.target_arch(),

View File

@ -5,7 +5,12 @@ use crate::spec::{Cc, LinkerFlavor, Lld, PanicStrategy, RelocModel, Target, Targ
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "armv7r-none-eabi".into(), llvm_target: "armv7r-none-eabi".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -5,7 +5,12 @@ use crate::spec::{Cc, LinkerFlavor, Lld, PanicStrategy, RelocModel, Target, Targ
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "armv7r-none-eabihf".into(), llvm_target: "armv7r-none-eabihf".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -5,7 +5,12 @@ pub fn target() -> Target {
let arch = Arch::Armv7s; let arch = Arch::Armv7s;
Target { Target {
llvm_target: ios_llvm_target(arch).into(), llvm_target: ios_llvm_target(arch).into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:o-p:32:32-Fi8-f64:32:64-v64:32:64-v128:32:128-a:0:32-n32-S32".into(), data_layout: "e-m:o-p:32:32-Fi8-f64:32:64-v64:32:64-v128:32:128-a:0:32-n32-S32".into(),
arch: arch.target_arch(), arch: arch.target_arch(),

View File

@ -5,7 +5,12 @@ use crate::spec::{Cc, LinkerFlavor, Lld, PanicStrategy, RelocModel, Target, Targ
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "armv8r-none-eabihf".into(), llvm_target: "armv8r-none-eabihf".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
arch: "arm".into(), arch: "arm".into(),

View File

@ -4,7 +4,12 @@ use crate::{abi::Endian, spec::base};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "bpfeb".into(), llvm_target: "bpfeb".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
data_layout: "E-m:e-p:64:64-i64:64-i128:128-n32:64-S128".into(), data_layout: "E-m:e-p:64:64-i64:64-i128:128-n32:64-S128".into(),
pointer_width: 64, pointer_width: 64,
arch: "bpf".into(), arch: "bpf".into(),

View File

@ -4,7 +4,12 @@ use crate::{abi::Endian, spec::base};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "bpfel".into(), llvm_target: "bpfel".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
data_layout: "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128".into(), data_layout: "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128".into(),
pointer_width: 64, pointer_width: 64,
arch: "bpf".into(), arch: "bpf".into(),

View File

@ -6,7 +6,7 @@ pub fn target() -> Target {
Target { Target {
//https://github.com/llvm/llvm-project/blob/8b76aea8d8b1b71f6220bc2845abc749f18a19b7/clang/lib/Basic/Targets/CSKY.h //https://github.com/llvm/llvm-project/blob/8b76aea8d8b1b71f6220bc2845abc749f18a19b7/clang/lib/Basic/Targets/CSKY.h
llvm_target: "csky-unknown-linux-gnuabiv2".into(), llvm_target: "csky-unknown-linux-gnuabiv2".into(),
description: None, metadata: crate::spec::TargetMetadata { description:None, tier: None, host_tools: None, std: None },
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-S32-p:32:32-i32:32:32-i64:32:32-f32:32:32-f64:32:32-v64:32:32-v128:32:32-a:0:32-Fi32-n32".into(), data_layout: "e-m:e-S32-p:32:32-i32:32:32-i64:32:32-f32:32:32-f64:32:32-v64:32:32-v128:32:32-a:0:32-Fi32-n32".into(),
arch: "csky".into(), arch: "csky".into(),

View File

@ -6,7 +6,7 @@ pub fn target() -> Target {
Target { Target {
//https://github.com/llvm/llvm-project/blob/8b76aea8d8b1b71f6220bc2845abc749f18a19b7/clang/lib/Basic/Targets/CSKY.h //https://github.com/llvm/llvm-project/blob/8b76aea8d8b1b71f6220bc2845abc749f18a19b7/clang/lib/Basic/Targets/CSKY.h
llvm_target: "csky-unknown-linux-gnuabiv2".into(), llvm_target: "csky-unknown-linux-gnuabiv2".into(),
description: None, metadata: crate::spec::TargetMetadata { description:None, tier: None, host_tools: None, std: None },
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-S32-p:32:32-i32:32:32-i64:32:32-f32:32:32-f64:32:32-v64:32:32-v128:32:32-a:0:32-Fi32-n32".into(), data_layout: "e-m:e-S32-p:32:32-i32:32:32-i64:32:32-f32:32:32-f64:32:32-v64:32:32-v128:32:32-a:0:32-Fi32-n32".into(),
arch: "csky".into(), arch: "csky".into(),

View File

@ -15,7 +15,12 @@ pub fn target() -> Target {
Target { Target {
llvm_target: "hexagon-unknown-linux-musl".into(), llvm_target: "hexagon-unknown-linux-musl".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: concat!( data_layout: concat!(
"e-m:e-p:32:32:32-a:0-n16:32-i64:64:64-i32:32", "e-m:e-p:32:32:32-a:0-n16:32-i64:64:64-i32:32",

View File

@ -3,7 +3,12 @@ use crate::spec::{PanicStrategy, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "hexagon-unknown-none-elf".into(), llvm_target: "hexagon-unknown-none-elf".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: concat!( data_layout: concat!(
"e-m:e-p:32:32:32-a:0-n16:32-i64:64:64-i32:32", "e-m:e-p:32:32:32-a:0-n16:32-i64:64:64-i32:32",

View File

@ -11,7 +11,12 @@ pub fn target() -> Target {
// This is required for the target to pick the right // This is required for the target to pick the right
// MACH-O commands, so we do too. // MACH-O commands, so we do too.
llvm_target: ios_sim_llvm_target(arch).into(), llvm_target: ios_sim_llvm_target(arch).into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:o-p:32:32-p270:32:32-p271:32:32-p272:64:64-\ data_layout: "e-m:o-p:32:32-p270:32:32-p271:32:32-p272:64:64-\
i128:128-f64:32:64-f80:128-n8:16:32-S128" i128:128-f64:32:64-f80:128-n8:16:32-S128"

View File

@ -3,7 +3,12 @@ use crate::spec::{base, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOpt
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
llvm_target: "i586-pc-unknown".into(), llvm_target: "i586-pc-unknown".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-\ data_layout: "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-\
i128:128-f64:32:64-f80:32-n8:16:32-S128" i128:128-f64:32:64-f80:32-n8:16:32-S128"

View File

@ -8,7 +8,12 @@ pub fn target() -> Target {
Target { Target {
llvm_target: "i586-unknown-netbsdelf".into(), llvm_target: "i586-unknown-netbsdelf".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-\ data_layout: "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-\
i128:128-f64:32:64-f80:32-n8:16:32-S128" i128:128-f64:32:64-f80:32-n8:16:32-S128"

View File

@ -16,7 +16,12 @@ pub fn target() -> Target {
// //
// While ld64 doesn't understand i686, LLVM does. // While ld64 doesn't understand i686, LLVM does.
llvm_target: macos_llvm_target(Arch::I686).into(), llvm_target: macos_llvm_target(Arch::I686).into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:o-p:32:32-p270:32:32-p271:32:32-p272:64:64-\ data_layout: "e-m:o-p:32:32-p270:32:32-p271:32:32-p272:64:64-\
i128:128-f64:32:64-f80:128-n8:16:32-S128" i128:128-f64:32:64-f80:128-n8:16:32-S128"

View File

@ -15,7 +15,12 @@ pub fn target() -> Target {
Target { Target {
llvm_target: "i686-linux-android".into(), llvm_target: "i686-linux-android".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-\ data_layout: "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-\
i128:128-f64:32:64-f80:32-n8:16:32-S128" i128:128-f64:32:64-f80:32-n8:16:32-S128"

View File

@ -17,7 +17,12 @@ pub fn target() -> Target {
Target { Target {
llvm_target: "i686-pc-windows-gnu".into(), llvm_target: "i686-pc-windows-gnu".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:x-p:32:32-p270:32:32-p271:32:32-p272:64:64-\ data_layout: "e-m:x-p:32:32-p270:32:32-p271:32:32-p272:64:64-\
i64:64-i128:128-f80:32-n8:16:32-a:0:32-S32" i64:64-i128:128-f80:32-n8:16:32-a:0:32-S32"

View File

@ -16,7 +16,12 @@ pub fn target() -> Target {
Target { Target {
llvm_target: "i686-pc-windows-gnu".into(), llvm_target: "i686-pc-windows-gnu".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:x-p:32:32-p270:32:32-p271:32:32-p272:64:64-\ data_layout: "e-m:x-p:32:32-p270:32:32-p271:32:32-p272:64:64-\
i64:64-i128:128-f80:32-n8:16:32-a:0:32-S32" i64:64-i128:128-f80:32-n8:16:32-a:0:32-S32"

View File

@ -23,7 +23,12 @@ pub fn target() -> Target {
Target { Target {
llvm_target: "i686-pc-windows-msvc".into(), llvm_target: "i686-pc-windows-msvc".into(),
metadata: crate::spec::TargetMetadata {
description: Some("32-bit MSVC (Windows 7+)".into()), description: Some("32-bit MSVC (Windows 7+)".into()),
tier: Some(1),
host_tools: Some(true),
std: Some(true),
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:x-p:32:32-p270:32:32-p271:32:32-p272:64:64-\ data_layout: "e-m:x-p:32:32-p270:32:32-p271:32:32-p272:64:64-\
i64:64-i128:128-f80:128-n8:16:32-a:0:32-S32" i64:64-i128:128-f80:128-n8:16:32-a:0:32-S32"

View File

@ -9,7 +9,12 @@ pub fn target() -> Target {
Target { Target {
llvm_target: "i686-unknown-freebsd".into(), llvm_target: "i686-unknown-freebsd".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-\ data_layout: "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-\
i128:128-f64:32:64-f80:32-n8:16:32-S128" i128:128-f64:32:64-f80:32-n8:16:32-S128"

View File

@ -9,7 +9,12 @@ pub fn target() -> Target {
Target { Target {
llvm_target: "i686-unknown-haiku".into(), llvm_target: "i686-unknown-haiku".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-\ data_layout: "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-\
i128:128-f64:32:64-f80:32-n8:16:32-S128" i128:128-f64:32:64-f80:32-n8:16:32-S128"

View File

@ -9,7 +9,12 @@ pub fn target() -> Target {
Target { Target {
llvm_target: "i686-unknown-hurd-gnu".into(), llvm_target: "i686-unknown-hurd-gnu".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-\ data_layout: "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-\
i128:128-f64:32:64-f80:32-n8:16:32-S128" i128:128-f64:32:64-f80:32-n8:16:32-S128"

View File

@ -10,7 +10,12 @@ pub fn target() -> Target {
Target { Target {
llvm_target: "i686-unknown-linux-gnu".into(), llvm_target: "i686-unknown-linux-gnu".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-\ data_layout: "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-\
i128:128-f64:32:64-f80:32-n8:16:32-S128" i128:128-f64:32:64-f80:32-n8:16:32-S128"

View File

@ -23,7 +23,12 @@ pub fn target() -> Target {
Target { Target {
llvm_target: "i686-unknown-linux-musl".into(), llvm_target: "i686-unknown-linux-musl".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-\ data_layout: "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-\
i128:128-f64:32:64-f80:32-n8:16:32-S128" i128:128-f64:32:64-f80:32-n8:16:32-S128"

View File

@ -9,7 +9,12 @@ pub fn target() -> Target {
Target { Target {
llvm_target: "i686-unknown-netbsdelf".into(), llvm_target: "i686-unknown-netbsdelf".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-\ data_layout: "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-\
i128:128-f64:32:64-f80:32-n8:16:32-S128" i128:128-f64:32:64-f80:32-n8:16:32-S128"

View File

@ -9,7 +9,12 @@ pub fn target() -> Target {
Target { Target {
llvm_target: "i686-unknown-openbsd".into(), llvm_target: "i686-unknown-openbsd".into(),
metadata: crate::spec::TargetMetadata {
description: None, description: None,
tier: None,
host_tools: None,
std: None,
},
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-\ data_layout: "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-\
i128:128-f64:32:64-f80:32-n8:16:32-S128" i128:128-f64:32:64-f80:32-n8:16:32-S128"

Some files were not shown because too many files have changed in this diff Show More