diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Context.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Context.kt index fded3e902fe..b70b1b3869c 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Context.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Context.kt @@ -214,7 +214,7 @@ internal class Context(config: KonanConfig) : KonanBackendContext(config) { // right after the frontend. // But we have to wait until the code generation phase, // to dump this information into generated file. - lateinit var serializedLinkData: String + var serializedLinkData: String? = null // TODO: make lateinit? var irModule: IrModuleFragment? = null diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanPhases.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanPhases.kt index 9301cad1f8a..a269692144a 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanPhases.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanPhases.kt @@ -57,9 +57,12 @@ object KonanPhases { with (config.configuration) { with (KonanConfigKeys) { // We disable inline IR deserialization - // until we have enough test passes + // until we have enough test passes. KonanPhase.DESERIALIZER.enabled = false + // Don't serialize anything to a final executable. + KonanPhase.SERIALIZER.enabled = getBoolean(NOLINK) + val disabled = get(DISABLED_PHASES) disabled?.forEach { phases[known(it)]!!.enabled = false } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/MetadataGenerator.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/MetadataGenerator.kt index d724d154be7..869760e88b8 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/MetadataGenerator.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/MetadataGenerator.kt @@ -149,10 +149,12 @@ internal class MetadataGenerator(override val context: Context): ContextUtils { } private fun addLinkData(module: IrModuleFragment) { + val moduleAsString = context.serializedLinkData + if (moduleAsString == null) return + val abiVersion = context.config.configuration.get(KonanConfigKeys.ABI_VERSION) val abiNode = metadataString("$abiVersion") val moduleName = metadataString(module.descriptor.name.asString()) - val moduleAsString = context.serializedLinkData val dataNode = metadataString(moduleAsString) val kmetadataArg = metadataNode(listOf(abiNode, moduleName, dataNode))