Move Mach-O platform information to rustc_codegen_ssa:🔙:apple
To align with the general decision to have this sort of information there instead. Also use the visionOS values added in newer `object` release.
This commit is contained in:
parent
e1233153ac
commit
e75a7ddad3
@ -7,6 +7,22 @@
|
||||
#[cfg(test)]
|
||||
mod tests;
|
||||
|
||||
pub(super) fn macho_platform(target: &Target) -> u32 {
|
||||
match (&*target.os, &*target.abi) {
|
||||
("macos", _) => object::macho::PLATFORM_MACOS,
|
||||
("ios", "macabi") => object::macho::PLATFORM_MACCATALYST,
|
||||
("ios", "sim") => object::macho::PLATFORM_IOSSIMULATOR,
|
||||
("ios", _) => object::macho::PLATFORM_IOS,
|
||||
("watchos", "sim") => object::macho::PLATFORM_WATCHOSSIMULATOR,
|
||||
("watchos", _) => object::macho::PLATFORM_WATCHOS,
|
||||
("tvos", "sim") => object::macho::PLATFORM_TVOSSIMULATOR,
|
||||
("tvos", _) => object::macho::PLATFORM_TVOS,
|
||||
("visionos", "sim") => object::macho::PLATFORM_XROSSIMULATOR,
|
||||
("visionos", _) => object::macho::PLATFORM_XROS,
|
||||
_ => unreachable!("tried to get Mach-O platform for non-Apple target"),
|
||||
}
|
||||
}
|
||||
|
||||
/// Deployment target or SDK version.
|
||||
///
|
||||
/// The size of the numbers in here are limited by Mach-O's `LC_BUILD_VERSION`.
|
||||
|
@ -402,8 +402,7 @@ fn pack_version((major, minor, patch): (u16, u8, u8)) -> u32 {
|
||||
(major << 16) | (minor << 8) | patch
|
||||
}
|
||||
|
||||
let platform =
|
||||
rustc_target::spec::current_apple_platform(&sess.target).expect("unknown Apple target OS");
|
||||
let platform = apple::macho_platform(&sess.target);
|
||||
let min_os = apple::deployment_target(sess);
|
||||
|
||||
let mut build_version = object::write::MachOBuildVersion::default();
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
use crate::spec::{
|
||||
Cc, DebuginfoKind, FramePointer, LinkerFlavor, Lld, SplitDebuginfo, StackProbeType, StaticCow,
|
||||
Target, TargetOptions, cvs,
|
||||
TargetOptions, cvs,
|
||||
};
|
||||
|
||||
#[cfg(test)]
|
||||
@ -156,23 +156,6 @@ pub(crate) fn base(
|
||||
(opts, unversioned_llvm_target(os, arch, abi), arch.target_arch())
|
||||
}
|
||||
|
||||
pub fn platform(target: &Target) -> Option<u32> {
|
||||
Some(match (&*target.os, &*target.abi) {
|
||||
("macos", _) => object::macho::PLATFORM_MACOS,
|
||||
("ios", "macabi") => object::macho::PLATFORM_MACCATALYST,
|
||||
("ios", "sim") => object::macho::PLATFORM_IOSSIMULATOR,
|
||||
("ios", _) => object::macho::PLATFORM_IOS,
|
||||
("watchos", "sim") => object::macho::PLATFORM_WATCHOSSIMULATOR,
|
||||
("watchos", _) => object::macho::PLATFORM_WATCHOS,
|
||||
("tvos", "sim") => object::macho::PLATFORM_TVOSSIMULATOR,
|
||||
("tvos", _) => object::macho::PLATFORM_TVOS,
|
||||
// FIXME: Upgrade to `object-rs` 0.33+ implementation with visionOS platform definition
|
||||
("visionos", "sim") => 12,
|
||||
("visionos", _) => 11,
|
||||
_ => return None,
|
||||
})
|
||||
}
|
||||
|
||||
/// Generate part of the LLVM target triple.
|
||||
///
|
||||
/// See `rustc_codegen_ssa::back::versioned_llvm_target` for the full triple passed to LLVM and
|
||||
|
@ -59,7 +59,6 @@
|
||||
pub mod crt_objects;
|
||||
|
||||
mod base;
|
||||
pub use base::apple::platform as current_apple_platform;
|
||||
pub use base::avr_gnu::ef_avr_arch;
|
||||
|
||||
/// Linker is called through a C/C++ compiler.
|
||||
|
Loading…
Reference in New Issue
Block a user