From 55b1e0faf022cfe20212b03ee1269349061a5628 Mon Sep 17 00:00:00 2001 From: Sergey Bogolepov Date: Mon, 30 Nov 2020 17:21:34 +0700 Subject: [PATCH] [konan.properties] Make gccToolchain a target property Previously, we used the same gccToolchain for all linux-based targets. It is dangerous because sysroot and toolchain might be incompatible. Since c82b843e we moved to unified and reproducible way to build toolchains, so we have a separate gccToolchain for each target. --- kotlin-native/konan/konan.properties | 10 ++++++++-- .../org/jetbrains/kotlin/konan/target/Configurables.kt | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/kotlin-native/konan/konan.properties b/kotlin-native/konan/konan.properties index 313f8f7f956..9e91f37974b 100644 --- a/kotlin-native/konan/konan.properties +++ b/kotlin-native/konan/konan.properties @@ -375,13 +375,11 @@ dependencies.linux_x64 = \ libffi-3.2.1-2-linux-x86-64 \ lldb-3-linux -gccToolchain.mingw_x64 = target-gcc-toolchain-3-linux-x86-64 targetToolchain.mingw_x64-linux_x64 = msys2-mingw-w64-x86_64-clang-llvm-lld-compiler_rt-8.0.1 dependencies.mingw_x64-linux_x64 = \ libffi-3.2.1-mingw-w64-x86-64 \ target-gcc-toolchain-3-linux-x86-64 -gccToolchain.macos_x64 = target-gcc-toolchain-3-linux-x86-64 targetToolchain.macos_x64-linux_x64 = $llvmHome.macos_x64 dependencies.macos_x64-linux_x64 = \ libffi-3.2.1-3-darwin-macos \ @@ -409,6 +407,8 @@ runtimeDefinitions.linux_x64 = USE_GCC_UNWIND=1 KONAN_LINUX=1 KONAN_X64=1 \ USE_ELF_SYMBOLS=1 ELFSIZE=64 KONAN_HAS_CXX11_EXCEPTION_FUNCTIONS=1 # Raspberry Pi +gccToolchain.linux_arm32_hfp = target-gcc-toolchain-3-linux-x86-64 + targetToolchain.linux_x64-linux_arm32_hfp = target-gcc-toolchain-3-linux-x86-64/x86_64-unknown-linux-gnu targetToolchain.mingw_x64-linux_arm32_hfp = msys2-mingw-w64-x86_64-clang-llvm-lld-compiler_rt-8.0.1 targetToolchain.macos_x64-linux_arm32_hfp = $llvmHome.macos_x64 @@ -452,6 +452,8 @@ runtimeDefinitions.linux_arm32_hfp = USE_GCC_UNWIND=1 KONAN_LINUX=1 \ KONAN_ARM32=1 USE_ELF_SYMBOLS=1 ELFSIZE=32 KONAN_NO_UNALIGNED_ACCESS=1 # Linux arm64 +gccToolchain.linux_arm64 = target-gcc-toolchain-3-linux-x86-64 + targetToolchain.linux_x64-linux_arm64 = target-gcc-toolchain-3-linux-x86-64/x86_64-unknown-linux-gnu targetToolchain.mingw_x64-linux_arm64 = msys2-mingw-w64-x86_64-clang-llvm-lld-compiler_rt-8.0.1 targetToolchain.macos_x64-linux_arm64 = $llvmHome.macos_x64 @@ -494,6 +496,8 @@ runtimeDefinitions.linux_arm64 = USE_GCC_UNWIND=1 KONAN_LINUX=1 KONAN_ARM64=1 \ USE_ELF_SYMBOLS=1 ELFSIZE=64 # MIPS +gccToolchain.linux_mips32 = target-gcc-toolchain-3-linux-x86-64 + targetToolchain.linux_x64-linux_mips32 = target-gcc-toolchain-2-linux-mips/x86_64-unknown-linux-gnu dependencies.linux_x64-linux_mips32 = \ target-gcc-toolchain-2-linux-mips \ @@ -524,6 +528,8 @@ runtimeDefinitions.linux_mips32 = USE_GCC_UNWIND=1 KONAN_LINUX=1 KONAN_MIPS32=1 USE_ELF_SYMBOLS=1 ELFSIZE=32 KONAN_NO_64BIT_ATOMIC=1 KONAN_NO_UNALIGNED_ACCESS=1 # MIPSel +gccToolchain.linux_mipsel32 = target-gcc-toolchain-3-linux-x86-64 + targetToolchain.linux_x64-linux_mipsel32 = target-gcc-toolchain-2-linux-mips/x86_64-unknown-linux-gnu dependencies.linux_x64-linux_mipsel32 = \ target-gcc-toolchain-2-linux-mips \ 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 1aea7b129bb..4caea4e26ad 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 @@ -75,7 +75,7 @@ interface AppleConfigurables : Configurables, ClangFlags { interface MingwConfigurables : TargetableConfigurables, ClangFlags interface GccConfigurables : TargetableConfigurables, ClangFlags { - val gccToolchain get() = hostString("gccToolchain") + val gccToolchain get() = targetString("gccToolchain") val absoluteGccToolchain get() = absolute(gccToolchain) val libGcc get() = targetString("libGcc")!!