Merge apple_base and apple_sdk_base into one module
This commit is contained in:
parent
160b194295
commit
de0ab1cee6
@ -1,20 +1,21 @@
|
||||
use super::apple_base::{macos_link_env_remove, macos_llvm_target, opts, Arch};
|
||||
use crate::spec::{FramePointer, SanitizerSet, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let arch = "arm64";
|
||||
let mut base = super::apple_base::opts("macos", arch, "");
|
||||
let arch = Arch::Arm64;
|
||||
let mut base = opts("macos", arch);
|
||||
base.cpu = "apple-a14".into();
|
||||
base.max_atomic_width = Some(128);
|
||||
|
||||
// FIXME: The leak sanitizer currently fails the tests, see #88132.
|
||||
base.supported_sanitizers = SanitizerSet::ADDRESS | SanitizerSet::CFI | SanitizerSet::THREAD;
|
||||
|
||||
base.link_env_remove.to_mut().extend(super::apple_base::macos_link_env_remove());
|
||||
base.link_env_remove.to_mut().extend(macos_link_env_remove());
|
||||
|
||||
// Clang automatically chooses a more specific target based on
|
||||
// MACOSX_DEPLOYMENT_TARGET. To enable cross-language LTO to work
|
||||
// correctly, we do too.
|
||||
let llvm_target = super::apple_base::macos_llvm_target(arch);
|
||||
let llvm_target = macos_llvm_target(arch.target_name());
|
||||
|
||||
Target {
|
||||
llvm_target: llvm_target.into(),
|
||||
|
@ -1,4 +1,4 @@
|
||||
use super::apple_sdk_base::{opts, Arch};
|
||||
use super::apple_base::{ios_llvm_target, opts, Arch};
|
||||
use crate::spec::{FramePointer, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
@ -6,8 +6,8 @@ pub fn target() -> Target {
|
||||
// IPHONEOS_DEPLOYMENT_TARGET.
|
||||
// This is required for the target to pick the right
|
||||
// MACH-O commands, so we do too.
|
||||
let arch = "arm64";
|
||||
let llvm_target = super::apple_base::ios_llvm_target(arch);
|
||||
let arch = Arch::Arm64;
|
||||
let llvm_target = ios_llvm_target(arch);
|
||||
|
||||
Target {
|
||||
llvm_target: llvm_target.into(),
|
||||
@ -30,7 +30,7 @@ pub fn target() -> Target {
|
||||
darwinpcs\0\
|
||||
-Os\0"
|
||||
.into(),
|
||||
..opts("ios", Arch::Arm64)
|
||||
..opts("ios", arch)
|
||||
},
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
use super::apple_sdk_base::{opts, Arch};
|
||||
use super::apple_base::{opts, Arch};
|
||||
use crate::spec::{Cc, FramePointer, LinkerFlavor, Lld, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
|
@ -1,15 +1,15 @@
|
||||
use super::apple_sdk_base::{opts, Arch};
|
||||
use super::apple_base::{ios_sim_llvm_target, opts, Arch};
|
||||
use crate::spec::{FramePointer, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let base = opts("ios", Arch::Arm64_sim);
|
||||
let arch = Arch::Arm64_sim;
|
||||
let base = opts("ios", arch);
|
||||
|
||||
// Clang automatically chooses a more specific target based on
|
||||
// IPHONEOS_DEPLOYMENT_TARGET.
|
||||
// This is required for the simulator target to pick the right
|
||||
// MACH-O commands, so we do too.
|
||||
let arch = "arm64";
|
||||
let llvm_target = super::apple_base::ios_sim_llvm_target(arch);
|
||||
let llvm_target = ios_sim_llvm_target(arch);
|
||||
|
||||
Target {
|
||||
llvm_target: llvm_target.into(),
|
||||
|
@ -1,4 +1,4 @@
|
||||
use super::apple_sdk_base::{opts, Arch};
|
||||
use super::apple_base::{opts, Arch};
|
||||
use crate::spec::{FramePointer, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
|
@ -1,15 +1,15 @@
|
||||
use super::apple_sdk_base::{opts, Arch};
|
||||
use super::apple_base::{opts, watchos_sim_llvm_target, Arch};
|
||||
use crate::spec::{FramePointer, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let base = opts("watchos", Arch::Arm64_sim);
|
||||
let arch = Arch::Arm64_sim;
|
||||
let base = opts("watchos", arch);
|
||||
|
||||
// Clang automatically chooses a more specific target based on
|
||||
// WATCHOS_DEPLOYMENT_TARGET.
|
||||
// This is required for the simulator target to pick the right
|
||||
// MACH-O commands, so we do too.
|
||||
let arch = "arm64";
|
||||
let llvm_target = super::apple_base::watchos_sim_llvm_target(arch);
|
||||
let llvm_target = watchos_sim_llvm_target(arch);
|
||||
|
||||
Target {
|
||||
llvm_target: llvm_target.into(),
|
||||
|
@ -3,6 +3,75 @@ use std::{borrow::Cow, env};
|
||||
use crate::spec::{cvs, Cc, DebuginfoKind, FramePointer, LinkArgs};
|
||||
use crate::spec::{LinkerFlavor, Lld, SplitDebuginfo, StaticCow, TargetOptions};
|
||||
|
||||
#[cfg(test)]
|
||||
#[path = "apple/tests.rs"]
|
||||
mod tests;
|
||||
|
||||
use Arch::*;
|
||||
#[allow(non_camel_case_types)]
|
||||
#[derive(Copy, Clone)]
|
||||
pub enum Arch {
|
||||
Armv7,
|
||||
Armv7k,
|
||||
Armv7s,
|
||||
Arm64,
|
||||
Arm64_32,
|
||||
I386,
|
||||
X86_64,
|
||||
X86_64_sim,
|
||||
X86_64_macabi,
|
||||
Arm64_macabi,
|
||||
Arm64_sim,
|
||||
}
|
||||
|
||||
impl Arch {
|
||||
pub fn target_name(self) -> &'static str {
|
||||
match self {
|
||||
Armv7 => "armv7",
|
||||
Armv7k => "armv7k",
|
||||
Armv7s => "armv7s",
|
||||
Arm64 | Arm64_macabi | Arm64_sim => "arm64",
|
||||
Arm64_32 => "arm64_32",
|
||||
I386 => "i386",
|
||||
X86_64 | X86_64_sim | X86_64_macabi => "x86_64",
|
||||
}
|
||||
}
|
||||
|
||||
fn target_abi(self) -> &'static str {
|
||||
match self {
|
||||
Armv7 | Armv7k | Armv7s | Arm64 | Arm64_32 | I386 | X86_64 => "",
|
||||
X86_64_macabi | Arm64_macabi => "macabi",
|
||||
// x86_64-apple-ios is a simulator target, even though it isn't
|
||||
// declared that way in the target like the other ones...
|
||||
Arm64_sim | X86_64_sim => "sim",
|
||||
}
|
||||
}
|
||||
|
||||
fn target_cpu(self) -> &'static str {
|
||||
match self {
|
||||
Armv7 => "cortex-a8", // iOS7 is supported on iPhone 4 and higher
|
||||
Armv7k => "cortex-a8",
|
||||
Armv7s => "cortex-a9",
|
||||
Arm64 => "apple-a7",
|
||||
Arm64_32 => "apple-s4",
|
||||
I386 => "yonah",
|
||||
X86_64 | X86_64_sim => "core2",
|
||||
X86_64_macabi => "core2",
|
||||
Arm64_macabi => "apple-a12",
|
||||
Arm64_sim => "apple-a12",
|
||||
}
|
||||
}
|
||||
|
||||
fn link_env_remove(self) -> StaticCow<[StaticCow<str>]> {
|
||||
match self {
|
||||
Armv7 | Armv7k | Armv7s | Arm64 | Arm64_32 | I386 | X86_64 | X86_64_sim | Arm64_sim => {
|
||||
cvs!["MACOSX_DEPLOYMENT_TARGET"]
|
||||
}
|
||||
X86_64_macabi | Arm64_macabi => cvs!["IPHONEOS_DEPLOYMENT_TARGET"],
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn pre_link_args(os: &'static str, arch: &'static str, abi: &'static str) -> LinkArgs {
|
||||
let platform_name: StaticCow<str> = match abi {
|
||||
"sim" => format!("{}-simulator", os).into(),
|
||||
@ -35,30 +104,35 @@ fn pre_link_args(os: &'static str, arch: &'static str, abi: &'static str) -> Lin
|
||||
args
|
||||
}
|
||||
|
||||
pub fn opts(os: &'static str, arch: &'static str, abi: &'static str) -> TargetOptions {
|
||||
// ELF TLS is only available in macOS 10.7+. If you try to compile for 10.6
|
||||
pub fn opts(os: &'static str, arch: Arch) -> TargetOptions {
|
||||
// Static TLS is only available in macOS 10.7+. If you try to compile for 10.6
|
||||
// either the linker will complain if it is used or the binary will end up
|
||||
// segfaulting at runtime when run on 10.6. Rust by default supports macOS
|
||||
// 10.7+, but there is a standard environment variable,
|
||||
// MACOSX_DEPLOYMENT_TARGET, which is used to signal targeting older
|
||||
// versions of macOS. For example compiling on 10.10 with
|
||||
// MACOSX_DEPLOYMENT_TARGET set to 10.6 will cause the linker to generate
|
||||
// warnings about the usage of ELF TLS.
|
||||
// warnings about the usage of static TLS.
|
||||
//
|
||||
// Here we detect what version is being requested, defaulting to 10.7. ELF
|
||||
// Here we detect what version is being requested, defaulting to 10.7. Static
|
||||
// TLS is flagged as enabled if it looks to be supported. The architecture
|
||||
// only matters for default deployment target which is 11.0 for ARM64 and
|
||||
// 10.7 for everything else.
|
||||
let has_thread_local = macos_deployment_target("x86_64") >= (10, 7);
|
||||
let has_thread_local = os == "macos" && macos_deployment_target("x86_64") >= (10, 7);
|
||||
|
||||
let abi = arch.target_abi();
|
||||
|
||||
TargetOptions {
|
||||
abi: abi.into(),
|
||||
os: os.into(),
|
||||
cpu: arch.target_cpu().into(),
|
||||
link_env_remove: arch.link_env_remove(),
|
||||
vendor: "apple".into(),
|
||||
linker_flavor: LinkerFlavor::Darwin(Cc::Yes, Lld::No),
|
||||
// macOS has -dead_strip, which doesn't rely on function_sections
|
||||
function_sections: false,
|
||||
dynamic_linking: true,
|
||||
pre_link_args: pre_link_args(os, arch, abi),
|
||||
pre_link_args: pre_link_args(os, arch.target_name(), abi),
|
||||
families: cvs!["unix"],
|
||||
is_like_osx: true,
|
||||
default_dwarf_version: 2,
|
||||
@ -142,7 +216,7 @@ fn ios_deployment_target() -> (u32, u32) {
|
||||
deployment_target("IPHONEOS_DEPLOYMENT_TARGET").unwrap_or((7, 0))
|
||||
}
|
||||
|
||||
pub fn ios_llvm_target(arch: &str) -> String {
|
||||
pub fn ios_llvm_target(arch: Arch) -> String {
|
||||
// Modern iOS tooling extracts information about deployment target
|
||||
// from LC_BUILD_VERSION. This load command will only be emitted when
|
||||
// we build with a version specific `llvm_target`, with the version
|
||||
@ -150,7 +224,7 @@ pub fn ios_llvm_target(arch: &str) -> String {
|
||||
// to pick it up (since std and core are still built with the fallback
|
||||
// of version 7.0 and hence emit the old LC_IPHONE_MIN_VERSION).
|
||||
let (major, minor) = ios_deployment_target();
|
||||
format!("{}-apple-ios{}.{}.0", arch, major, minor)
|
||||
format!("{}-apple-ios{}.{}.0", arch.target_name(), major, minor)
|
||||
}
|
||||
|
||||
fn ios_lld_platform_version() -> String {
|
||||
@ -158,9 +232,9 @@ fn ios_lld_platform_version() -> String {
|
||||
format!("{}.{}", major, minor)
|
||||
}
|
||||
|
||||
pub fn ios_sim_llvm_target(arch: &str) -> String {
|
||||
pub fn ios_sim_llvm_target(arch: Arch) -> String {
|
||||
let (major, minor) = ios_deployment_target();
|
||||
format!("{}-apple-ios{}.{}.0-simulator", arch, major, minor)
|
||||
format!("{}-apple-ios{}.{}.0-simulator", arch.target_name(), major, minor)
|
||||
}
|
||||
|
||||
fn tvos_deployment_target() -> (u32, u32) {
|
||||
@ -181,7 +255,7 @@ fn watchos_lld_platform_version() -> String {
|
||||
format!("{}.{}", major, minor)
|
||||
}
|
||||
|
||||
pub fn watchos_sim_llvm_target(arch: &str) -> String {
|
||||
pub fn watchos_sim_llvm_target(arch: Arch) -> String {
|
||||
let (major, minor) = watchos_deployment_target();
|
||||
format!("{}-apple-watchos{}.{}.0-simulator", arch, major, minor)
|
||||
format!("{}-apple-watchos{}.{}.0-simulator", arch.target_name(), major, minor)
|
||||
}
|
||||
|
@ -1,81 +0,0 @@
|
||||
use crate::spec::{cvs, TargetOptions};
|
||||
use std::borrow::Cow;
|
||||
|
||||
#[cfg(test)]
|
||||
#[path = "apple/tests.rs"]
|
||||
mod tests;
|
||||
|
||||
use Arch::*;
|
||||
#[allow(non_camel_case_types)]
|
||||
#[derive(Copy, Clone)]
|
||||
pub enum Arch {
|
||||
Armv7,
|
||||
Armv7k,
|
||||
Armv7s,
|
||||
Arm64,
|
||||
Arm64_32,
|
||||
I386,
|
||||
#[allow(dead_code)] // Some targets don't use this enum...
|
||||
X86_64,
|
||||
X86_64_sim,
|
||||
X86_64_macabi,
|
||||
Arm64_macabi,
|
||||
Arm64_sim,
|
||||
}
|
||||
|
||||
fn target_arch_name(arch: Arch) -> &'static str {
|
||||
match arch {
|
||||
Armv7 => "armv7",
|
||||
Armv7k => "armv7k",
|
||||
Armv7s => "armv7s",
|
||||
Arm64 | Arm64_macabi | Arm64_sim => "arm64",
|
||||
Arm64_32 => "arm64_32",
|
||||
I386 => "i386",
|
||||
X86_64 | X86_64_sim | X86_64_macabi => "x86_64",
|
||||
}
|
||||
}
|
||||
|
||||
fn target_abi(arch: Arch) -> &'static str {
|
||||
match arch {
|
||||
Armv7 | Armv7k | Armv7s | Arm64 | Arm64_32 | I386 | X86_64 => "",
|
||||
X86_64_macabi | Arm64_macabi => "macabi",
|
||||
// x86_64-apple-ios is a simulator target, even though it isn't
|
||||
// declared that way in the target like the other ones...
|
||||
Arm64_sim | X86_64_sim => "sim",
|
||||
}
|
||||
}
|
||||
|
||||
fn target_cpu(arch: Arch) -> &'static str {
|
||||
match arch {
|
||||
Armv7 => "cortex-a8", // iOS7 is supported on iPhone 4 and higher
|
||||
Armv7k => "cortex-a8",
|
||||
Armv7s => "cortex-a9",
|
||||
Arm64 => "apple-a7",
|
||||
Arm64_32 => "apple-s4",
|
||||
I386 => "yonah",
|
||||
X86_64 | X86_64_sim => "core2",
|
||||
X86_64_macabi => "core2",
|
||||
Arm64_macabi => "apple-a12",
|
||||
Arm64_sim => "apple-a12",
|
||||
}
|
||||
}
|
||||
|
||||
fn link_env_remove(arch: Arch) -> Cow<'static, [Cow<'static, str>]> {
|
||||
match arch {
|
||||
Armv7 | Armv7k | Armv7s | Arm64 | Arm64_32 | I386 | X86_64 | X86_64_sim | Arm64_sim => {
|
||||
cvs!["MACOSX_DEPLOYMENT_TARGET"]
|
||||
}
|
||||
X86_64_macabi | Arm64_macabi => cvs!["IPHONEOS_DEPLOYMENT_TARGET"],
|
||||
}
|
||||
}
|
||||
|
||||
pub fn opts(os: &'static str, arch: Arch) -> TargetOptions {
|
||||
let abi = target_abi(arch);
|
||||
TargetOptions {
|
||||
abi: abi.into(),
|
||||
cpu: target_cpu(arch).into(),
|
||||
link_env_remove: link_env_remove(arch),
|
||||
has_thread_local: false,
|
||||
..super::apple_base::opts(os, target_arch_name(arch), abi)
|
||||
}
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
use super::apple_sdk_base::{opts, Arch};
|
||||
use super::apple_base::{opts, Arch};
|
||||
use crate::spec::{Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
|
@ -1,8 +1,9 @@
|
||||
use super::apple_sdk_base::{opts, Arch};
|
||||
use super::apple_base::{opts, Arch};
|
||||
use crate::spec::{Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let llvm_target = super::apple_base::ios_llvm_target("armv7");
|
||||
let arch = Arch::Armv7;
|
||||
let llvm_target = super::apple_base::ios_llvm_target(arch);
|
||||
|
||||
Target {
|
||||
llvm_target: llvm_target.into(),
|
||||
@ -12,7 +13,7 @@ pub fn target() -> Target {
|
||||
options: TargetOptions {
|
||||
features: "+v7,+vfp3,+neon".into(),
|
||||
max_atomic_width: Some(64),
|
||||
..opts("ios", Arch::Armv7)
|
||||
..opts("ios", arch)
|
||||
},
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
use super::apple_sdk_base::{opts, Arch};
|
||||
use super::apple_base::{opts, Arch};
|
||||
use crate::spec::{Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
|
@ -1,4 +1,4 @@
|
||||
use super::apple_sdk_base::{opts, Arch};
|
||||
use super::apple_base::{opts, Arch};
|
||||
use crate::spec::{Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
|
@ -1,9 +1,10 @@
|
||||
use super::apple_sdk_base::{opts, Arch};
|
||||
use super::apple_base::{opts, Arch};
|
||||
use crate::spec::{StackProbeType, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let base = opts("ios", Arch::I386);
|
||||
let llvm_target = super::apple_base::ios_sim_llvm_target("i386");
|
||||
let arch = Arch::I386;
|
||||
let base = opts("ios", arch);
|
||||
let llvm_target = super::apple_base::ios_sim_llvm_target(arch);
|
||||
|
||||
Target {
|
||||
llvm_target: llvm_target.into(),
|
||||
|
@ -1,12 +1,13 @@
|
||||
use super::apple_base::{macos_link_env_remove, macos_llvm_target, opts, Arch};
|
||||
use crate::spec::{Cc, FramePointer, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
// ld64 only understand i386 and not i686
|
||||
let mut base = super::apple_base::opts("macos", "i386", "");
|
||||
let mut base = opts("macos", Arch::I386);
|
||||
base.cpu = "yonah".into();
|
||||
base.max_atomic_width = Some(64);
|
||||
base.add_pre_link_args(LinkerFlavor::Darwin(Cc::Yes, Lld::No), &["-m32"]);
|
||||
base.link_env_remove.to_mut().extend(super::apple_base::macos_link_env_remove());
|
||||
base.link_env_remove.to_mut().extend(macos_link_env_remove());
|
||||
base.stack_probes = StackProbeType::X86;
|
||||
base.frame_pointer = FramePointer::Always;
|
||||
|
||||
@ -14,7 +15,7 @@ pub fn target() -> Target {
|
||||
// MACOSX_DEPLOYMENT_TARGET. To enable cross-language LTO to work
|
||||
// correctly, we do too.
|
||||
let arch = "i686";
|
||||
let llvm_target = super::apple_base::macos_llvm_target(&arch);
|
||||
let llvm_target = macos_llvm_target(arch);
|
||||
|
||||
Target {
|
||||
llvm_target: llvm_target.into(),
|
||||
|
@ -59,7 +59,6 @@ pub mod crt_objects;
|
||||
|
||||
mod android_base;
|
||||
mod apple_base;
|
||||
mod apple_sdk_base;
|
||||
mod avr_gnu_base;
|
||||
mod bpf_base;
|
||||
mod dragonfly_base;
|
||||
|
@ -1,14 +1,15 @@
|
||||
use super::apple_base::{macos_link_env_remove, macos_llvm_target, opts, Arch};
|
||||
use crate::spec::{Cc, FramePointer, LinkerFlavor, Lld, SanitizerSet};
|
||||
use crate::spec::{StackProbeType, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let arch = "x86_64";
|
||||
let mut base = super::apple_base::opts("macos", arch, "");
|
||||
let arch = Arch::X86_64;
|
||||
let mut base = opts("macos", arch);
|
||||
base.cpu = "core2".into();
|
||||
base.max_atomic_width = Some(128); // core2 support cmpxchg16b
|
||||
base.frame_pointer = FramePointer::Always;
|
||||
base.add_pre_link_args(LinkerFlavor::Darwin(Cc::Yes, Lld::No), &["-m64"]);
|
||||
base.link_env_remove.to_mut().extend(super::apple_base::macos_link_env_remove());
|
||||
base.link_env_remove.to_mut().extend(macos_link_env_remove());
|
||||
base.stack_probes = StackProbeType::X86;
|
||||
base.supported_sanitizers =
|
||||
SanitizerSet::ADDRESS | SanitizerSet::CFI | SanitizerSet::LEAK | SanitizerSet::THREAD;
|
||||
@ -16,14 +17,14 @@ pub fn target() -> Target {
|
||||
// Clang automatically chooses a more specific target based on
|
||||
// MACOSX_DEPLOYMENT_TARGET. To enable cross-language LTO to work
|
||||
// correctly, we do too.
|
||||
let llvm_target = super::apple_base::macos_llvm_target(&arch);
|
||||
let llvm_target = macos_llvm_target(arch.target_name());
|
||||
|
||||
Target {
|
||||
llvm_target: llvm_target.into(),
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
|
||||
.into(),
|
||||
arch: arch.into(),
|
||||
arch: "x86_84".into(),
|
||||
options: TargetOptions { mcount: "\u{1}mcount".into(), ..base },
|
||||
}
|
||||
}
|
||||
|
@ -1,9 +1,10 @@
|
||||
use super::apple_sdk_base::{opts, Arch};
|
||||
use super::apple_base::{ios_sim_llvm_target, opts, Arch};
|
||||
use crate::spec::{StackProbeType, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let base = opts("ios", Arch::X86_64_sim);
|
||||
let llvm_target = super::apple_base::ios_sim_llvm_target("x86_64");
|
||||
let arch = Arch::X86_64_sim;
|
||||
let base = opts("ios", arch);
|
||||
let llvm_target = ios_sim_llvm_target(arch);
|
||||
|
||||
Target {
|
||||
llvm_target: llvm_target.into(),
|
||||
|
@ -1,4 +1,4 @@
|
||||
use super::apple_sdk_base::{opts, Arch};
|
||||
use super::apple_base::{opts, Arch};
|
||||
use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
|
@ -1,4 +1,4 @@
|
||||
use super::apple_sdk_base::{opts, Arch};
|
||||
use super::apple_base::{opts, Arch};
|
||||
use crate::spec::{StackProbeType, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
|
@ -1,10 +1,10 @@
|
||||
use super::apple_sdk_base::{opts, Arch};
|
||||
use super::apple_base::{opts, Arch};
|
||||
use crate::spec::{StackProbeType, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let arch = Arch::X86_64_sim;
|
||||
let base = opts("watchos", Arch::X86_64_sim);
|
||||
|
||||
let arch = "x86_64";
|
||||
let llvm_target = super::apple_base::watchos_sim_llvm_target(arch);
|
||||
|
||||
Target {
|
||||
|
Loading…
x
Reference in New Issue
Block a user