[K/N] AArch64 watchOS target
This commit is contained in:
@@ -405,6 +405,26 @@ linkerDynamicFlags.watchos_arm64 = -dylib
|
||||
osVersionMinFlagLd.watchos_arm64 = -watchos_version_min
|
||||
osVersionMin.watchos_arm64 = 5.0
|
||||
|
||||
# watchOS arm64
|
||||
targetToolchain.macos_x64-watchos_device_arm64 = target-toolchain-xcode_14_rc
|
||||
targetToolchain.macos_arm64-watchos_device_arm64 = target-toolchain-xcode_14_rc
|
||||
|
||||
targetTriple.watchos_device_arm64 = arm64-apple-watchos
|
||||
targetSysRoot.watchos_device_arm64 = target-sysroot-xcode_14_rc-watchos
|
||||
targetCpu.watchos_device_arm64 = apple-a7
|
||||
clangFlags.watchos_device_arm64 = -cc1 -emit-obj -disable-llvm-passes -x ir
|
||||
clangNooptFlags.watchos_device_arm64 = -O1
|
||||
clangOptFlags.watchos_device_arm64 = -O3
|
||||
clangDebugFlags.watchos_device_arm64 = -O0 -mllvm -fast-isel=false -mllvm -global-isel=false
|
||||
|
||||
linkerKonanFlags.watchos_device_arm64 = -lSystem -lc++ -lobjc -framework Foundation -sdk_version 9.0
|
||||
linkerOptimizationFlags.watchos_device_arm64 = -dead_strip
|
||||
linkerNoDebugFlags.watchos_device_arm64 = -S
|
||||
stripFlags.watchos_device_arm64 = -S
|
||||
linkerDynamicFlags.watchos_device_arm64 = -dylib
|
||||
osVersionMinFlagLd.watchos_device_arm64 = -watchos_version_min
|
||||
osVersionMin.watchos_device_arm64 = 9.0
|
||||
|
||||
|
||||
# Apple's watchOS i386 simulator.
|
||||
targetToolchain.macos_x64-watchos_x86 = target-toolchain-xcode_14_rc
|
||||
|
||||
@@ -21,6 +21,7 @@ excludedFunctions = acl_valid_link_np pfctlinput profil unwhiteout zopen getdire
|
||||
getcontext makecontext setcontext swapcontext
|
||||
excludedFunctions.watchos_arm32 = longjmperror
|
||||
excludedFunctions.watchos_arm64 = longjmperror
|
||||
excludedFunctions.watchos_device_arm64 = longjmperror
|
||||
excludedFunctions.watchos_simulator_arm64 = longjmperror \
|
||||
openat_dprotected_np mkfifoat mknodat openat_authenticated_np
|
||||
excludedFunctions.watchos_x64 = openat_dprotected_np mkfifoat mknodat openat_authenticated_np
|
||||
|
||||
@@ -5,5 +5,6 @@
|
||||
-target watchos_arm64 \
|
||||
-target watchos_x64 \
|
||||
-target watchos_simulator_arm64 \
|
||||
-target watchos_device_arm64 \
|
||||
*.def
|
||||
|
||||
|
||||
+6
@@ -63,6 +63,10 @@ fun KonanTarget.supportsMimallocAllocator(): Boolean =
|
||||
is KonanTarget.ANDROID_X86, is KonanTarget.ANDROID_ARM32 -> false // aren't tested.
|
||||
is KonanTarget.LINUX_MIPS32, is KonanTarget.LINUX_MIPSEL32 -> false // need linking with libatomic.
|
||||
is KonanTarget.WASM32, is KonanTarget.ZEPHYR -> false // likely not supported
|
||||
// Funny thing is we can neither access WATCHOS_DEVICE_ARM64, nor omit it explicitly due to the
|
||||
// build's quirks. Workaround by using else clause.
|
||||
// TODO: Add explicit WATCHOS_DEVICE_ARM64 after compiler update.
|
||||
else -> false
|
||||
}
|
||||
|
||||
fun KonanTarget.supportsLibBacktrace(): Boolean =
|
||||
@@ -71,6 +75,7 @@ fun KonanTarget.supportsLibBacktrace(): Boolean =
|
||||
(this.family == Family.LINUX && this.architecture !in listOf(Architecture.MIPS32, Architecture.MIPSEL32)) ||
|
||||
this.family == Family.ANDROID
|
||||
|
||||
// TODO: Add explicit WATCHOS_DEVICE_ARM64 after compiler update.
|
||||
fun KonanTarget.supportsCoreSymbolication(): Boolean =
|
||||
this in listOf(
|
||||
KonanTarget.MACOS_X64, KonanTarget.MACOS_ARM64, KonanTarget.IOS_X64,
|
||||
@@ -117,6 +122,7 @@ fun KonanTarget.supports64BitMulOverflow(): Boolean = when (this) {
|
||||
else -> true
|
||||
}
|
||||
|
||||
// TODO: Add explicit WATCHOS_DEVICE_ARM64 after compiler update.
|
||||
fun KonanTarget.supportsIosCrashLog(): Boolean = when (this) {
|
||||
KonanTarget.IOS_ARM32 -> true
|
||||
KonanTarget.IOS_ARM64 -> true
|
||||
|
||||
@@ -73,6 +73,7 @@ open class HostManager(
|
||||
WATCHOS_X86,
|
||||
WATCHOS_X64,
|
||||
WATCHOS_SIMULATOR_ARM64,
|
||||
WATCHOS_DEVICE_ARM64,
|
||||
TVOS_ARM64,
|
||||
TVOS_X64,
|
||||
TVOS_SIMULATOR_ARM64,
|
||||
|
||||
@@ -22,6 +22,7 @@ sealed class KonanTarget(override val name: String, val family: Family, val arch
|
||||
object WATCHOS_X86 : KonanTarget("watchos_x86", Family.WATCHOS, Architecture.X86)
|
||||
object WATCHOS_X64 : KonanTarget("watchos_x64", Family.WATCHOS, Architecture.X64)
|
||||
object WATCHOS_SIMULATOR_ARM64 : KonanTarget("watchos_simulator_arm64", Family.WATCHOS, Architecture.ARM64)
|
||||
object WATCHOS_DEVICE_ARM64 : KonanTarget("watchos_device_arm64", Family.WATCHOS, Architecture.ARM64)
|
||||
object TVOS_ARM64 : KonanTarget("tvos_arm64", Family.TVOS, Architecture.ARM64)
|
||||
object TVOS_X64 : KonanTarget("tvos_x64", Family.TVOS, Architecture.X64)
|
||||
object TVOS_SIMULATOR_ARM64 : KonanTarget("tvos_simulator_arm64", Family.TVOS, Architecture.ARM64)
|
||||
@@ -49,7 +50,7 @@ sealed class KonanTarget(override val name: String, val family: Family, val arch
|
||||
ANDROID_X64, ANDROID_X86, ANDROID_ARM32, ANDROID_ARM64,
|
||||
IOS_ARM32, IOS_ARM64, IOS_X64, IOS_SIMULATOR_ARM64,
|
||||
WATCHOS_ARM32, WATCHOS_ARM64, WATCHOS_X86, WATCHOS_X64,
|
||||
WATCHOS_SIMULATOR_ARM64,
|
||||
WATCHOS_SIMULATOR_ARM64, WATCHOS_DEVICE_ARM64,
|
||||
TVOS_ARM64, TVOS_X64, TVOS_SIMULATOR_ARM64,
|
||||
LINUX_X64,
|
||||
MINGW_X86, MINGW_X64,
|
||||
|
||||
Reference in New Issue
Block a user