From 272284680e5c2fccc8f594380e5b757d2e535351 Mon Sep 17 00:00:00 2001 From: Sergey Bogolepov Date: Mon, 19 Jul 2021 11:48:35 +0700 Subject: [PATCH] [K/N] Prepare Windows runtime tests for LLVM update In the upcoming LLVM update the default target for windows will be x86_64-pc-windows-msvc and it will break runtime tests. To mitigate this problem we explicitly set compilation target to x86_64-pc-windows-gnu as we do in BitcodeCompiler. --- .../kotlin/testing/native/NativeTest.kt | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/testing/native/NativeTest.kt b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/testing/native/NativeTest.kt index bf84c303568..dcb9008aca9 100644 --- a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/testing/native/NativeTest.kt +++ b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/testing/native/NativeTest.kt @@ -194,6 +194,23 @@ open class ReportWithPrefixes @Inject constructor( } } +/** + * Returns a list of Clang -cc1 arguments (including -cc1 itself) that are used for bitcode compilation in Kotlin/Native. + * + * See also: [org.jetbrains.kotlin.backend.konan.BitcodeCompiler] + */ +private fun buildClangFlags(configurables: Configurables): List = mutableListOf().apply { + require(configurables is ClangFlags) + addAll(configurables.clangFlags) + addAll(configurables.clangNooptFlags) + val targetTriple = if (configurables is AppleConfigurables) { + configurables.targetTriple.withOSVersion(configurables.osVersionMin) + } else { + configurables.targetTriple + } + addAll(listOf("-triple", targetTriple.toString())) +}.toList() + private fun createTestTask( project: Project, testName: String, @@ -253,7 +270,6 @@ private fun createTestTask( dependsOn(tasksToLink) } - val clangFlags = platformManager.platform(konanTarget).configurables as ClangFlags val compileTask = project.tasks.create( "${testName}Compile", CompileNativeTest::class.java, @@ -262,8 +278,7 @@ private fun createTestTask( ).apply { this.sanitizer = sanitizer dependsOn(llvmLinkTask) - clangArgs.addAll(clangFlags.clangFlags) - clangArgs.addAll(clangFlags.clangNooptFlags) + clangArgs.addAll(buildClangFlags(platformManager.platform(konanTarget).configurables)) } val mimallocEnabled = testedTaskNames.any { it.contains("mimalloc", ignoreCase = true) }