diff --git a/kotlin-native/konan/konan.properties b/kotlin-native/konan/konan.properties index 2404950378e..df30acde6fa 100644 --- a/kotlin-native/konan/konan.properties +++ b/kotlin-native/konan/konan.properties @@ -91,6 +91,7 @@ clangDebugFlags.macos_x64 = -O0 linkerKonanFlags.macos_x64 = -lSystem -lc++ -lobjc -framework Foundation -sdk_version 10.15.6 linkerOptimizationFlags.macos_x64 = -dead_strip linkerNoDebugFlags.macos_x64 = -S +stripFlags.macos_x64 = -S linkerDynamicFlags.macos_x64 = -dylib osVersionMinFlagLd.macos_x64 = -macosx_version_min @@ -127,6 +128,7 @@ clangDebugFlags.macos_arm64 = -O0 -mllvm -fast-isel=false -mllvm -global-isel=fa linkerKonanFlags.macos_arm64 = -lSystem -lc++ -lobjc -framework Foundation -sdk_version 11.0.1 linkerOptimizationFlags.macos_arm64 = -dead_strip linkerNoDebugFlags.macos_arm64 = -S +stripFlags.macos_arm64 = -S linkerDynamicFlags.macos_arm64 = -dylib osVersionMinFlagLd.macos_arm64 = -macosx_version_min @@ -157,6 +159,7 @@ clangNooptFlags.ios_arm32 = -O1 clangOptFlags.ios_arm32 = -O3 clangDebugFlags.ios_arm32 = -O0 linkerNoDebugFlags.ios_arm32 = -S +stripFlags.ios_arm32 = -S linkerDynamicFlags.ios_arm32 = -dylib linkerKonanFlags.ios_arm32 = -lSystem -lc++ -lobjc -framework Foundation -sdk_version 14.0 linkerOptimizationFlags.ios_arm32 = -dead_strip @@ -192,6 +195,7 @@ clangOptFlags.ios_arm64 = -O3 clangDebugFlags.ios_arm64 = -O0 -mllvm -fast-isel=false -mllvm -global-isel=false linkerNoDebugFlags.ios_arm64 = -S +stripFlags.ios_arm64 = -S linkerDynamicFlags.ios_arm64 = -dylib linkerKonanFlags.ios_arm64 = -lSystem -lc++ -lobjc -framework Foundation -sdk_version 14.0 linkerOptimizationFlags.ios_arm64 = -dead_strip @@ -221,6 +225,7 @@ clangDebugFlags.ios_x64 = -O0 linkerKonanFlags.ios_x64 = -lSystem -lc++ -lobjc -framework Foundation -sdk_version 14.0 linkerOptimizationFlags.ios_x64 = -dead_strip linkerNoDebugFlags.ios_x64 = -S +stripFlags.ios_x64 = -S linkerDynamicFlags.ios_x64 = -dylib osVersionMinFlagLd.ios_x64 = -ios_simulator_version_min osVersionMinFlagClang.ios_x64 = -mios-simulator-version-min @@ -247,6 +252,7 @@ clangDebugFlags.tvos_x64 = -O0 linkerKonanFlags.tvos_x64 = -lSystem -lc++ -lobjc -framework Foundation -sdk_version 14.0 linkerOptimizationFlags.tvos_x64 = -dead_strip linkerNoDebugFlags.tvos_x64 = -S +stripFlags.tvos_x64 = -S linkerDynamicFlags.tvos_x64 = -dylib osVersionMinFlagLd.tvos_x64 = -tvos_simulator_version_min osVersionMinFlagClang.tvos_x64 = -mtvos-simulator-version-min @@ -271,6 +277,7 @@ clangOptFlags.tvos_arm64 = -O3 clangDebugFlags.tvos_arm64 = -O0 -mllvm -fast-isel=false -mllvm -global-isel=false linkerNoDebugFlags.tvos_arm64 = -S +stripFlags.tvos_arm64 = -S linkerDynamicFlags.tvos_arm64 = -dylib linkerKonanFlags.tvos_arm64 = -lSystem -lc++ -lobjc -framework Foundation -sdk_version 14.0 linkerOptimizationFlags.tvos_arm64 = -dead_strip @@ -299,6 +306,7 @@ clangDebugFlags.watchos_arm32 = -O0 linkerKonanFlags.watchos_arm32 = -lSystem -lc++ -lobjc -framework Foundation -sdk_version 7.0 linkerOptimizationFlags.watchos_arm32 = -dead_strip linkerNoDebugFlags.watchos_arm32 = -S +stripFlags.watchos_arm32 = -S linkerDynamicFlags.watchos_arm32 = -dylib osVersionMinFlagLd.watchos_arm32 = -watchos_version_min osVersionMinFlagClang.watchos_arm32 = -mwatchos-version-min @@ -328,6 +336,7 @@ clangDebugFlags.watchos_arm64 = -O0 linkerKonanFlags.watchos_arm64 = -lSystem -lc++ -lobjc -framework Foundation -sdk_version 7.0 linkerOptimizationFlags.watchos_arm64 = -dead_strip linkerNoDebugFlags.watchos_arm64 = -S +stripFlags.watchos_arm64 = -S linkerDynamicFlags.watchos_arm64 = -dylib osVersionMinFlagLd.watchos_arm64 = -watchos_version_min osVersionMinFlagClang.watchos_arm64 = -mwatchos-version-min @@ -360,6 +369,7 @@ clangDebugFlags.watchos_x86 = -O0 linkerKonanFlags.watchos_x86 = -lSystem -lc++ -lobjc -framework Foundation -sdk_version 7.0 linkerOptimizationFlags.watchos_x86 = -dead_strip linkerNoDebugFlags.watchos_x86 = -S +stripFlags.watchos_x86 = -S linkerDynamicFlags.watchos_x86 = -dylib osVersionMinFlagLd.watchos_x86 = -watchos_simulator_version_min osVersionMinFlagClang.watchos_x86 = -mwatchos-simulator-version-min @@ -386,6 +396,7 @@ clangDebugFlags.watchos_x64 = -O0 linkerKonanFlags.watchos_x64 = -lSystem -lc++ -lobjc -framework Foundation -sdk_version 7.0 linkerOptimizationFlags.watchos_x64 = -dead_strip linkerNoDebugFlags.watchos_x64 = -S +stripFlags.watchos_x64 = -S linkerDynamicFlags.watchos_x64 = -dylib osVersionMinFlagLd.watchos_x64 = -watchos_simulator_version_min osVersionMinFlagClang.watchos_x64 = -mwatchos-simulator-version-min diff --git a/kotlin-native/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/Configurables.kt b/kotlin-native/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/Configurables.kt index e09b05d8c2f..e4e30d7e151 100644 --- a/kotlin-native/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/Configurables.kt +++ b/kotlin-native/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/Configurables.kt @@ -98,6 +98,7 @@ interface AppleConfigurables : Configurables, ClangFlags { val arch get() = targetString("arch")!! val osVersionMin get() = targetString("osVersionMin")!! val osVersionMinFlagLd get() = targetString("osVersionMinFlagLd")!! + val stripFlags get() = targetList("stripFlags") val additionalToolsDir get() = hostString("additionalToolsDir") val absoluteAdditionalToolsDir get() = absolute(additionalToolsDir) } diff --git a/kotlin-native/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/Linker.kt b/kotlin-native/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/Linker.kt index 81c0fc403c8..c72f97787f5 100644 --- a/kotlin-native/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/Linker.kt +++ b/kotlin-native/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/Linker.kt @@ -265,7 +265,7 @@ class MacOSBasedLinker(targetProperties: AppleConfigurables) if (debug) { result += dsymUtilCommand(executable, outputDsymBundle) if (optimize) { - result += Command(strip, "-S", executable) + result += Command(strip, *stripFlags.toTypedArray(), executable) } }