diff --git a/kotlin-native/backend.native/tests/build.gradle b/kotlin-native/backend.native/tests/build.gradle index d400b4918eb..9a91a96630a 100644 --- a/kotlin-native/backend.native/tests/build.gradle +++ b/kotlin-native/backend.native/tests/build.gradle @@ -264,7 +264,7 @@ Task linkTest(String name, Closure configureClosure) { srcFiles task.lib baseDir "$testOutputLocal/$name" extraOpts task.flags - extraOpts project.globalTestArgs + extraOpts project.globalTestArgs.findAll { !it.contains("-Xpartial-linkage") } } UtilsKt.dependsOnKonanBuildingTask(task, lib, target) @@ -3424,7 +3424,8 @@ linkTest("mpp2") { } standaloneTest("mpp_default_args") { - disabled = isK2(project) // KT-56071 + // Disabled in one stage mode because of KT-57747 + disabled = !twoStageEnabled || isK2(project) // KT-56071 source = "codegen/mpp/mpp_default_args.kt" flags = ['-tr', '-Xmulti-platform'] } @@ -4477,7 +4478,7 @@ Task interopTestBase(String name, boolean multiFile, Closure c srcFiles task.lib baseDir "$testOutputLocal/$name" extraOpts task.flags - extraOpts project.globalTestArgs + extraOpts project.globalTestArgs.findAll { !it.contains("-Xpartial-linkage") } } UtilsKt.dependsOnKonanBuildingTask(task, lib, target) } diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/KotlinNativeTest.kt b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/KotlinNativeTest.kt index 76dd9f78fcc..d7e94262931 100644 --- a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/KotlinNativeTest.kt +++ b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/KotlinNativeTest.kt @@ -447,6 +447,9 @@ open class KonanDriverTest : KonanStandaloneTest() { addAll(getSources().get()) addAll(flags) addAll(project.globalTestArgs) + + add("-Xpartial-linkage=enable") + add("-Xpartial-linkage-loglevel=error") } // run konanc compiler locally diff --git a/kotlin-native/build.gradle b/kotlin-native/build.gradle index cc90f0b5f9d..8c021545e62 100644 --- a/kotlin-native/build.gradle +++ b/kotlin-native/build.gradle @@ -118,8 +118,25 @@ void loadCommandLineProperties() { if (project.hasProperty("konanc_flags")) { throw new Error("Specify either -Ptest_flags or -Pbuild_flags.") } - ext.globalBuildArgs = project.hasProperty("build_flags") ? ext.build_flags.split() : [] - ext.globalTestArgs = project.hasProperty("test_flags") ? ext.test_flags.split() : [] + + ext.globalBuildArgs = new ArrayList() + if (project.hasProperty("build_flags")) { + for (String flag : ext.build_flags.toString().split("\\s")) { + flag = flag.trim() + if (!flag.isEmpty()) ext.globalBuildArgs.add(flag) + } + } + + ext.globalTestArgs = new ArrayList() + ext.globalTestArgs.add("-Xpartial-linkage=enable") + ext.globalTestArgs.add("-Xpartial-linkage-loglevel=error") + if (project.hasProperty("test_flags")) { + for (String flag : ext.test_flags.toString().split("\\s")) { + flag = flag.trim() + if (!flag.isEmpty()) ext.globalTestArgs.add(flag) + } + } + ext.testTarget = project.hasProperty("test_target") ? ext.test_target : null } diff --git a/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanCompileTask.kt b/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanCompileTask.kt index 8815f6e3aa1..30a3a3e8b81 100644 --- a/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanCompileTask.kt +++ b/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanCompileTask.kt @@ -147,7 +147,7 @@ abstract class KonanCompileTask: KonanBuildingTask(), KonanCompileSpec { // Don't include coverage flags into the first stage because they are not supported when compiling a klib. private fun firstStageExtraOpts() = extraOpts .excludeFlags("-Xcoverage") - .excludeArguments("-Xcoverage-file", "-Xlibrary-to-cover") + .excludeArguments("-Xcoverage-file", "-Xlibrary-to-cover", "-Xpartial-linkage", "-Xpartial-linkage-loglevel") // Don't include the -Xemit-lazy-objc-header flag into // the second stage because this stage have no sources. @@ -236,6 +236,11 @@ abstract class KonanCompileTask: KonanBuildingTask(), KonanCompileSpec { addArg("-linker-option", it) } + if (produce != CompilerOutputKind.LIBRARY) { + add("-Xpartial-linkage=enable") + add("-Xpartial-linkage-loglevel=error") + } + addAll(extraOpts) allSourceFiles.mapTo(this) { it.absolutePath }