Ok(StackProbeType::InlineOrCall { min_llvm_version_for_inline })
}
_ => Err(String::from(
- "`kind` expected to be one of `inline-or-none`, `call` or `inline-or-call`",
+ "`kind` expected to be one of `none`, `inline`, `call` or `inline-or-call`",
)),
}
}
("powerpc64le-unknown-linux-gnu", powerpc64le_unknown_linux_gnu),
("powerpc64le-unknown-linux-musl", powerpc64le_unknown_linux_musl),
("s390x-unknown-linux-gnu", s390x_unknown_linux_gnu),
+ ("s390x-unknown-linux-musl", s390x_unknown_linux_musl),
("sparc-unknown-linux-gnu", sparc_unknown_linux_gnu),
("sparc64-unknown-linux-gnu", sparc64_unknown_linux_gnu),
("arm-unknown-linux-gnueabi", arm_unknown_linux_gnueabi),
("thumbv7neon-linux-androideabi", thumbv7neon_linux_androideabi),
("aarch64-linux-android", aarch64_linux_android),
- ("x86_64-linux-kernel", x86_64_linux_kernel),
+ ("x86_64-unknown-none-linuxkernel", x86_64_unknown_none_linuxkernel),
("aarch64-unknown-freebsd", aarch64_unknown_freebsd),
("armv6-unknown-freebsd", armv6_unknown_freebsd),
("i686-unknown-openbsd", i686_unknown_openbsd),
("sparc64-unknown-openbsd", sparc64_unknown_openbsd),
("x86_64-unknown-openbsd", x86_64_unknown_openbsd),
+ ("powerpc-unknown-openbsd", powerpc_unknown_openbsd),
("aarch64-unknown-netbsd", aarch64_unknown_netbsd),
("armv6-unknown-netbsd-eabihf", armv6_unknown_netbsd_eabihf),
("powerpc-unknown-netbsd", powerpc_unknown_netbsd),
("sparc64-unknown-netbsd", sparc64_unknown_netbsd),
("x86_64-unknown-netbsd", x86_64_unknown_netbsd),
- ("x86_64-rumprun-netbsd", x86_64_rumprun_netbsd),
("i686-unknown-haiku", i686_unknown_haiku),
("x86_64-unknown-haiku", x86_64_unknown_haiku),
("armv7s-apple-ios", armv7s_apple_ios),
("x86_64-apple-ios-macabi", x86_64_apple_ios_macabi),
("aarch64-apple-ios-macabi", aarch64_apple_ios_macabi),
+ ("aarch64-apple-ios-sim", aarch64_apple_ios_sim),
("aarch64-apple-tvos", aarch64_apple_tvos),
("x86_64-apple-tvos", x86_64_apple_tvos),
("armv7r-none-eabi", armv7r_none_eabi),
("armv7r-none-eabihf", armv7r_none_eabihf),
- // `x86_64-pc-solaris` is an alias for `x86_64_sun_solaris` for backwards compatibility reasons.
- // (See <https://github.com/rust-lang/rust/issues/40531>.)
- ("x86_64-sun-solaris", "x86_64-pc-solaris", x86_64_sun_solaris),
+ ("x86_64-pc-solaris", x86_64_pc_solaris),
+ ("x86_64-sun-solaris", x86_64_sun_solaris),
("sparcv9-sun-solaris", sparcv9_sun_solaris),
("x86_64-unknown-illumos", x86_64_unknown_illumos),
("aarch64-unknown-hermit", aarch64_unknown_hermit),
("x86_64-unknown-hermit", x86_64_unknown_hermit),
- ("x86_64-unknown-hermit-kernel", x86_64_unknown_hermit_kernel),
+
+ ("x86_64-unknown-none-hermitkernel", x86_64_unknown_none_hermitkernel),
("riscv32i-unknown-none-elf", riscv32i_unknown_none_elf),
("riscv32imc-unknown-none-elf", riscv32imc_unknown_none_elf),
("riscv32imac-unknown-none-elf", riscv32imac_unknown_none_elf),
("riscv32gc-unknown-linux-gnu", riscv32gc_unknown_linux_gnu),
+ ("riscv32gc-unknown-linux-musl", riscv32gc_unknown_linux_musl),
("riscv64imac-unknown-none-elf", riscv64imac_unknown_none_elf),
("riscv64gc-unknown-none-elf", riscv64gc_unknown_none_elf),
("riscv64gc-unknown-linux-gnu", riscv64gc_unknown_linux_gnu),
+ ("riscv64gc-unknown-linux-musl", riscv64gc_unknown_linux_musl),
("aarch64-unknown-none", aarch64_unknown_none),
("aarch64-unknown-none-softfloat", aarch64_unknown_none_softfloat),
/// Given a function ABI, turn it into the correct ABI for this target.
pub fn adjust_abi(&self, abi: Abi) -> Abi {
match abi {
- Abi::System => {
+ Abi::System { unwind } => {
if self.is_like_windows && self.arch == "x86" {
- Abi::Stdcall
+ Abi::Stdcall { unwind }
} else {
- Abi::C
+ Abi::C { unwind }
}
}
// These ABI kinds are ignored on non-x86 Windows targets.
// See https://docs.microsoft.com/en-us/cpp/cpp/argument-passing-and-naming-conventions
// and the individual pages for __stdcall et al.
- Abi::Stdcall | Abi::Fastcall | Abi::Vectorcall | Abi::Thiscall => {
- if self.is_like_windows && self.arch != "x86" { Abi::C } else { abi }
+ Abi::Stdcall { unwind } | Abi::Thiscall { unwind } => {
+ if self.is_like_windows && self.arch != "x86" { Abi::C { unwind } } else { abi }
+ }
+ Abi::Fastcall | Abi::Vectorcall => {
+ if self.is_like_windows && self.arch != "x86" {
+ Abi::C { unwind: false }
+ } else {
+ abi
+ }
}
Abi::EfiApi => {
if self.arch == "x86_64" {
Abi::Win64
} else {
- Abi::C
+ Abi::C { unwind: false }
}
}
abi => abi,
} );
($key_name:ident = $json_name:expr, optional) => ( {
let name = $json_name;
- if let Some(o) = obj.find(&name[..]) {
+ if let Some(o) = obj.find(name) {
base.$key_name = o
.as_string()
.map(|s| s.to_string() );
Ok(TargetTriple::TargetPath(canonicalized_path))
}
- /// Creates a target triple from its alias
- pub fn from_alias(triple: String) -> Self {
- macro_rules! target_aliases {
- ( $(($alias:literal, $target:literal ),)+ ) => {
- match triple.as_str() {
- $( $alias => TargetTriple::from_triple($target), )+
- _ => TargetTriple::TargetTriple(triple),
- }
- }
- }
-
- target_aliases! {
- // `x86_64-pc-solaris` is an alias for `x86_64_sun_solaris` for backwards compatibility reasons.
- // (See <https://github.com/rust-lang/rust/issues/40531>.)
- ("x86_64-pc-solaris", "x86_64-sun-solaris"),
- }
- }
-
/// Returns a string triple for this target.
///
/// If this target is a path, the file name (without extension) is returned.