Support new linux_mips32 and linux_mipsel32 toolchains

This commit is contained in:
Sergey Bogolepov
2020-12-01 13:37:24 +07:00
committed by Stanislav Erokhin
parent a664dbf07f
commit 73c27df1be
6 changed files with 1533 additions and 29 deletions
@@ -76,7 +76,8 @@ class ClangArgs(private val configurables: Configurables) : Configurables by con
}
private val specificClangArgs: List<String> = when (target) {
KonanTarget.LINUX_X64 -> emptyList()
KonanTarget.LINUX_X64,
KonanTarget.LINUX_MIPS32, KonanTarget.LINUX_MIPSEL32 -> emptyList()
KonanTarget.LINUX_ARM32_HFP -> listOf(
"-mfpu=vfp", "-mfloat-abi=hard",
@@ -90,16 +91,6 @@ class ClangArgs(private val configurables: Configurables) : Configurables by con
"-I$absoluteTargetSysRoot/usr/include/c++/7/aarch64-linux-gnu"
)
KonanTarget.LINUX_MIPS32 -> listOf(
"-I$absoluteTargetSysRoot/usr/include/c++/4.9.4",
"-I$absoluteTargetSysRoot/usr/include/c++/4.9.4/mips-unknown-linux-gnu"
)
KonanTarget.LINUX_MIPSEL32 -> listOf(
"-I$absoluteTargetSysRoot/usr/include/c++/4.9.4",
"-I$absoluteTargetSysRoot/usr/include/c++/4.9.4/mipsel-unknown-linux-gnu"
)
KonanTarget.MINGW_X64, KonanTarget.MINGW_X86 -> emptyList()
KonanTarget.MACOS_X64 -> listOf(
@@ -340,7 +340,11 @@ class GccBasedLinker(targetProperties: GccConfigurables)
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"
val crtPrefix = when (val bitness = configurables.target.architecture.bitness) {
32 -> "usr/lib"
64 -> "usr/lib64"
else -> error("Unexpected target bitness: $bitness")
}
// TODO: Can we extract more to the konan.configurables?
return listOf(Command(linker).apply {
+"--sysroot=${absoluteTargetSysRoot}"