diff --git a/konan/konan.properties b/konan/konan.properties index 7b25f5b0ec7..3b80525fa69 100644 --- a/konan/konan.properties +++ b/konan/konan.properties @@ -331,7 +331,6 @@ linkerKonanFlags.linux_x64 = -Bstatic -lstdc++ -Bdynamic -ldl -lm -lpthread \ linkerOptimizationFlags.linux_x64 = --gc-sections linkerNoDebugFlags.linux_x64 = -S linkerDynamicFlags.linux_x64 = -shared -pluginOptimizationFlags.linux_x64 = -plugin-opt=target-cpu x86-64 -plugin-opt=O3 dynamicLinker.linux_x64 = /lib64/ld-linux-x86-64.so.2 # targetSysRoot relative abiSpecificLibraries.linux_x64 = ../lib64 lib64 usr/lib64 diff --git a/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/ClangArgs.kt b/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/ClangArgs.kt index bdd712280c1..da59ca2712b 100644 --- a/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/ClangArgs.kt +++ b/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/ClangArgs.kt @@ -353,7 +353,7 @@ class ClangArgs(private val configurables: Configurables) : Configurables by con } private val extraHostClangArgs = - if (configurables is LinuxBasedConfigurables) { + if (configurables is LinuxConfigurables) { listOf("--gcc-toolchain=${configurables.absoluteGccToolchain}") } else { emptyList() diff --git a/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/Configurables.kt b/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/Configurables.kt index 7d19bc9e1ba..61721891707 100644 --- a/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/Configurables.kt +++ b/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/Configurables.kt @@ -43,8 +43,6 @@ interface Configurables : TargetableExternalStorage { val linkerKonanFlags get() = targetList("linkerKonanFlags") val linkerNoDebugFlags get() = targetList("linkerNoDebugFlags") val linkerDynamicFlags get() = targetList("linkerDynamicFlags") - val llvmDebugOptFlags get() = targetList("llvmDebugOptFlags") - val llvmDebugLlcFlags get() = targetList("llvmDebugLlcFlags") val targetSysRoot get() = targetString("targetSysRoot") // Notice: these ones are host-target. @@ -69,19 +67,15 @@ interface AppleConfigurables : Configurables, ClangFlags { interface MingwConfigurables : TargetableConfigurables, ClangFlags -interface LinuxBasedConfigurables : TargetableConfigurables, ClangFlags { +interface LinuxConfigurables : TargetableConfigurables, ClangFlags { val gccToolchain get() = hostString("gccToolchain") val absoluteGccToolchain get() = absolute(gccToolchain) val libGcc get() = targetString("libGcc")!! val dynamicLinker get() = targetString("dynamicLinker")!! - val pluginOptimizationFlags get() = targetList("pluginOptimizationFlags") val abiSpecificLibraries get() = targetList("abiSpecificLibraries") } -interface LinuxConfigurables : LinuxBasedConfigurables -interface LinuxMIPSConfigurables : LinuxBasedConfigurables -interface RaspberryPiConfigurables : LinuxBasedConfigurables interface AndroidConfigurables : TargetableConfigurables, ClangFlags interface WasmConfigurables : TargetableConfigurables, ClangFlags, LldFlags diff --git a/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/ConfigurablesImpl.kt b/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/ConfigurablesImpl.kt index e7539ea2be3..339f22130e3 100644 --- a/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/ConfigurablesImpl.kt +++ b/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/ConfigurablesImpl.kt @@ -21,9 +21,6 @@ import org.jetbrains.kotlin.konan.properties.* class LinuxConfigurablesImpl(target: KonanTarget, properties: Properties, baseDir: String?) : LinuxConfigurables, KonanPropertiesLoader(target, properties, baseDir) -class LinuxMIPSConfigurablesImpl(target: KonanTarget, properties: Properties, baseDir: String?) - : LinuxMIPSConfigurables, KonanPropertiesLoader(target, properties, baseDir) - class AndroidConfigurablesImpl(target: KonanTarget, properties: Properties, baseDir: String?) : AndroidConfigurables, KonanPropertiesLoader(target, properties, baseDir) @@ -38,11 +35,9 @@ class ZephyrConfigurablesImpl(target: KonanTarget, properties: Properties, baseD fun loadConfigurables(target: KonanTarget, properties: Properties, baseDir: String?): Configurables = when (target) { - KonanTarget.LINUX_X64, KonanTarget.LINUX_ARM32_HFP, KonanTarget.LINUX_ARM64 -> - LinuxConfigurablesImpl(target, properties, baseDir) - + KonanTarget.LINUX_X64, KonanTarget.LINUX_ARM32_HFP, KonanTarget.LINUX_ARM64, KonanTarget.LINUX_MIPS32, KonanTarget.LINUX_MIPSEL32 -> - LinuxMIPSConfigurablesImpl(target, properties, baseDir) + LinuxConfigurablesImpl(target, properties, baseDir) KonanTarget.MACOS_X64, KonanTarget.IOS_ARM32, KonanTarget.IOS_ARM64, KonanTarget.IOS_X64, diff --git a/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/Linker.kt b/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/Linker.kt index 01b58919caa..ce199bc4fc9 100644 --- a/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/Linker.kt +++ b/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/Linker.kt @@ -67,12 +67,6 @@ abstract class LinkerFlags(val configurables: Configurables) protected val llvmBin = "${configurables.absoluteLlvmHome}/bin" protected val llvmLib = "${configurables.absoluteLlvmHome}/lib" - private val libLTODir = when (HostManager.host) { - KonanTarget.MACOS_X64, KonanTarget.LINUX_X64 -> llvmLib - KonanTarget.MINGW_X64 -> llvmBin - else -> error("Don't know libLTO location for this platform.") - } - open val useCompilerDriverAsLinker: Boolean get() = false // TODO: refactor. // TODO: Number of arguments is quite big. Better to pass args via object. @@ -295,8 +289,8 @@ open class MacOSBasedLinker(targetProperties: AppleConfigurables) listOf(dsymutil, "-dump-debug-map", executable) } -open class LinuxBasedLinker(targetProperties: LinuxBasedConfigurables) - : LinkerFlags(targetProperties), LinuxBasedConfigurables by targetProperties { +open class LinuxBasedLinker(targetProperties: LinuxConfigurables) + : LinkerFlags(targetProperties), LinuxConfigurables by targetProperties { private val ar = if (HostManager.hostIsMac) "$absoluteTargetToolchain/bin/llvm-ar" else "$absoluteTargetToolchain/bin/ar" @@ -323,7 +317,7 @@ open class LinuxBasedLinker(targetProperties: LinuxBasedConfigurables) if (kind == LinkerOutputKind.STATIC_LIBRARY) return staticGnuArCommands(ar, executable, objectFiles, libraries) - val isMips = (configurables is LinuxMIPSConfigurables) + val isMips = target == KonanTarget.LINUX_MIPS32 || target == KonanTarget.LINUX_MIPSEL32 val dynamic = kind == LinkerOutputKind.DYNAMIC_LIBRARY val crtPrefix = if (configurables.target == KonanTarget.LINUX_ARM64) "usr/lib" else "usr/lib64" // TODO: Can we extract more to the konan.configurables? @@ -489,11 +483,10 @@ open class ZephyrLinker(targetProperties: ZephyrConfigurables) fun linker(configurables: Configurables): LinkerFlags = when (configurables.target) { - KonanTarget.LINUX_X64, KonanTarget.LINUX_ARM32_HFP, KonanTarget.LINUX_ARM64 -> - LinuxBasedLinker(configurables as LinuxConfigurables) - + KonanTarget.LINUX_X64, + KonanTarget.LINUX_ARM32_HFP, KonanTarget.LINUX_ARM64, KonanTarget.LINUX_MIPS32, KonanTarget.LINUX_MIPSEL32 -> - LinuxBasedLinker(configurables as LinuxMIPSConfigurables) + LinuxBasedLinker(configurables as LinuxConfigurables) KonanTarget.MACOS_X64, KonanTarget.TVOS_X64, KonanTarget.TVOS_ARM64,