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
4 changed files with 18 additions and 21 deletions
|
@ -7,6 +7,22 @@ use rustc_target::spec::Target;
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests;
|
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.
|
/// Deployment target or SDK version.
|
||||||
///
|
///
|
||||||
/// The size of the numbers in here are limited by Mach-O's `LC_BUILD_VERSION`.
|
/// The size of the numbers in here are limited by Mach-O's `LC_BUILD_VERSION`.
|
||||||
|
|
|
@ -402,8 +402,7 @@ fn macho_object_build_version_for_target(sess: &Session) -> object::write::MachO
|
||||||
(major << 16) | (minor << 8) | patch
|
(major << 16) | (minor << 8) | patch
|
||||||
}
|
}
|
||||||
|
|
||||||
let platform =
|
let platform = apple::macho_platform(&sess.target);
|
||||||
rustc_target::spec::current_apple_platform(&sess.target).expect("unknown Apple target OS");
|
|
||||||
let min_os = apple::deployment_target(sess);
|
let min_os = apple::deployment_target(sess);
|
||||||
|
|
||||||
let mut build_version = object::write::MachOBuildVersion::default();
|
let mut build_version = object::write::MachOBuildVersion::default();
|
||||||
|
|
|
@ -3,7 +3,7 @@ use std::env;
|
||||||
|
|
||||||
use crate::spec::{
|
use crate::spec::{
|
||||||
Cc, DebuginfoKind, FramePointer, LinkerFlavor, Lld, SplitDebuginfo, StackProbeType, StaticCow,
|
Cc, DebuginfoKind, FramePointer, LinkerFlavor, Lld, SplitDebuginfo, StackProbeType, StaticCow,
|
||||||
Target, TargetOptions, cvs,
|
TargetOptions, cvs,
|
||||||
};
|
};
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
|
@ -156,23 +156,6 @@ pub(crate) fn base(
|
||||||
(opts, unversioned_llvm_target(os, arch, abi), arch.target_arch())
|
(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.
|
/// Generate part of the LLVM target triple.
|
||||||
///
|
///
|
||||||
/// See `rustc_codegen_ssa::back::versioned_llvm_target` for the full triple passed to LLVM and
|
/// See `rustc_codegen_ssa::back::versioned_llvm_target` for the full triple passed to LLVM and
|
||||||
|
|
|
@ -59,7 +59,6 @@ pub mod abi;
|
||||||
pub mod crt_objects;
|
pub mod crt_objects;
|
||||||
|
|
||||||
mod base;
|
mod base;
|
||||||
pub use base::apple::platform as current_apple_platform;
|
|
||||||
pub use base::avr_gnu::ef_avr_arch;
|
pub use base::avr_gnu::ef_avr_arch;
|
||||||
|
|
||||||
/// Linker is called through a C/C++ compiler.
|
/// Linker is called through a C/C++ compiler.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue