Support new linux_arm64 toolchain

This commit is contained in:
Sergey Bogolepov
2020-12-04 15:00:47 +07:00
committed by Stanislav Erokhin
parent 73c27df1be
commit 43bfeb5c33
2 changed files with 12 additions and 22 deletions
+10 -16
View File
@@ -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 KONAN_ARM32=1 USE_ELF_SYMBOLS=1 ELFSIZE=32 KONAN_NO_UNALIGNED_ACCESS=1
# Linux arm64 # 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.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 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 emulatorExecutable.linux_x64-linux_arm64 = qemu-aarch64-static-5.1.0-linux-2/qemu-aarch64
dependencies.linux_x64-linux_arm64 = \ dependencies.linux_x64-linux_arm64 = \
target-gcc-toolchain-3-linux-x86-64 \ aarch64-unknown-linux-gnu-gcc-8.3.0-glibc-2.25-kernel-4.9 \
target-sysroot-1-linux-glibc-arm64 \
libffi-3.2.1-2-linux-x86-64 libffi-3.2.1-2-linux-x86-64
dependencies.mingw_x64-linux_arm64 = \ dependencies.mingw_x64-linux_arm64 = \
libffi-3.2.1-mingw-w64-x86-64 \ aarch64-unknown-linux-gnu-gcc-8.3.0-glibc-2.25-kernel-4.9 \
target-gcc-toolchain-3-linux-x86-64 \ libffi-3.2.1-mingw-w64-x86-64
target-sysroot-1-linux-glibc-arm64
dependencies.macos_x64-linux_arm64 = \ dependencies.macos_x64-linux_arm64 = \
libffi-3.2.1-3-darwin-macos \ aarch64-unknown-linux-gnu-gcc-8.3.0-glibc-2.25-kernel-4.9 \
target-gcc-toolchain-3-linux-x86-64 \ libffi-3.2.1-3-darwin-macos
target-sysroot-1-linux-glibc-arm64
quadruple.linux_arm64 = aarch64-unknown-linux-gnu quadruple.linux_arm64 = aarch64-unknown-linux-gnu
linkerNoDebugFlags.linux_arm64 = -S linkerNoDebugFlags.linux_arm64 = -S
linkerDynamicFlags.linux_arm64 = -shared linkerDynamicFlags.linux_arm64 = -shared
linkerOptimizationFlags.linux_arm64 = --gc-sections linkerOptimizationFlags.linux_arm64 = --gc-sections
# From https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/. targetSysRoot.linux_arm64 = $gccToolchain.linux_arm64/aarch64-unknown-linux-gnu/sysroot
targetSysRoot.linux_arm64 = target-sysroot-1-linux-glibc-arm64
# We could reuse host toolchain here. # We could reuse host toolchain here.
linkerKonanFlags.linux_arm64 = -Bstatic -lstdc++ -Bdynamic -ldl -lm -lpthread \ linkerKonanFlags.linux_arm64 = -Bstatic -lstdc++ -Bdynamic -ldl -lm -lpthread \
--defsym __cxa_demangle=Konan_cxa_demangle --no-threads --defsym __cxa_demangle=Konan_cxa_demangle --no-threads
# targetSysroot-relative. # targetSysroot-relative.
libGcc.linux_arm64 = usr/lib libGcc.linux_arm64 = ../../lib/gcc/aarch64-unknown-linux-gnu/8.3.0
targetCpu.linux_arm64 = generic targetCpu.linux_arm64 = generic
clangFlags.linux_arm64 = -cc1 -target-cpu cortex-a57 -emit-obj -disable-llvm-optzns -x ir clangFlags.linux_arm64 = -cc1 -target-cpu cortex-a57 -emit-obj -disable-llvm-optzns -x ir
clangNooptFlags.linux_arm64 = -O1 clangNooptFlags.linux_arm64 = -O1
@@ -508,9 +504,7 @@ clangDebugFlags.linux_arm64 = -O0
clangDynamicFlags.linux_arm64 = -mrelocation-model pic clangDynamicFlags.linux_arm64 = -mrelocation-model pic
dynamicLinker.linux_arm64 = /lib/ld-linux-aarch64.so.1 dynamicLinker.linux_arm64 = /lib/ld-linux-aarch64.so.1
# targetSysRoot relative # targetSysRoot relative
abiSpecificLibraries.linux_arm64 = \ abiSpecificLibraries.linux_arm64 = lib usr/lib
lib \
usr/lib
runtimeDefinitions.linux_arm64 = USE_GCC_UNWIND=1 KONAN_LINUX=1 KONAN_ARM64=1 \ runtimeDefinitions.linux_arm64 = USE_GCC_UNWIND=1 KONAN_LINUX=1 KONAN_ARM64=1 \
USE_ELF_SYMBOLS=1 ELFSIZE=64 USE_ELF_SYMBOLS=1 ELFSIZE=64
@@ -77,7 +77,8 @@ class ClangArgs(private val configurables: Configurables) : Configurables by con
private val specificClangArgs: List<String> = when (target) { private val specificClangArgs: List<String> = when (target) {
KonanTarget.LINUX_X64, 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( KonanTarget.LINUX_ARM32_HFP -> listOf(
"-mfpu=vfp", "-mfloat-abi=hard", "-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" "-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.MINGW_X64, KonanTarget.MINGW_X86 -> emptyList()
KonanTarget.MACOS_X64 -> listOf( KonanTarget.MACOS_X64 -> listOf(