mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
[Apple Silicon] [macCatalyst] Baseline arm64(e) macCatalyst at Swift 5.3/iOS 14.0.
This commit is contained in:
@@ -252,6 +252,10 @@ AvailabilityContext ASTContext::getSwift50Availability() {
|
||||
return AvailabilityContext(
|
||||
VersionRange::allGTE(llvm::VersionTuple(10,14,4)));
|
||||
} else if (target.isiOS()) {
|
||||
if (target.isAArch64() &&
|
||||
(target.isSimulatorEnvironment() || target.isMacCatalystEnvironment()))
|
||||
return AvailabilityContext::alwaysAvailable();
|
||||
|
||||
return AvailabilityContext(
|
||||
VersionRange::allGTE(llvm::VersionTuple(12,2)));
|
||||
} else if (target.isWatchOS()) {
|
||||
@@ -283,6 +287,10 @@ AvailabilityContext ASTContext::getSwift51Availability() {
|
||||
return AvailabilityContext(
|
||||
VersionRange::allGTE(llvm::VersionTuple(10,15,0)));
|
||||
} else if (target.isiOS()) {
|
||||
if (target.isAArch64() &&
|
||||
(target.isSimulatorEnvironment() || target.isMacCatalystEnvironment()))
|
||||
return AvailabilityContext::alwaysAvailable();
|
||||
|
||||
return AvailabilityContext(
|
||||
VersionRange::allGTE(llvm::VersionTuple(13,0,0)));
|
||||
} else if (target.isWatchOS()) {
|
||||
@@ -323,6 +331,10 @@ AvailabilityContext ASTContext::getSwift52Availability() {
|
||||
return AvailabilityContext(
|
||||
VersionRange::allGTE(llvm::VersionTuple(10, 99, 0)));
|
||||
} else if (target.isiOS()) {
|
||||
if (target.isAArch64() &&
|
||||
(target.isSimulatorEnvironment() || target.isMacCatalystEnvironment()))
|
||||
return AvailabilityContext::alwaysAvailable();
|
||||
|
||||
return AvailabilityContext(
|
||||
VersionRange::allGTE(llvm::VersionTuple(99, 0, 0)));
|
||||
} else if (target.isWatchOS()) {
|
||||
@@ -346,6 +358,10 @@ AvailabilityContext ASTContext::getSwift53Availability() {
|
||||
return AvailabilityContext(
|
||||
VersionRange::allGTE(llvm::VersionTuple(10, 99, 0)));
|
||||
} else if (target.isiOS()) {
|
||||
if (target.isAArch64() &&
|
||||
(target.isSimulatorEnvironment() || target.isMacCatalystEnvironment()))
|
||||
return AvailabilityContext::alwaysAvailable();
|
||||
|
||||
return AvailabilityContext(
|
||||
VersionRange::allGTE(llvm::VersionTuple(99, 0, 0)));
|
||||
} else if (target.isWatchOS()) {
|
||||
|
||||
@@ -402,6 +402,13 @@ swift::getSwiftRuntimeCompatibilityVersionForTarget(
|
||||
}
|
||||
} else if (Triple.isiOS()) { // includes tvOS
|
||||
Triple.getiOSVersion(Major, Minor, Micro);
|
||||
|
||||
// arm64 simulators and macCatalyst are introduced in iOS 14.0/tvOS 14.0
|
||||
// with Swift 5.3
|
||||
if (Triple.isAArch64() && Major <= 14 &&
|
||||
(Triple.isSimulatorEnvironment() || Triple.isMacCatalystEnvironment()))
|
||||
return llvm::VersionTuple(5, 3);
|
||||
|
||||
if (Major <= 12) {
|
||||
return llvm::VersionTuple(5, 0);
|
||||
} else if (Major <= 13) {
|
||||
|
||||
@@ -591,6 +591,14 @@ toolchains::Darwin::addDeploymentTargetArgs(ArgStringList &Arguments,
|
||||
if (tripleIsMacCatalystEnvironment(triple)) {
|
||||
triple.getiOSVersion(major, minor, micro);
|
||||
|
||||
// Mac Catalyst on arm was introduced with an iOS deployment target of
|
||||
// 14.0; the linker doesn't want to see a deployment target before that.
|
||||
if (major < 14 && triple.isAArch64()) {
|
||||
major = 14;
|
||||
minor = 0;
|
||||
micro = 0;
|
||||
}
|
||||
|
||||
// Mac Catalyst was introduced with an iOS deployment target of 13.0;
|
||||
// the linker doesn't want to see a deployment target before that.
|
||||
if (major < 13) {
|
||||
|
||||
@@ -34,6 +34,9 @@
|
||||
// IOS12-MACABI-DAG: -rpath [[MACOSX_SDK_STDLIB_PATH]]
|
||||
// IOS12-MACABI-DAG: -platform_version mac-catalyst 13.0.0 0.0.0
|
||||
|
||||
// RUN: %swiftc_driver -driver-print-jobs -target arm64-apple-ios12.0-macabi -sdk %S/../Inputs/clang-importer-sdk %s | %FileCheck -check-prefix=IOS14-MACABI %s
|
||||
// IOS14-MACABI: -platform_version mac-catalyst 14.0.0 0.0.0
|
||||
|
||||
// Test using target-variant to build zippered outputs
|
||||
|
||||
// RUN: %swiftc_driver -sdk "" -driver-print-jobs -c -target x86_64-apple-macosx10.14 -target-variant x86_64-apple-ios13.0-macabi %s | %FileCheck -check-prefix=ZIPPERED-VARIANT-OBJECT %s
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
// REQUIRES: CPU=arm64,OS=maccatalyst
|
||||
|
||||
// Doesn't autolink compatibility library because target OS doesn't need it
|
||||
// RUN: %target-swift-frontend -target arm64-apple-ios12.0-macabi -emit-ir -parse-stdlib %s | %FileCheck -check-prefix=NO-FORCE-LOAD %s
|
||||
|
||||
public func foo() {}
|
||||
|
||||
// NO-FORCE-LOAD-NOT: FORCE_LOAD
|
||||
// NO-FORCE-LOAD-NOT: !{!"-lswiftCompatibility50"}
|
||||
// NO-FORCE-LOAD-NOT: !{!"-lswiftCompatibility51"}
|
||||
// NO-FORCE-LOAD-NOT: !{!"-lswiftCompatibility52"}
|
||||
// NO-FORCE-LOAD-NOT: !{!"-lswiftCompatibility53"}
|
||||
// NO-FORCE-LOAD-NOT: !{!"-lswiftCompatibilityDynamicReplacements"}
|
||||
Reference in New Issue
Block a user