From addb6e08d81fd50570a2ebf3d6e44e7b3c1c3490 Mon Sep 17 00:00:00 2001 From: Vasily Levchenko Date: Wed, 5 Jul 2017 11:46:41 +0300 Subject: [PATCH] [link][debug] when build debug build, it's better to use -O0 opt flags --- .../org/jetbrains/kotlin/backend/konan/LinkStage.kt | 11 +++++++---- backend.native/konan.properties | 1 + 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/LinkStage.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/LinkStage.kt index b8702bdee08..2643f3dbe64 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/LinkStage.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/LinkStage.kt @@ -48,6 +48,8 @@ internal abstract class PlatformFlags(val distribution: Distribution) { = propertyTargetList("linkerKonanFlags") open val linkerDebugFlags = propertyTargetList("linkerDebugFlags") + open val llvmDebugOptFlags + = propertyTargetList("llvmDebugOptFlags") open val useCompilerDriverAsLinker: Boolean get() = false // TODO: refactor. @@ -198,6 +200,7 @@ internal class LinkStage(val context: Context) { } val optimize = config.get(KonanConfigKeys.OPTIMIZATION) ?: false + val debug = config.get(KonanConfigKeys.DEBUG) ?: false val nomain = config.get(KonanConfigKeys.NOMAIN) ?: false val emitted = context.bitcodeFileName val libraries = context.config.libraries @@ -210,10 +213,10 @@ internal class LinkStage(val context: Context) { val tool = distribution.llvmLto val command = mutableListOf(tool, "-o", combined) command.addAll(platform.llvmLtoFlags) - if (optimize) { - command.addAll(platform.llvmLtoOptFlags) - } else { - command.addAll(platform.llvmLtoNooptFlags) + when { + optimize -> command.addAll(platform.llvmLtoOptFlags) + debug -> command.addAll(platform.llvmDebugOptFlags) + else -> command.addAll(platform.llvmLtoNooptFlags) } command.addAll(files) runTool(*command.toTypedArray()) diff --git a/backend.native/konan.properties b/backend.native/konan.properties index f8ee6d3163e..8d2df05cb87 100644 --- a/backend.native/konan.properties +++ b/backend.native/konan.properties @@ -20,6 +20,7 @@ dependenciesUrl = http://download.jetbrains.com/kotlin/native # Don't check dependencies on a server. # If true, dependency downloader will throw an exception if a dependency isn't found in konan.home. airplaneMode = false +llvmDebugOptFlags = -O0 # Mac OS X. llvmVersion.osx = 3.9.0