From df77cd303fb617d85b22061e1e7187aafbc38203 Mon Sep 17 00:00:00 2001 From: Svyatoslav Scherbina Date: Tue, 6 Apr 2021 12:41:46 +0300 Subject: [PATCH] Don't use exitProcess to indicate a failure in Native library resolver If Native compiler performs exitProcess, it crashes Gradle daemon that runs the compiler. --- .../cli.bc/src/org/jetbrains/kotlin/cli/bc/K2Native.kt | 2 +- .../kotlin/backend/konan/KonanLibrariesResolveSupport.kt | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/kotlin-native/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2Native.kt b/kotlin-native/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2Native.kt index 62876143f47..32f8d3822c6 100644 --- a/kotlin-native/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2Native.kt +++ b/kotlin-native/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2Native.kt @@ -61,7 +61,6 @@ class K2Native : CLICompiler() { val project = environment.project val messageCollector = configuration.get(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY) ?: MessageCollector.NONE configuration.put(CLIConfigurationKeys.PHASE_CONFIG, createPhaseConfig(toplevelPhase, arguments, messageCollector)) - val konanConfig = KonanConfig(project, configuration) val enoughArguments = arguments.freeArgs.isNotEmpty() || arguments.isUsefulWithoutFreeArgs if (!enoughArguments) { @@ -75,6 +74,7 @@ class K2Native : CLICompiler() { } try { + val konanConfig = KonanConfig(project, configuration) runTopLevelPhases(konanConfig, environment) } catch (e: KonanCompilationException) { return ExitCode.COMPILATION_ERROR diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanLibrariesResolveSupport.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanLibrariesResolveSupport.kt index 7ae2d5ee1c9..6bc89469667 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanLibrariesResolveSupport.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanLibrariesResolveSupport.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.backend.konan import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity -import org.jetbrains.kotlin.cli.common.messages.GroupingMessageCollector import org.jetbrains.kotlin.config.CompilerConfiguration import org.jetbrains.kotlin.konan.CompilerVersion import org.jetbrains.kotlin.konan.file.File @@ -19,7 +18,6 @@ import org.jetbrains.kotlin.library.UnresolvedLibrary import org.jetbrains.kotlin.library.resolver.impl.libraryResolver import org.jetbrains.kotlin.library.toUnresolvedLibraries import org.jetbrains.kotlin.util.Logger -import kotlin.system.exitProcess class KonanLibrariesResolveSupport( configuration: CompilerConfiguration, @@ -48,8 +46,7 @@ class KonanLibrariesResolveSupport( override fun log(message: String) = collector.report(CompilerMessageSeverity.LOGGING, message) override fun fatal(message: String): Nothing { collector.report(CompilerMessageSeverity.ERROR, message) - (collector as? GroupingMessageCollector)?.flush() - exitProcess(1) + throw KonanCompilationException() } }