[K/N] Don't assume all apple target support CoreSymbolication

This commit is contained in:
Pavel Kunyavskiy
2021-09-28 11:40:50 +03:00
committed by Space
parent 193effc7c4
commit 9f2035c43d
6 changed files with 22 additions and 8 deletions
@@ -96,7 +96,7 @@ class KonanConfig(val project: Project, val configuration: CompilerConfiguration
}
val sourceInfoType: SourceInfoType
get() = configuration.get(BinaryOptions.sourceInfoType)
?: SourceInfoType.CORESYMBOLICATION.takeIf { debug && target.family.isAppleFamily }
?: SourceInfoType.CORESYMBOLICATION.takeIf { debug && target.supportsCoreSymbolication() }
?: SourceInfoType.NOOP
@@ -227,7 +227,9 @@ class KonanConfig(val project: Project, val configuration: CompilerConfiguration
}
}
if (shouldCoverLibraries || shouldCoverSources) add("profileRuntime.bc")
add("source_info_core_symbolication.bc")
if (target.supportsCoreSymbolication()) {
add("source_info_core_symbolication.bc")
}
if (target.supportsLibBacktrace()) {
add("source_info_libbacktrace.bc")
add("libbacktrace.bc")
@@ -2669,19 +2669,19 @@ task extend_exception(type: KonanLocalTest) {
}
standaloneTest("check_stacktrace_format") {
disabled = !isAppleTarget(project) || project.globalTestArgs.contains('-opt')
disabled = !supportsCoreSymbolication(project) || project.globalTestArgs.contains('-opt')
flags = ['-g']
source = "runtime/exceptions/check_stacktrace_format.kt"
}
standaloneTest("check_stacktrace_format_coresymbolication") {
disabled = !isAppleTarget(project) || project.globalTestArgs.contains('-opt')
disabled = !supportsCoreSymbolication(project) || project.globalTestArgs.contains('-opt')
flags = ['-g', '-Xbinary=sourceInfoType=coresymbolication']
source = "runtime/exceptions/check_stacktrace_format.kt"
}
standaloneTest("stack_trace_inline") {
disabled = !isAppleTarget(project) || project.globalTestArgs.contains('-opt')
disabled = !supportsCoreSymbolication(project) || project.globalTestArgs.contains('-opt')
flags = ['-g', '-Xg-generate-debug-trampoline=enable', '-Xbinary=sourceInfoType=coresymbolication']
source = "runtime/exceptions/stack_trace_inline.kt"
// test on simulator is writing Invalid connection: com.apple.coresymbolicationd by unknown reason
@@ -2690,14 +2690,13 @@ standaloneTest("stack_trace_inline") {
}
standaloneTest("stack_trace_out_of_bounds") {
disabled = !isAppleTarget(project) || project.globalTestArgs.contains('-opt') || (project.testTarget == 'ios_arm64')
disabled = !supportsCoreSymbolication(project) || project.globalTestArgs.contains('-opt') || (project.testTarget == 'ios_arm64')
flags = ['-g', '-Xg-generate-debug-trampoline=enable', '-Xbinary=stripDebugInfoFromNativeLibs=false']
source = "runtime/exceptions/stack_trace_out_of_bounds.kt"
}
standaloneTest("kt-37572") {
disabled = !isAppleTarget(project) || project.globalTestArgs.contains('-opt')
disabled = !supportsCoreSymbolication(project) || project.globalTestArgs.contains('-opt')
flags = ['-g', '-Xbinary=sourceInfoType=coresymbolication']
source = "runtime/exceptions/kt-37572.kt"
// test on simulator is writing Invalid connection: com.apple.coresymbolicationd by unknown reason
@@ -42,6 +42,11 @@ object PlatformInfo {
return getTarget(project).supportsLibBacktrace()
}
@JvmStatic
fun supportsCoreSymbolication(project: Project): Boolean {
return getTarget(project).supportsCoreSymbolication()
}
@JvmStatic
fun checkXcodeVersion(project: Project) {
val properties = PropertiesProvider(project)
@@ -328,6 +328,9 @@ fun targetSupportsMimallocAllocator(targetName: String) =
fun targetSupportsLibBacktrace(targetName: String) =
HostManager().targetByName(targetName).supportsLibBacktrace()
fun targetSupportsCoreSymbolication(targetName: String) =
HostManager().targetByName(targetName).supportsCoreSymbolication()
fun Project.mergeManifestsByTargets(source: File, destination: File) {
logger.info("Merging manifests: $source -> $destination")
+1
View File
@@ -122,6 +122,7 @@ bitcode {
create("source_info_core_symbolication", file("src/source_info/core_symbolication")) {
includeRuntime()
onlyIf { targetSupportsCoreSymbolication(target) }
}
create("source_info_libbacktrace", file("src/source_info/libbacktrace")) {
includeRuntime()
@@ -31,6 +31,10 @@ fun KonanTarget.supportsMimallocAllocator(): Boolean =
fun KonanTarget.supportsLibBacktrace(): Boolean =
this.family.isAppleFamily || this.family == Family.LINUX || this.family == Family.ANDROID
fun KonanTarget.supportsCoreSymbolication(): Boolean =
this.family.isAppleFamily
fun KonanTarget.supportsThreads(): Boolean =
when(this) {
is KonanTarget.WASM32 -> false