Make LLVM target contain correct deployment target info on Mac Catalyst
This commit is contained in:
parent
94ddbb615d
commit
92d4b313eb
@ -106,11 +106,9 @@ fn pre_link_args(os: &'static str, arch: Arch, abi: &'static str) -> LinkArgs {
|
||||
}
|
||||
.into();
|
||||
|
||||
let arch = arch.target_name();
|
||||
|
||||
let mut args = TargetOptions::link_args(
|
||||
LinkerFlavor::Darwin(Cc::No, Lld::No),
|
||||
&["-arch", arch, "-platform_version"],
|
||||
&["-arch", arch.target_name(), "-platform_version"],
|
||||
);
|
||||
add_link_args_iter(
|
||||
&mut args,
|
||||
@ -118,7 +116,17 @@ fn pre_link_args(os: &'static str, arch: Arch, abi: &'static str) -> LinkArgs {
|
||||
[platform_name, platform_version.clone(), platform_version].into_iter(),
|
||||
);
|
||||
if abi != "macabi" {
|
||||
add_link_args(&mut args, LinkerFlavor::Darwin(Cc::Yes, Lld::No), &["-arch", arch]);
|
||||
add_link_args(
|
||||
&mut args,
|
||||
LinkerFlavor::Darwin(Cc::Yes, Lld::No),
|
||||
&["-arch", arch.target_name()],
|
||||
);
|
||||
} else {
|
||||
add_link_args_iter(
|
||||
&mut args,
|
||||
LinkerFlavor::Darwin(Cc::Yes, Lld::No),
|
||||
["-target".into(), mac_catalyst_llvm_target(arch).into()].into_iter(),
|
||||
);
|
||||
}
|
||||
|
||||
args
|
||||
@ -326,6 +334,11 @@ pub fn ios_llvm_target(arch: Arch) -> String {
|
||||
format!("{}-apple-ios{}.{}.0", arch.target_name(), major, minor)
|
||||
}
|
||||
|
||||
pub fn mac_catalyst_llvm_target(arch: Arch) -> String {
|
||||
let (major, minor) = mac_catalyst_deployment_target();
|
||||
format!("{}-apple-ios{}.{}.0-macabi", arch.target_name(), major, minor)
|
||||
}
|
||||
|
||||
fn ios_lld_platform_version(arch: Arch) -> String {
|
||||
let (major, minor) = ios_deployment_target(arch);
|
||||
format!("{major}.{minor}")
|
||||
|
@ -1,16 +1,13 @@
|
||||
use crate::spec::base::apple::{opts, Arch};
|
||||
use crate::spec::{Cc, FramePointer, LinkerFlavor, Lld, SanitizerSet, Target, TargetOptions};
|
||||
use crate::spec::base::apple::{mac_catalyst_llvm_target, opts, Arch};
|
||||
use crate::spec::{FramePointer, SanitizerSet, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let llvm_target = "arm64-apple-ios14.0-macabi";
|
||||
|
||||
let arch = Arch::Arm64_macabi;
|
||||
let mut base = opts("ios", arch);
|
||||
base.add_pre_link_args(LinkerFlavor::Darwin(Cc::Yes, Lld::No), &["-target", llvm_target]);
|
||||
base.supported_sanitizers = SanitizerSet::ADDRESS | SanitizerSet::LEAK | SanitizerSet::THREAD;
|
||||
|
||||
Target {
|
||||
llvm_target: llvm_target.into(),
|
||||
llvm_target: mac_catalyst_llvm_target(arch).into(),
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: arch.target_arch(),
|
||||
|
@ -1,16 +1,13 @@
|
||||
use crate::spec::base::apple::{opts, Arch};
|
||||
use crate::spec::{Cc, LinkerFlavor, Lld, SanitizerSet, Target, TargetOptions};
|
||||
use crate::spec::base::apple::{mac_catalyst_llvm_target, opts, Arch};
|
||||
use crate::spec::{SanitizerSet, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let llvm_target = "x86_64-apple-ios14.0-macabi";
|
||||
|
||||
let arch = Arch::X86_64_macabi;
|
||||
let mut base = opts("ios", arch);
|
||||
base.add_pre_link_args(LinkerFlavor::Darwin(Cc::Yes, Lld::No), &["-target", llvm_target]);
|
||||
base.supported_sanitizers = SanitizerSet::ADDRESS | SanitizerSet::LEAK | SanitizerSet::THREAD;
|
||||
|
||||
Target {
|
||||
llvm_target: llvm_target.into(),
|
||||
llvm_target: mac_catalyst_llvm_target(arch).into(),
|
||||
pointer_width: 64,
|
||||
data_layout:
|
||||
"e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128".into(),
|
||||
|
Loading…
x
Reference in New Issue
Block a user