From 43bfeb5c33c7dd8795091589bc911d17a2e90719 Mon Sep 17 00:00:00 2001 From: Sergey Bogolepov Date: Fri, 4 Dec 2020 15:00:47 +0700 Subject: [PATCH] Support new linux_arm64 toolchain --- kotlin-native/konan/konan.properties | 26 +++++++------------ .../kotlin/konan/target/ClangArgs.kt | 8 ++---- 2 files changed, 12 insertions(+), 22 deletions(-) diff --git a/kotlin-native/konan/konan.properties b/kotlin-native/konan/konan.properties index 4ce964438e9..a68ccb1bcf4 100644 --- a/kotlin-native/konan/konan.properties +++ b/kotlin-native/konan/konan.properties @@ -467,9 +467,9 @@ 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 +gccToolchain.linux_arm64 = aarch64-unknown-linux-gnu-gcc-8.3.0-glibc-2.25-kernel-4.9 -targetToolchain.linux_x64-linux_arm64 = target-gcc-toolchain-3-linux-x86-64/x86_64-unknown-linux-gnu +targetToolchain.linux_x64-linux_arm64 = $gccToolchain.linux_arm64/aarch64-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 @@ -477,29 +477,25 @@ emulatorDependency.linux_x64-linux_arm64 = qemu-aarch64-static-5.1.0-linux-2 emulatorExecutable.linux_x64-linux_arm64 = qemu-aarch64-static-5.1.0-linux-2/qemu-aarch64 dependencies.linux_x64-linux_arm64 = \ - target-gcc-toolchain-3-linux-x86-64 \ - target-sysroot-1-linux-glibc-arm64 \ + aarch64-unknown-linux-gnu-gcc-8.3.0-glibc-2.25-kernel-4.9 \ libffi-3.2.1-2-linux-x86-64 dependencies.mingw_x64-linux_arm64 = \ - libffi-3.2.1-mingw-w64-x86-64 \ - target-gcc-toolchain-3-linux-x86-64 \ - target-sysroot-1-linux-glibc-arm64 + aarch64-unknown-linux-gnu-gcc-8.3.0-glibc-2.25-kernel-4.9 \ + libffi-3.2.1-mingw-w64-x86-64 dependencies.macos_x64-linux_arm64 = \ - libffi-3.2.1-3-darwin-macos \ - target-gcc-toolchain-3-linux-x86-64 \ - target-sysroot-1-linux-glibc-arm64 + aarch64-unknown-linux-gnu-gcc-8.3.0-glibc-2.25-kernel-4.9 \ + libffi-3.2.1-3-darwin-macos quadruple.linux_arm64 = aarch64-unknown-linux-gnu linkerNoDebugFlags.linux_arm64 = -S linkerDynamicFlags.linux_arm64 = -shared linkerOptimizationFlags.linux_arm64 = --gc-sections -# From https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/. -targetSysRoot.linux_arm64 = target-sysroot-1-linux-glibc-arm64 +targetSysRoot.linux_arm64 = $gccToolchain.linux_arm64/aarch64-unknown-linux-gnu/sysroot # We could reuse host toolchain here. linkerKonanFlags.linux_arm64 = -Bstatic -lstdc++ -Bdynamic -ldl -lm -lpthread \ --defsym __cxa_demangle=Konan_cxa_demangle --no-threads # targetSysroot-relative. -libGcc.linux_arm64 = usr/lib +libGcc.linux_arm64 = ../../lib/gcc/aarch64-unknown-linux-gnu/8.3.0 targetCpu.linux_arm64 = generic clangFlags.linux_arm64 = -cc1 -target-cpu cortex-a57 -emit-obj -disable-llvm-optzns -x ir clangNooptFlags.linux_arm64 = -O1 @@ -508,9 +504,7 @@ clangDebugFlags.linux_arm64 = -O0 clangDynamicFlags.linux_arm64 = -mrelocation-model pic dynamicLinker.linux_arm64 = /lib/ld-linux-aarch64.so.1 # targetSysRoot relative -abiSpecificLibraries.linux_arm64 = \ - lib \ - usr/lib +abiSpecificLibraries.linux_arm64 = lib usr/lib runtimeDefinitions.linux_arm64 = USE_GCC_UNWIND=1 KONAN_LINUX=1 KONAN_ARM64=1 \ USE_ELF_SYMBOLS=1 ELFSIZE=64 diff --git a/kotlin-native/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/ClangArgs.kt b/kotlin-native/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/ClangArgs.kt index 15ede43cc1c..cce351ebf20 100644 --- a/kotlin-native/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/ClangArgs.kt +++ b/kotlin-native/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/ClangArgs.kt @@ -77,7 +77,8 @@ class ClangArgs(private val configurables: Configurables) : Configurables by con private val specificClangArgs: List = when (target) { KonanTarget.LINUX_X64, - KonanTarget.LINUX_MIPS32, KonanTarget.LINUX_MIPSEL32 -> emptyList() + KonanTarget.LINUX_MIPS32, KonanTarget.LINUX_MIPSEL32, + KonanTarget.LINUX_ARM64 -> emptyList() KonanTarget.LINUX_ARM32_HFP -> listOf( "-mfpu=vfp", "-mfloat-abi=hard", @@ -86,11 +87,6 @@ class ClangArgs(private val configurables: Configurables) : Configurables by con "-I$absoluteTargetSysRoot/usr/include/c++/4.8.3/arm-linux-gnueabihf" ) - KonanTarget.LINUX_ARM64 -> listOf( - "-I$absoluteTargetSysRoot/usr/include/c++/7", - "-I$absoluteTargetSysRoot/usr/include/c++/7/aarch64-linux-gnu" - ) - KonanTarget.MINGW_X64, KonanTarget.MINGW_X86 -> emptyList() KonanTarget.MACOS_X64 -> listOf(