Support new linux_arm32_hfp_toolchain

This commit is contained in:
Sergey Bogolepov
2020-12-04 18:07:59 +07:00
committed by Stanislav Erokhin
parent 43bfeb5c33
commit ddaf477849
3 changed files with 28 additions and 81 deletions
+11 -17
View File
@@ -417,9 +417,9 @@ 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
gccToolchain.linux_arm32_hfp = arm-unknown-linux-gnueabihf-gcc-8.3.0-glibc-2.19-kernel-4.9
targetToolchain.linux_x64-linux_arm32_hfp = target-gcc-toolchain-3-linux-x86-64/x86_64-unknown-linux-gnu
targetToolchain.linux_x64-linux_arm32_hfp = $gccToolchain.linux_arm32_hfp/arm-unknown-linux-gnueabihf
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
@@ -428,28 +428,25 @@ emulatorDependency.linux_x64-linux_arm32_hfp = qemu-arm-static-5.1.0-linux-2
emulatorExecutable.linux_x64-linux_arm32_hfp = qemu-arm-static-5.1.0-linux-2/qemu-arm
dependencies.linux_x64-linux_arm32_hfp = \
target-gcc-toolchain-3-linux-x86-64 \
target-sysroot-2-raspberrypi \
arm-unknown-linux-gnueabihf-gcc-8.3.0-glibc-2.19-kernel-4.9 \
libffi-3.2.1-2-linux-x86-64
dependencies.mingw_x64-linux_arm32_hfp = \
libffi-3.2.1-mingw-w64-x86-64 \
target-gcc-toolchain-3-linux-x86-64 \
target-sysroot-2-raspberrypi
arm-unknown-linux-gnueabihf-gcc-8.3.0-glibc-2.19-kernel-4.9 \
libffi-3.2.1-mingw-w64-x86-64
dependencies.macos_x64-linux_arm32_hfp = \
libffi-3.2.1-3-darwin-macos \
target-gcc-toolchain-3-linux-x86-64 \
target-sysroot-2-raspberrypi
arm-unknown-linux-gnueabihf-gcc-8.3.0-glibc-2.19-kernel-4.9 \
libffi-3.2.1-3-darwin-macos
quadruple.linux_arm32_hfp = armv6-unknown-linux-gnueabihf
quadruple.linux_arm32_hfp = arm-unknown-linux-gnueabihf
linkerNoDebugFlags.linux_arm32_hfp = -S
linkerDynamicFlags.linux_arm32_hfp = -shared
linkerOptimizationFlags.linux_arm32_hfp = --gc-sections
targetSysRoot.linux_arm32_hfp = target-sysroot-2-raspberrypi
targetSysRoot.linux_arm32_hfp = $gccToolchain.linux_arm32_hfp/arm-unknown-linux-gnueabihf/sysroot
# We could reuse host toolchain here.
linkerKonanFlags.linux_arm32_hfp = -Bstatic -lstdc++ -Bdynamic -ldl -lm -lpthread \
--defsym __cxa_demangle=Konan_cxa_demangle --no-threads
# targetSysroot-relative.
libGcc.linux_arm32_hfp = lib/gcc/arm-linux-gnueabihf/4.8.3
libGcc.linux_arm32_hfp = ../../lib/gcc/arm-unknown-linux-gnueabihf/8.3.0
targetCpu.linux_arm32_hfp = arm1136jf-s
targetCpuFeatures.linux_arm32_hfp = +dsp,+strict-align,+vfp2,-crypto,-d16,-fp-armv8,-fp-only-sp,-fp16,-neon,-thumb-mode,-vfp3,-vfp4
clangFlags.linux_arm32_hfp = -cc1 -target-cpu $targetCpu.linux_arm32_hfp -mfloat-abi hard -emit-obj -disable-llvm-optzns -x ir
@@ -459,10 +456,7 @@ clangDebugFlags.linux_arm32_hfp = -O0
clangDynamicFlags.linux_arm32_hfp = -mrelocation-model pic
dynamicLinker.linux_arm32_hfp = /lib/ld-linux-armhf.so.3
# targetSysRoot relative
abiSpecificLibraries.linux_arm32_hfp = \
../lib/arm-linux-gnueabihf \
lib/arm-linux-gnueabihf \
usr/lib/arm-linux-gnueabihf
abiSpecificLibraries.linux_arm32_hfp = lib usr/lib
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
@@ -78,17 +78,13 @@ 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,
KonanTarget.LINUX_ARM64 -> emptyList()
KonanTarget.LINUX_ARM64,
KonanTarget.MINGW_X64, KonanTarget.MINGW_X86 -> emptyList()
KonanTarget.LINUX_ARM32_HFP -> listOf(
"-mfpu=vfp", "-mfloat-abi=hard",
// TODO: those two are hacks.
"-I$absoluteTargetSysRoot/usr/include/c++/4.8.3",
"-I$absoluteTargetSysRoot/usr/include/c++/4.8.3/arm-linux-gnueabihf"
"-mfpu=vfp", "-mfloat-abi=hard"
)
KonanTarget.MINGW_X64, KonanTarget.MINGW_X86 -> emptyList()
KonanTarget.MACOS_X64 -> listOf(
"-mmacosx-version-min=$osVersionMin"
)
@@ -133,8 +133,7 @@ CT_ARCH_ARM=y
# CT_ARCH_XTENSA is not set
CT_ARCH="arm"
CT_ARCH_CHOICE_KSYM="ARM"
CT_ARCH_CPU=""
CT_ARCH_TUNE=""
CT_ARCH_CPU="arm1136jf-s"
CT_ARCH_ARM_SHOW=y
#
@@ -183,8 +182,7 @@ CT_ARCH_SUPPORTS_WITH_FLOAT=y
CT_ARCH_SUPPORTS_WITH_FPU=y
CT_ARCH_SUPPORTS_SOFTFP=y
CT_ARCH_EXCLUSIVE_WITH_CPU=y
CT_ARCH_ARCH=""
CT_ARCH_FPU=""
CT_ARCH_FPU="vfp"
# CT_ARCH_FLOAT_AUTO is not set
CT_ARCH_FLOAT_HW=y
# CT_ARCH_FLOAT_SOFTFP is not set
@@ -214,7 +212,7 @@ CT_TOOLCHAIN_BUGURL=""
#
# Tuple completion and aliasing
#
CT_TARGET_VENDOR="unknown"
CT_TARGET_VENDOR=""
CT_TARGET_ALIAS_SED_EXPR=""
CT_TARGET_ALIAS=""
@@ -442,14 +440,10 @@ CT_GLIBC_OLDEST_ABI=""
CT_GLIBC_FORCE_UNWIND=y
# CT_GLIBC_LOCALES is not set
# CT_GLIBC_KERNEL_VERSION_NONE is not set
CT_GLIBC_KERNEL_VERSION_AS_HEADERS=y
# CT_GLIBC_KERNEL_VERSION_CHOSEN is not set
CT_GLIBC_MIN_KERNEL="4.9.156"
# CT_GLIBC_SSP_DEFAULT is not set
# CT_GLIBC_SSP_NO is not set
# CT_GLIBC_SSP_YES is not set
# CT_GLIBC_SSP_ALL is not set
# CT_GLIBC_SSP_STRONG is not set
# CT_GLIBC_KERNEL_VERSION_AS_HEADERS is not set
CT_GLIBC_KERNEL_VERSION_CHOSEN=y
CT_GLIBC_MIN_KERNEL_VERSION="3.2.27"
CT_GLIBC_MIN_KERNEL="3.2.27"
CT_ALL_LIBC_CHOICES="AVR_LIBC BIONIC GLIBC MINGW_W64 MOXIEBOX MUSL NEWLIB NONE UCLIBC"
CT_LIBC_SUPPORT_THREADS_ANY=y
CT_LIBC_SUPPORT_THREADS_NATIVE=y
@@ -540,15 +534,15 @@ CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y
# Misc. obscure options.
#
CT_CC_CXA_ATEXIT=y
# CT_CC_GCC_DISABLE_PCH is not set
# CT_CC_GCC_SJLJ_EXCEPTIONS is not set
CT_CC_GCC_DISABLE_PCH=y
CT_CC_GCC_SJLJ_EXCEPTIONS=m
CT_CC_GCC_LDBL_128=m
# CT_CC_GCC_BUILD_ID is not set
CT_CC_GCC_LNK_HASH_STYLE_DEFAULT=y
CT_CC_GCC_BUILD_ID=y
# CT_CC_GCC_LNK_HASH_STYLE_DEFAULT is not set
# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set
# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set
# CT_CC_GCC_LNK_HASH_STYLE_BOTH is not set
CT_CC_GCC_LNK_HASH_STYLE=""
CT_CC_GCC_LNK_HASH_STYLE_BOTH=y
CT_CC_GCC_LNK_HASH_STYLE="both"
CT_CC_GCC_DEC_FLOAT_AUTO=y
# CT_CC_GCC_DEC_FLOAT_BID is not set
# CT_CC_GCC_DEC_FLOAT_DPD is not set
@@ -565,33 +559,9 @@ CT_CC_LANG_CXX=y
# Debug facilities
#
# CT_DEBUG_DUMA is not set
# CT_DUMA_SRC_RELEASE is not set
# CT_DUMA_V_2_5_15 is not set
# CT_DEBUG_GDB is not set
# CT_GDB_USE_GNU is not set
# CT_GDB_SRC_RELEASE is not set
# CT_GDB_V_8_2 is not set
# CT_GDB_V_8_1 is not set
# CT_GDB_V_8_0 is not set
# CT_GDB_V_7_12 is not set
# CT_GDB_V_7_11 is not set
# CT_DEBUG_LTRACE is not set
# CT_LTRACE_SRC_RELEASE is not set
# CT_LTRACE_V_0_7_3 is not set
# CT_DEBUG_STRACE is not set
# CT_STRACE_SRC_RELEASE is not set
# CT_STRACE_V_4_26 is not set
# CT_STRACE_V_4_25 is not set
# CT_STRACE_V_4_24 is not set
# CT_STRACE_V_4_23 is not set
# CT_STRACE_V_4_22 is not set
# CT_STRACE_V_4_21 is not set
# CT_STRACE_V_4_20 is not set
# CT_STRACE_V_4_19 is not set
# CT_STRACE_V_4_18 is not set
# CT_STRACE_V_4_17 is not set
# CT_STRACE_V_4_16 is not set
# CT_STRACE_V_4_15 is not set
CT_ALL_DEBUG_CHOICES="DUMA GDB LTRACE STRACE"
#
@@ -678,20 +648,7 @@ CT_ISL_0_13_or_later=y
CT_ISL_later_than_0_12=y
CT_ISL_0_12_or_later=y
CT_ISL_REQUIRE_0_12_or_later=y
CT_COMP_LIBS_LIBELF=y
CT_COMP_LIBS_LIBELF_PKG_KSYM="LIBELF"
CT_LIBELF_DIR_NAME="libelf"
CT_LIBELF_PKG_NAME="libelf"
CT_LIBELF_SRC_RELEASE=y
CT_LIBELF_PATCH_ORDER="global"
CT_LIBELF_V_0_8=y
# CT_LIBELF_NO_VERSIONS is not set
CT_LIBELF_VERSION="0.8.13"
CT_LIBELF_MIRRORS="http://www.mr511.de/software https://fossies.org/linux/misc/old"
CT_LIBELF_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_LIBELF_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
CT_LIBELF_ARCHIVE_FORMATS=".tar.gz"
CT_LIBELF_SIGNATURE_FORMAT=""
# CT_COMP_LIBS_LIBELF is not set
CT_COMP_LIBS_LIBICONV=y
CT_COMP_LIBS_LIBICONV_PKG_KSYM="LIBICONV"
CT_LIBICONV_DIR_NAME="libiconv"