Workaround crash when building platform libraries on macOS and Linux
This commit is contained in:
committed by
SvyatoslavScherbina
parent
4da64036c1
commit
da32e91a5c
+15
-1
@@ -19,6 +19,7 @@ package org.jetbrains.kotlin.gradle.plugin.konan
|
|||||||
import org.gradle.api.Named
|
import org.gradle.api.Named
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
import org.gradle.api.file.FileCollection
|
import org.gradle.api.file.FileCollection
|
||||||
|
import org.jetbrains.kotlin.konan.target.Family
|
||||||
import org.jetbrains.kotlin.konan.target.HostManager
|
import org.jetbrains.kotlin.konan.target.HostManager
|
||||||
import org.jetbrains.kotlin.konan.target.KonanTarget
|
import org.jetbrains.kotlin.konan.target.KonanTarget
|
||||||
import org.jetbrains.kotlin.konan.util.DependencyProcessor
|
import org.jetbrains.kotlin.konan.util.DependencyProcessor
|
||||||
@@ -72,7 +73,20 @@ internal abstract class KonanCliRunner(
|
|||||||
"java.library.path" to "${project.konanHome}/konan/nativelib"
|
"java.library.path" to "${project.konanHome}/konan/nativelib"
|
||||||
)
|
)
|
||||||
|
|
||||||
override val environment = mutableMapOf("LIBCLANG_DISABLE_CRASH_RECOVERY" to "1")
|
override val environment = mutableMapOf("LIBCLANG_DISABLE_CRASH_RECOVERY" to "1").apply {
|
||||||
|
// See https://docs.oracle.com/javase/10/vm/signal-chaining.htm
|
||||||
|
val jre = System.getProperty("java.home")
|
||||||
|
when (HostManager.host.family) {
|
||||||
|
Family.OSX -> {
|
||||||
|
put("DYLD_FORCE_FLAT_NAMESPACE", "0")
|
||||||
|
put("DYLD_INSERT_LIBRARIES", "$jre/lib/libjsig.dylib")
|
||||||
|
}
|
||||||
|
Family.LINUX -> {
|
||||||
|
put("LD_PRELOAD", "$jre/lib/libjsig.so")
|
||||||
|
}
|
||||||
|
else -> { /* No signal chaining required. */ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun String.escapeQuotes() = replace("\"", "\\\"")
|
private fun String.escapeQuotes() = replace("\"", "\\\"")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user