mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-16 22:16:53 +00:00
Add metadata to targets
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.
This commit is contained in:
parent
af69f4c48c
commit
5bcb66cfb3
@ -2,7 +2,9 @@ use std::borrow::Cow;
|
||||
use std::collections::BTreeMap;
|
||||
|
||||
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 {
|
||||
fn to_json(&self) -> Json;
|
||||
@ -120,3 +122,14 @@ impl ToJson for crate::abi::call::Conv {
|
||||
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,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -8,7 +8,12 @@ use object::elf;
|
||||
pub fn target(target_cpu: &'static str, mmcu: &'static str) -> Target {
|
||||
Target {
|
||||
arch: "avr".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
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(),
|
||||
llvm_target: "avr-unknown-unknown".into(),
|
||||
pointer_width: 16,
|
||||
|
@ -1743,11 +1743,9 @@ impl TargetWarnings {
|
||||
pub struct Target {
|
||||
/// Target triple to pass to LLVM.
|
||||
pub llvm_target: StaticCow<str>,
|
||||
/// A short description of the target including platform requirements,
|
||||
/// for example "64-bit Linux (kernel 3.2+, glibc 2.17+)".
|
||||
/// Optional for now, intended to be required in the future.
|
||||
/// Part of #120745.
|
||||
pub description: Option<StaticCow<str>>,
|
||||
/// Metadata about a target, for example the description or tier.
|
||||
/// Used for generating target documentation.
|
||||
pub metadata: TargetMetadata,
|
||||
/// Number of bits in a pointer. Influences the `target_pointer_width` `cfg` variable.
|
||||
pub pointer_width: u32,
|
||||
/// Architecture to use for ABI considerations. Valid options include: "x86",
|
||||
@ -1759,6 +1757,23 @@ pub struct Target {
|
||||
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 {
|
||||
pub fn parse_data_layout(&self) -> Result<TargetDataLayout, TargetDataLayoutErrors<'_>> {
|
||||
let mut dl = TargetDataLayout::parse_from_llvm_datalayout_string(&self.data_layout)?;
|
||||
@ -2549,7 +2564,7 @@ impl Target {
|
||||
|
||||
let mut base = Target {
|
||||
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")?
|
||||
.parse::<u32>()
|
||||
.map_err(|_| "target-pointer-width must be an integer".to_string())?,
|
||||
@ -2558,6 +2573,22 @@ impl Target {
|
||||
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![];
|
||||
|
||||
macro_rules! key {
|
||||
@ -3253,7 +3284,7 @@ impl ToJson for 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());
|
||||
target_val!(arch);
|
||||
target_val!(data_layout);
|
||||
|
@ -15,7 +15,12 @@ pub fn target() -> Target {
|
||||
// MACOSX_DEPLOYMENT_TARGET. To enable cross-language LTO to work
|
||||
// correctly, we do too.
|
||||
llvm_target: macos_llvm_target(arch).into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: arch.target_arch(),
|
||||
|
@ -12,7 +12,12 @@ pub fn target() -> Target {
|
||||
// This is required for the target to pick the right
|
||||
// MACH-O commands, so we do too.
|
||||
llvm_target: ios_llvm_target(arch).into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: arch.target_arch(),
|
||||
|
@ -8,7 +8,12 @@ pub fn target() -> Target {
|
||||
|
||||
Target {
|
||||
llvm_target: mac_catalyst_llvm_target(arch).into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: arch.target_arch(),
|
||||
|
@ -12,7 +12,12 @@ pub fn target() -> Target {
|
||||
// This is required for the simulator target to pick the right
|
||||
// MACH-O commands, so we do too.
|
||||
llvm_target: ios_sim_llvm_target(arch).into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: arch.target_arch(),
|
||||
|
@ -5,7 +5,12 @@ pub fn target() -> Target {
|
||||
let arch = Arch::Arm64;
|
||||
Target {
|
||||
llvm_target: tvos_llvm_target(arch).into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: arch.target_arch(),
|
||||
|
@ -5,7 +5,12 @@ pub fn target() -> Target {
|
||||
let arch = Arch::Arm64_sim;
|
||||
Target {
|
||||
llvm_target: tvos_sim_llvm_target(arch).into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: arch.target_arch(),
|
||||
|
@ -5,7 +5,12 @@ pub fn target() -> Target {
|
||||
let base = opts("watchos", Arch::Arm64);
|
||||
Target {
|
||||
llvm_target: "aarch64-apple-watchos".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: "aarch64".into(),
|
||||
|
@ -9,7 +9,12 @@ pub fn target() -> Target {
|
||||
// This is required for the simulator target to pick the right
|
||||
// MACH-O commands, so we do too.
|
||||
llvm_target: watchos_sim_llvm_target(arch).into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: arch.target_arch(),
|
||||
|
@ -4,7 +4,12 @@ use crate::spec::{base, StackProbeType, Target, TargetOptions};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "aarch64_be-unknown-linux-gnu".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: "aarch64".into(),
|
||||
|
@ -7,7 +7,12 @@ pub fn target() -> Target {
|
||||
|
||||
Target {
|
||||
llvm_target: "aarch64_be-unknown-linux-gnu_ilp32".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
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(),
|
||||
arch: "aarch64".into(),
|
||||
|
@ -4,7 +4,12 @@ use crate::spec::{base, StackProbeType, Target, TargetOptions};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "aarch64_be-unknown-netbsd".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: "aarch64".into(),
|
||||
|
@ -4,7 +4,12 @@ pub fn target() -> Target {
|
||||
let base = base::solid::opts("asp3");
|
||||
Target {
|
||||
llvm_target: "aarch64-unknown-none".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: "aarch64".into(),
|
||||
|
@ -6,7 +6,12 @@ use crate::spec::{base, SanitizerSet, StackProbeType, Target, TargetOptions};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "aarch64-linux-android".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: "aarch64".into(),
|
||||
|
@ -8,7 +8,12 @@ const LINKER_SCRIPT: &str = include_str!("./aarch64_nintendo_switch_freestanding
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "aarch64-unknown-none".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: "aarch64".into(),
|
||||
|
@ -8,7 +8,12 @@ pub fn target() -> Target {
|
||||
|
||||
Target {
|
||||
llvm_target: "aarch64-pc-windows-gnu".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: "aarch64".into(),
|
||||
|
@ -7,7 +7,12 @@ pub fn target() -> Target {
|
||||
|
||||
Target {
|
||||
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,
|
||||
data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: "aarch64".into(),
|
||||
|
@ -3,7 +3,12 @@ use crate::spec::{base, SanitizerSet, StackProbeType, Target, TargetOptions};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "aarch64-unknown-freebsd".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: "aarch64".into(),
|
||||
|
@ -3,7 +3,12 @@ use crate::spec::{base, SanitizerSet, StackProbeType, Target, TargetOptions};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "aarch64-unknown-fuchsia".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: "aarch64".into(),
|
||||
|
@ -3,7 +3,12 @@ use crate::spec::{base, StackProbeType, Target, TargetOptions};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "aarch64-unknown-hermit".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
arch: "aarch64".into(),
|
||||
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
|
||||
|
@ -11,7 +11,12 @@ pub fn target() -> Target {
|
||||
// LLVM does not currently have a separate illumos target,
|
||||
// so we still pass Solaris to it
|
||||
llvm_target: "aarch64-unknown-solaris2.11".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: "aarch64".into(),
|
||||
|
@ -3,7 +3,12 @@ use crate::spec::{base, SanitizerSet, StackProbeType, Target, TargetOptions};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "aarch64-unknown-linux-gnu".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: "aarch64".into(),
|
||||
|
@ -3,7 +3,12 @@ use crate::spec::{base, StackProbeType, Target, TargetOptions};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "aarch64-unknown-linux-gnu_ilp32".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
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(),
|
||||
arch: "aarch64".into(),
|
||||
|
@ -14,7 +14,12 @@ pub fn target() -> Target {
|
||||
|
||||
Target {
|
||||
llvm_target: "aarch64-unknown-linux-musl".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: "aarch64".into(),
|
||||
|
@ -8,7 +8,12 @@ pub fn target() -> Target {
|
||||
Target {
|
||||
// LLVM 15 doesn't support OpenHarmony yet, use a linux target instead.
|
||||
llvm_target: "aarch64-unknown-linux-musl".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: "aarch64".into(),
|
||||
|
@ -3,7 +3,12 @@ use crate::spec::{base, StackProbeType, Target, TargetOptions};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "aarch64-unknown-netbsd".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: "aarch64".into(),
|
||||
|
@ -31,7 +31,12 @@ pub fn target() -> Target {
|
||||
};
|
||||
Target {
|
||||
llvm_target: "aarch64-unknown-none".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: "aarch64".into(),
|
||||
|
@ -25,7 +25,12 @@ pub fn target() -> Target {
|
||||
};
|
||||
Target {
|
||||
llvm_target: "aarch64-unknown-none".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: "aarch64".into(),
|
||||
|
@ -3,7 +3,12 @@ use crate::spec::{base, Cc, LinkerFlavor, Lld, Target, TargetOptions};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "aarch64-unknown-unknown".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
// from: https://llvm.org/docs/LangRef.html#data-layout
|
||||
// e = little endian
|
||||
|
@ -3,7 +3,12 @@ use crate::spec::{base, StackProbeType, Target, TargetOptions};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "aarch64-unknown-openbsd".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: "aarch64".into(),
|
||||
|
@ -8,7 +8,12 @@ pub fn target() -> Target {
|
||||
|
||||
Target {
|
||||
llvm_target: "aarch64-unknown-redox".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: "aarch64".into(),
|
||||
|
@ -8,7 +8,12 @@ pub fn target() -> Target {
|
||||
|
||||
Target {
|
||||
llvm_target: "aarch64-unknown-none".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: "aarch64".into(),
|
||||
|
@ -12,7 +12,12 @@ pub fn target() -> Target {
|
||||
|
||||
Target {
|
||||
llvm_target: "aarch64-unknown-windows".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: "aarch64".into(),
|
||||
|
@ -7,7 +7,12 @@ pub fn target() -> Target {
|
||||
|
||||
Target {
|
||||
llvm_target: "aarch64-pc-windows-msvc".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: "aarch64".into(),
|
||||
|
@ -3,7 +3,12 @@ use crate::spec::{base, StackProbeType, Target, TargetOptions};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "aarch64-unknown-linux-gnu".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: "aarch64".into(),
|
||||
|
@ -5,7 +5,12 @@ pub fn target() -> Target {
|
||||
let base = opts("watchos", Arch::Arm64_32);
|
||||
Target {
|
||||
llvm_target: "arm64_32-apple-watchos".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:o-p:32:32-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: "aarch64".into(),
|
||||
|
@ -15,7 +15,12 @@ pub fn target() -> Target {
|
||||
// MACOSX_DEPLOYMENT_TARGET. To enable cross-language LTO to work
|
||||
// correctly, we do too.
|
||||
llvm_target: macos_llvm_target(arch).into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: arch.target_arch(),
|
||||
|
@ -12,7 +12,12 @@ pub fn target() -> Target {
|
||||
// This is required for the target to pick the right
|
||||
// MACH-O commands, so we do too.
|
||||
llvm_target: ios_llvm_target(arch).into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: arch.target_arch(),
|
||||
|
@ -12,7 +12,12 @@ pub fn target() -> Target {
|
||||
|
||||
Target {
|
||||
llvm_target: "arm64ec-pc-windows-msvc".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: "arm64ec".into(),
|
||||
|
@ -3,7 +3,12 @@ use crate::spec::{base, SanitizerSet, Target, TargetOptions};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "arm-linux-androideabi".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -3,7 +3,12 @@ use crate::spec::{base, Target, TargetOptions};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "arm-unknown-linux-gnueabi".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -3,7 +3,12 @@ use crate::spec::{base, Target, TargetOptions};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "arm-unknown-linux-gnueabihf".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -6,7 +6,12 @@ pub fn target() -> Target {
|
||||
// to determine the calling convention and float ABI, and it doesn't
|
||||
// support the "musleabi" value.
|
||||
llvm_target: "arm-unknown-linux-gnueabi".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -6,7 +6,12 @@ pub fn target() -> Target {
|
||||
// uses it to determine the calling convention and float ABI, and it
|
||||
// doesn't support the "musleabihf" value.
|
||||
llvm_target: "arm-unknown-linux-gnueabihf".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -4,7 +4,12 @@ use crate::spec::{base, Target, TargetOptions};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "armeb-unknown-linux-gnueabi".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "E-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -6,7 +6,12 @@ use crate::spec::{Cc, LinkerFlavor, Lld, PanicStrategy, RelocModel, Target, Targ
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "armebv7r-none-eabi".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "E-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -6,7 +6,12 @@ use crate::spec::{Cc, LinkerFlavor, Lld, PanicStrategy, RelocModel, Target, Targ
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "armebv7r-none-eabihf".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "E-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -14,7 +14,12 @@ use crate::spec::{cvs, Cc, LinkerFlavor, Lld, PanicStrategy, RelocModel, Target,
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "armv4t-none-eabi".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
arch: "arm".into(),
|
||||
/* Data layout args are '-' separated:
|
||||
|
@ -3,7 +3,12 @@ use crate::spec::{base, Target, TargetOptions};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "armv4t-unknown-linux-gnueabi".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -5,7 +5,12 @@ use crate::spec::{base, cvs, FramePointer, Target, TargetOptions};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "armv5te-none-eabi".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
arch: "arm".into(),
|
||||
/* Data layout args are '-' separated:
|
||||
|
@ -3,7 +3,12 @@ use crate::spec::{base, Target, TargetOptions};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "armv5te-unknown-linux-gnueabi".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -7,7 +7,12 @@ pub fn target() -> Target {
|
||||
// uses it to determine the calling convention and float ABI, and LLVM
|
||||
// doesn't support the "musleabihf" value.
|
||||
llvm_target: "armv5te-unknown-linux-gnueabi".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -3,7 +3,12 @@ use crate::spec::{base, Target, TargetOptions};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "armv5te-unknown-linux-uclibcgnueabi".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -3,7 +3,12 @@ use crate::spec::{base, Target, TargetOptions};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "armv6-unknown-freebsd-gnueabihf".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -3,7 +3,12 @@ use crate::spec::{base, Target, TargetOptions};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "armv6-unknown-netbsdelf-eabihf".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -12,7 +12,12 @@ pub fn target() -> Target {
|
||||
|
||||
Target {
|
||||
llvm_target: "armv6k-none-eabihf".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -13,7 +13,12 @@ pub fn target() -> Target {
|
||||
base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-march=armv7-a"]);
|
||||
Target {
|
||||
llvm_target: "armv7-none-linux-android".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -13,7 +13,12 @@ pub fn target() -> Target {
|
||||
|
||||
Target {
|
||||
llvm_target: "thumbv7a-vita-eabihf".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -3,7 +3,12 @@ use crate::spec::{base, Target, TargetOptions};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "armv7-unknown-freebsd-gnueabihf".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -6,7 +6,12 @@ use crate::spec::{base, Target, TargetOptions};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "armv7-unknown-linux-gnueabi".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -6,7 +6,12 @@ use crate::spec::{base, Target, TargetOptions};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "armv7-unknown-linux-gnueabihf".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -11,7 +11,12 @@ pub fn target() -> Target {
|
||||
// to determine the calling convention and float ABI, and it doesn't
|
||||
// support the "musleabi" value.
|
||||
llvm_target: "armv7-unknown-linux-gnueabi".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -8,7 +8,12 @@ pub fn target() -> Target {
|
||||
// uses it to determine the calling convention and float ABI, and LLVM
|
||||
// doesn't support the "musleabihf" value.
|
||||
llvm_target: "armv7-unknown-linux-gnueabihf".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -9,7 +9,12 @@ pub fn target() -> Target {
|
||||
Target {
|
||||
// LLVM 15 doesn't support OpenHarmony yet, use a linux target instead.
|
||||
llvm_target: "armv7-unknown-linux-gnueabi".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -7,7 +7,12 @@ pub fn target() -> Target {
|
||||
let base = base::linux_uclibc::opts();
|
||||
Target {
|
||||
llvm_target: "armv7-unknown-linux-gnueabi".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -7,7 +7,12 @@ pub fn target() -> Target {
|
||||
let base = base::linux_uclibc::opts();
|
||||
Target {
|
||||
llvm_target: "armv7-unknown-linux-gnueabihf".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -3,7 +3,12 @@ use crate::spec::{base, Target, TargetOptions};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "armv7-unknown-netbsdelf-eabihf".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -3,7 +3,12 @@ use crate::spec::{base, Target, TargetOptions};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "armv7-unknown-linux-gnueabihf".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -4,7 +4,12 @@ pub fn target() -> Target {
|
||||
let base = base::solid::opts("asp3");
|
||||
Target {
|
||||
llvm_target: "armv7a-none-eabi".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -4,7 +4,12 @@ pub fn target() -> Target {
|
||||
let base = base::solid::opts("asp3");
|
||||
Target {
|
||||
llvm_target: "armv7a-none-eabihf".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -32,7 +32,12 @@ pub fn target() -> Target {
|
||||
};
|
||||
Target {
|
||||
llvm_target: "armv7a-none-eabi".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -24,7 +24,12 @@ pub fn target() -> Target {
|
||||
};
|
||||
Target {
|
||||
llvm_target: "armv7a-none-eabihf".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -5,7 +5,12 @@ pub fn target() -> Target {
|
||||
let arch = Arch::Armv7k;
|
||||
Target {
|
||||
llvm_target: "armv7k-apple-watchos".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:o-p:32:32-Fi8-i64:64-a:0:32-n32-S128".into(),
|
||||
arch: arch.target_arch(),
|
||||
|
@ -5,7 +5,12 @@ use crate::spec::{Cc, LinkerFlavor, Lld, PanicStrategy, RelocModel, Target, Targ
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "armv7r-none-eabi".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -5,7 +5,12 @@ use crate::spec::{Cc, LinkerFlavor, Lld, PanicStrategy, RelocModel, Target, Targ
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "armv7r-none-eabihf".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -5,7 +5,12 @@ pub fn target() -> Target {
|
||||
let arch = Arch::Armv7s;
|
||||
Target {
|
||||
llvm_target: ios_llvm_target(arch).into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
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(),
|
||||
arch: arch.target_arch(),
|
||||
|
@ -5,7 +5,12 @@ use crate::spec::{Cc, LinkerFlavor, Lld, PanicStrategy, RelocModel, Target, Targ
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "armv8r-none-eabihf".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
arch: "arm".into(),
|
||||
|
@ -4,7 +4,12 @@ use crate::{abi::Endian, spec::base};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "bpfeb".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
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(),
|
||||
pointer_width: 64,
|
||||
arch: "bpf".into(),
|
||||
|
@ -4,7 +4,12 @@ use crate::{abi::Endian, spec::base};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "bpfel".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
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(),
|
||||
pointer_width: 64,
|
||||
arch: "bpf".into(),
|
||||
|
@ -6,7 +6,7 @@ pub fn target() -> Target {
|
||||
Target {
|
||||
//https://github.com/llvm/llvm-project/blob/8b76aea8d8b1b71f6220bc2845abc749f18a19b7/clang/lib/Basic/Targets/CSKY.h
|
||||
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,
|
||||
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(),
|
||||
|
@ -6,7 +6,7 @@ pub fn target() -> Target {
|
||||
Target {
|
||||
//https://github.com/llvm/llvm-project/blob/8b76aea8d8b1b71f6220bc2845abc749f18a19b7/clang/lib/Basic/Targets/CSKY.h
|
||||
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,
|
||||
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(),
|
||||
|
@ -15,7 +15,12 @@ pub fn target() -> Target {
|
||||
|
||||
Target {
|
||||
llvm_target: "hexagon-unknown-linux-musl".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: concat!(
|
||||
"e-m:e-p:32:32:32-a:0-n16:32-i64:64:64-i32:32",
|
||||
|
@ -3,7 +3,12 @@ use crate::spec::{PanicStrategy, Target, TargetOptions};
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "hexagon-unknown-none-elf".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
data_layout: concat!(
|
||||
"e-m:e-p:32:32:32-a:0-n16:32-i64:64:64-i32:32",
|
||||
|
@ -11,7 +11,12 @@ pub fn target() -> Target {
|
||||
// This is required for the target to pick the right
|
||||
// MACH-O commands, so we do too.
|
||||
llvm_target: ios_sim_llvm_target(arch).into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
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"
|
||||
|
@ -3,7 +3,12 @@ use crate::spec::{base, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOpt
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "i586-pc-unknown".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
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"
|
||||
|
@ -8,7 +8,12 @@ pub fn target() -> Target {
|
||||
|
||||
Target {
|
||||
llvm_target: "i586-unknown-netbsdelf".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
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"
|
||||
|
@ -16,7 +16,12 @@ pub fn target() -> Target {
|
||||
//
|
||||
// While ld64 doesn't understand i686, LLVM does.
|
||||
llvm_target: macos_llvm_target(Arch::I686).into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
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"
|
||||
|
@ -15,7 +15,12 @@ pub fn target() -> Target {
|
||||
|
||||
Target {
|
||||
llvm_target: "i686-linux-android".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
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"
|
||||
|
@ -17,7 +17,12 @@ pub fn target() -> Target {
|
||||
|
||||
Target {
|
||||
llvm_target: "i686-pc-windows-gnu".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
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"
|
||||
|
@ -16,7 +16,12 @@ pub fn target() -> Target {
|
||||
|
||||
Target {
|
||||
llvm_target: "i686-pc-windows-gnu".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
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"
|
||||
|
@ -23,7 +23,12 @@ pub fn target() -> Target {
|
||||
|
||||
Target {
|
||||
llvm_target: "i686-pc-windows-msvc".into(),
|
||||
description: Some("32-bit MSVC (Windows 7+)".into()),
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: Some("32-bit MSVC (Windows 7+)".into()),
|
||||
tier: Some(1),
|
||||
host_tools: Some(true),
|
||||
std: Some(true),
|
||||
},
|
||||
pointer_width: 32,
|
||||
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"
|
||||
|
@ -9,7 +9,12 @@ pub fn target() -> Target {
|
||||
|
||||
Target {
|
||||
llvm_target: "i686-unknown-freebsd".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
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"
|
||||
|
@ -9,7 +9,12 @@ pub fn target() -> Target {
|
||||
|
||||
Target {
|
||||
llvm_target: "i686-unknown-haiku".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
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"
|
||||
|
@ -9,7 +9,12 @@ pub fn target() -> Target {
|
||||
|
||||
Target {
|
||||
llvm_target: "i686-unknown-hurd-gnu".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
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"
|
||||
|
@ -10,7 +10,12 @@ pub fn target() -> Target {
|
||||
|
||||
Target {
|
||||
llvm_target: "i686-unknown-linux-gnu".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
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"
|
||||
|
@ -23,7 +23,12 @@ pub fn target() -> Target {
|
||||
|
||||
Target {
|
||||
llvm_target: "i686-unknown-linux-musl".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
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"
|
||||
|
@ -9,7 +9,12 @@ pub fn target() -> Target {
|
||||
|
||||
Target {
|
||||
llvm_target: "i686-unknown-netbsdelf".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
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"
|
||||
|
@ -9,7 +9,12 @@ pub fn target() -> Target {
|
||||
|
||||
Target {
|
||||
llvm_target: "i686-unknown-openbsd".into(),
|
||||
description: None,
|
||||
metadata: crate::spec::TargetMetadata {
|
||||
description: None,
|
||||
tier: None,
|
||||
host_tools: None,
|
||||
std: None,
|
||||
},
|
||||
pointer_width: 32,
|
||||
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"
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user