Support new linux_arm64 toolchain
This commit is contained in:
committed by
Stanislav Erokhin
parent
73c27df1be
commit
43bfeb5c33
@@ -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(
|
||||||
|
|||||||
Reference in New Issue
Block a user