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
# 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
@@ -77,7 +77,8 @@ class ClangArgs(private val configurables: Configurables) : Configurables by con
private val specificClangArgs: List<String> = 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(