[K/N] AArch64 watchOS target
This commit is contained in:
@@ -405,6 +405,26 @@ linkerDynamicFlags.watchos_arm64 = -dylib
|
|||||||
osVersionMinFlagLd.watchos_arm64 = -watchos_version_min
|
osVersionMinFlagLd.watchos_arm64 = -watchos_version_min
|
||||||
osVersionMin.watchos_arm64 = 5.0
|
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.
|
# Apple's watchOS i386 simulator.
|
||||||
targetToolchain.macos_x64-watchos_x86 = target-toolchain-xcode_14_rc
|
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
|
getcontext makecontext setcontext swapcontext
|
||||||
excludedFunctions.watchos_arm32 = longjmperror
|
excludedFunctions.watchos_arm32 = longjmperror
|
||||||
excludedFunctions.watchos_arm64 = longjmperror
|
excludedFunctions.watchos_arm64 = longjmperror
|
||||||
|
excludedFunctions.watchos_device_arm64 = longjmperror
|
||||||
excludedFunctions.watchos_simulator_arm64 = longjmperror \
|
excludedFunctions.watchos_simulator_arm64 = longjmperror \
|
||||||
openat_dprotected_np mkfifoat mknodat openat_authenticated_np
|
openat_dprotected_np mkfifoat mknodat openat_authenticated_np
|
||||||
excludedFunctions.watchos_x64 = 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_arm64 \
|
||||||
-target watchos_x64 \
|
-target watchos_x64 \
|
||||||
-target watchos_simulator_arm64 \
|
-target watchos_simulator_arm64 \
|
||||||
|
-target watchos_device_arm64 \
|
||||||
*.def
|
*.def
|
||||||
|
|
||||||
|
|||||||
+6
@@ -63,6 +63,10 @@ fun KonanTarget.supportsMimallocAllocator(): Boolean =
|
|||||||
is KonanTarget.ANDROID_X86, is KonanTarget.ANDROID_ARM32 -> false // aren't tested.
|
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.LINUX_MIPS32, is KonanTarget.LINUX_MIPSEL32 -> false // need linking with libatomic.
|
||||||
is KonanTarget.WASM32, is KonanTarget.ZEPHYR -> false // likely not supported
|
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 =
|
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.LINUX && this.architecture !in listOf(Architecture.MIPS32, Architecture.MIPSEL32)) ||
|
||||||
this.family == Family.ANDROID
|
this.family == Family.ANDROID
|
||||||
|
|
||||||
|
// TODO: Add explicit WATCHOS_DEVICE_ARM64 after compiler update.
|
||||||
fun KonanTarget.supportsCoreSymbolication(): Boolean =
|
fun KonanTarget.supportsCoreSymbolication(): Boolean =
|
||||||
this in listOf(
|
this in listOf(
|
||||||
KonanTarget.MACOS_X64, KonanTarget.MACOS_ARM64, KonanTarget.IOS_X64,
|
KonanTarget.MACOS_X64, KonanTarget.MACOS_ARM64, KonanTarget.IOS_X64,
|
||||||
@@ -117,6 +122,7 @@ fun KonanTarget.supports64BitMulOverflow(): Boolean = when (this) {
|
|||||||
else -> true
|
else -> true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Add explicit WATCHOS_DEVICE_ARM64 after compiler update.
|
||||||
fun KonanTarget.supportsIosCrashLog(): Boolean = when (this) {
|
fun KonanTarget.supportsIosCrashLog(): Boolean = when (this) {
|
||||||
KonanTarget.IOS_ARM32 -> true
|
KonanTarget.IOS_ARM32 -> true
|
||||||
KonanTarget.IOS_ARM64 -> true
|
KonanTarget.IOS_ARM64 -> true
|
||||||
|
|||||||
@@ -73,6 +73,7 @@ open class HostManager(
|
|||||||
WATCHOS_X86,
|
WATCHOS_X86,
|
||||||
WATCHOS_X64,
|
WATCHOS_X64,
|
||||||
WATCHOS_SIMULATOR_ARM64,
|
WATCHOS_SIMULATOR_ARM64,
|
||||||
|
WATCHOS_DEVICE_ARM64,
|
||||||
TVOS_ARM64,
|
TVOS_ARM64,
|
||||||
TVOS_X64,
|
TVOS_X64,
|
||||||
TVOS_SIMULATOR_ARM64,
|
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_X86 : KonanTarget("watchos_x86", Family.WATCHOS, Architecture.X86)
|
||||||
object WATCHOS_X64 : KonanTarget("watchos_x64", Family.WATCHOS, Architecture.X64)
|
object WATCHOS_X64 : KonanTarget("watchos_x64", Family.WATCHOS, Architecture.X64)
|
||||||
object WATCHOS_SIMULATOR_ARM64 : KonanTarget("watchos_simulator_arm64", Family.WATCHOS, Architecture.ARM64)
|
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_ARM64 : KonanTarget("tvos_arm64", Family.TVOS, Architecture.ARM64)
|
||||||
object TVOS_X64 : KonanTarget("tvos_x64", Family.TVOS, Architecture.X64)
|
object TVOS_X64 : KonanTarget("tvos_x64", Family.TVOS, Architecture.X64)
|
||||||
object TVOS_SIMULATOR_ARM64 : KonanTarget("tvos_simulator_arm64", Family.TVOS, Architecture.ARM64)
|
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,
|
ANDROID_X64, ANDROID_X86, ANDROID_ARM32, ANDROID_ARM64,
|
||||||
IOS_ARM32, IOS_ARM64, IOS_X64, IOS_SIMULATOR_ARM64,
|
IOS_ARM32, IOS_ARM64, IOS_X64, IOS_SIMULATOR_ARM64,
|
||||||
WATCHOS_ARM32, WATCHOS_ARM64, WATCHOS_X86, WATCHOS_X64,
|
WATCHOS_ARM32, WATCHOS_ARM64, WATCHOS_X86, WATCHOS_X64,
|
||||||
WATCHOS_SIMULATOR_ARM64,
|
WATCHOS_SIMULATOR_ARM64, WATCHOS_DEVICE_ARM64,
|
||||||
TVOS_ARM64, TVOS_X64, TVOS_SIMULATOR_ARM64,
|
TVOS_ARM64, TVOS_X64, TVOS_SIMULATOR_ARM64,
|
||||||
LINUX_X64,
|
LINUX_X64,
|
||||||
MINGW_X86, MINGW_X64,
|
MINGW_X86, MINGW_X64,
|
||||||
|
|||||||
Reference in New Issue
Block a user