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 17f6ee3c7fd..cff9072a462 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
@@ -186,9 +186,9 @@ internal class LinkStage(val context: Context) {
} else {
val framework = File(context.config.outputFile)
val dylibName = framework.name.removeSuffix(".framework")
- val dylibRelativePath = when (target) {
- KonanTarget.IOS_ARM32, KonanTarget.IOS_ARM64, KonanTarget.IOS_X64 -> dylibName
- KonanTarget.MACOS_X64 -> "Versions/A/$dylibName"
+ val dylibRelativePath = when (target.family) {
+ Family.IOS -> dylibName
+ Family.OSX -> "Versions/A/$dylibName"
else -> error(target)
}
frameworkLinkerArgs = listOf("-install_name", "@rpath/${framework.name}/$dylibRelativePath")
diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/CodeGenerator.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/CodeGenerator.kt
index 3ba5605faed..5207cc1ce30 100644
--- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/CodeGenerator.kt
+++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/CodeGenerator.kt
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.backend.konan.irasdescriptors.*
import org.jetbrains.kotlin.backend.konan.llvm.objc.ObjCDataGenerator
import org.jetbrains.kotlin.ir.util.constructors
import org.jetbrains.kotlin.ir.util.defaultType
+import org.jetbrains.kotlin.konan.target.Family
import org.jetbrains.kotlin.konan.target.KonanTarget
internal class CodeGenerator(override val context: Context) : ContextUtils {
@@ -97,9 +98,8 @@ internal class CodeGenerator(override val context: Context) : ContextUtils {
return LLVMCreateLocation(LLVMGetModuleContext(context.llvmModule), locationInfo.line, locationInfo.line, locationInfo.scope)
}
- val objCDataGenerator = when (context.config.target) {
- KonanTarget.IOS_ARM32, KonanTarget.IOS_ARM64,
- KonanTarget.IOS_X64, KonanTarget.MACOS_X64 -> ObjCDataGenerator(this)
+ val objCDataGenerator = when (context.config.target.family) {
+ Family.IOS, Family.OSX -> ObjCDataGenerator(this)
else -> null
}
diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/objcexport/ObjCExportCodeGenerator.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/objcexport/ObjCExportCodeGenerator.kt
index 41612f6bbbc..8d73a4b3808 100644
--- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/objcexport/ObjCExportCodeGenerator.kt
+++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/objcexport/ObjCExportCodeGenerator.kt
@@ -579,7 +579,8 @@ private fun ObjCExportCodeGenerator.generateObjCImp(
tailrec fun genReturnValueOnSuccess(returnBridge: MethodBridge.ReturnValue): LLVMValueRef? = when (returnBridge) {
MethodBridge.ReturnValue.Void -> null
MethodBridge.ReturnValue.HashCode -> {
- zext(targetResult!!, if (codegen.context.is64Bit()) int64Type else int32Type)
+ val kotlinHashCode = targetResult!!
+ if (codegen.context.is64Bit()) zext(kotlinHashCode, int64Type) else kotlinHashCode
}
is MethodBridge.ReturnValue.Mapped -> kotlinToObjC(targetResult!!, returnBridge.bridge)
MethodBridge.ReturnValue.WithError.Success -> Int8(1).llvm // true
@@ -683,7 +684,7 @@ private fun ObjCExportCodeGenerator.generateKotlinToObjCBridge(
val high = trunc(shr(targetResult, 32, signed = false), int32Type)
xor(low, high)
} else {
- trunc(targetResult, int32Type)
+ targetResult
}
}
diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjCExport.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjCExport.kt
index b53b27e32ff..f9c55a203ec 100644
--- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjCExport.kt
+++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjCExport.kt
@@ -164,10 +164,8 @@ internal class ObjCExport(val codegen: CodeGenerator) {
""".trimIndent())
- contents.append(when (target) {
- KonanTarget.IOS_ARM32,
- KonanTarget.IOS_ARM64,
- KonanTarget.IOS_X64 -> """
+ contents.append(when (target.family) {
+ Family.IOS -> """
| MinimumOSVersion
| $minimumOsVersion
| UIDeviceFamily
@@ -177,7 +175,7 @@ internal class ObjCExport(val codegen: CodeGenerator) {
|
""".trimMargin()
- KonanTarget.MACOS_X64 -> ""
+ Family.OSX -> ""
else -> error(target)
})
diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KonanCompileConfig.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KonanCompileConfig.kt
index 9d23e720e12..c284c5368c4 100644
--- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KonanCompileConfig.kt
+++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KonanCompileConfig.kt
@@ -22,6 +22,7 @@ import org.gradle.api.file.FileCollection
import org.gradle.api.internal.project.ProjectInternal
import org.gradle.internal.reflect.Instantiator
import org.jetbrains.kotlin.gradle.plugin.tasks.*
+import org.jetbrains.kotlin.konan.target.Family
import org.jetbrains.kotlin.konan.target.KonanTarget
import org.jetbrains.kotlin.konan.target.KonanTarget.*
import java.io.File
@@ -126,7 +127,7 @@ open class KonanFramework(name: String,
get() = project.konanBinBaseDir
override fun targetIsSupported(target: KonanTarget): Boolean =
- target == MACOS_X64 || target == IOS_ARM32 || target == IOS_ARM64 || target == IOS_X64
+ target.family == Family.OSX || target.family == Family.IOS
}
open class KonanLibrary(name: String,