Generate an iOS LLVM target with a specific version
Without the specific version, the mach-o header will be missing the minimum supported operating system version. This is mandatory for running Rust binaries on iOS devices.
This commit is contained in:
parent
2a6fb9a4c0
commit
13e2f807a1
2 changed files with 13 additions and 1 deletions
|
@ -2,8 +2,15 @@ use super::apple_sdk_base::{opts, Arch};
|
||||||
use crate::spec::{FramePointer, Target, TargetOptions};
|
use crate::spec::{FramePointer, Target, TargetOptions};
|
||||||
|
|
||||||
pub fn target() -> Target {
|
pub fn target() -> Target {
|
||||||
|
// Clang automatically chooses a more specific target based on
|
||||||
|
// 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);
|
||||||
|
|
||||||
Target {
|
Target {
|
||||||
llvm_target: "arm64-apple-ios".to_string(),
|
llvm_target,
|
||||||
pointer_width: 64,
|
pointer_width: 64,
|
||||||
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".to_string(),
|
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".to_string(),
|
||||||
arch: "aarch64".to_string(),
|
arch: "aarch64".to_string(),
|
||||||
|
|
|
@ -91,6 +91,11 @@ fn ios_deployment_target() -> (u32, u32) {
|
||||||
deployment_target("IPHONEOS_DEPLOYMENT_TARGET").unwrap_or((7, 0))
|
deployment_target("IPHONEOS_DEPLOYMENT_TARGET").unwrap_or((7, 0))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn ios_llvm_target(arch: &str) -> String {
|
||||||
|
let (major, minor) = ios_deployment_target();
|
||||||
|
format!("{}-apple-ios{}.{}.0", arch, major, minor)
|
||||||
|
}
|
||||||
|
|
||||||
pub fn ios_sim_llvm_target(arch: &str) -> String {
|
pub fn ios_sim_llvm_target(arch: &str) -> String {
|
||||||
let (major, minor) = ios_deployment_target();
|
let (major, minor) = ios_deployment_target();
|
||||||
format!("{}-apple-ios{}.{}.0-simulator", arch, major, minor)
|
format!("{}-apple-ios{}.{}.0-simulator", arch, major, minor)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue