CT_EXPERIMENTAL=y
CT_PREFIX_DIR="${PWD}/toolchain_cross"
CT_ARCH_ARC=y
CT_ARCH_CPU="hs38_linux"
# CT_DEMULTILIB is not set
CT_TARGET_VENDOR="snps"
CT_KERNEL_LINUX=y
CT_BINUTILS_SRC_DEVEL=y
CT_BINUTILS_DEVEL_URL="https://github.com/foss-for-synopsys-dwc-arc-processors/binutils-gdb.git"
CT_BINUTILS_DEVEL_BRANCH="arc-2018.09-eng002"
CT_GLIBC_SRC_DEVEL=y
CT_GLIBC_DEVEL_URL="https://github.com/foss-for-synopsys-dwc-arc-processors/glibc.git"
CT_GLIBC_DEVEL_BRANCH="arc-2018.09-eng002"
CT_GCC_SRC_DEVEL=y
CT_GCC_DEVEL_VCS_git=y
CT_GCC_DEVEL_URL="https://github.com/foss-for-synopsys-dwc-arc-processors/gcc.git"
CT_GCC_DEVEL_BRANCH="arc-2018.09-eng002"
CT_CC_LANG_CXX=y
CT_CC_LANG_FORTRAN=y
Note CT_CREATE_LDSO_CONF
is disabled in cross-toolchain otherwise ld.so.conf
is created in sysroot
and then when Buildroot finalizes rootfs it bails out like that:
ERROR: we shouldn't have a /etc/ld.so.conf file
See https://git.buildroot.org/buildroot/commit/?h=9c4072348960d99d39f2cf47ff022f2d3711962e
CT_EXPERIMENTAL=y
CT_PREFIX_DIR="${PWD}/toolchain_native"
CT_ARCH_ARC=y
CT_ARCH_CPU="hs38_linux"
# CT_DEMULTILIB is not set
CT_TARGET_VENDOR="snps"
CT_TARGET_ALIAS_SED_EXPR="s/${CT_TARGET}-//"
CT_CANADIAN=y
CT_HOST="arc-snps-linux-gnu"
CT_KERNEL_LINUX=y
CT_BINUTILS_SRC_DEVEL=y
CT_BINUTILS_DEVEL_URL="https://github.com/foss-for-synopsys-dwc-arc-processors/binutils-gdb.git"
CT_BINUTILS_DEVEL_BRANCH="arc-2018.09-eng002"
CT_GLIBC_SRC_DEVEL=y
CT_GLIBC_DEVEL_URL="https://github.com/foss-for-synopsys-dwc-arc-processors/glibc.git"
CT_GLIBC_DEVEL_BRANCH="arc-2018.09-eng002"
CT_GCC_SRC_DEVEL=y
CT_GCC_DEVEL_VCS_git=y
CT_GCC_DEVEL_URL="https://github.com/foss-for-synopsys-dwc-arc-processors/gcc.git"
CT_GCC_DEVEL_BRANCH="arc-2018.09-eng002"
# CT_CC_GCC_STATIC_LIBSTDCXX is not set
CT_CC_LANG_CXX=y
CT_CC_LANG_FORTRAN=y
Note CT_TARGET_ALIAS_SED_EXPR="s/${CT_TARGET}-//"
- this way we produce prefixless versions of tools like gcc
, ld
etc in bin
folder. Otherwise we'll need to use prefixed commands like arc-snps-linux-gnu-cc
which is not what people and software expect from native tools.
BR2_arcle=y
BR2_archs38=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
BR2_TOOLCHAIN_EXTERNAL_PATH="/home/abrodkin/Projects/sources/git/crosstool-ng/toolchain_cross"
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="$(ARCH)-snps-linux-gnu"
BR2_TOOLCHAIN_EXTERNAL_GCC_8=y
BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_16=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
BR2_TOOLCHAIN_EXTERNAL_CXX=y
BR2_SYSTEM_DHCP="eth0"
BR2_TARGET_TZ_INFO=y
BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/synopsys/hsdk/genimage.cfg"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.18.5"
BR2_LINUX_KERNEL_DEFCONFIG="hsdk"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/synopsys/hsdk/linux.fragment"
BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
BR2_PACKAGE_STRACE=y
BR2_PACKAGE_MAKE=y
BR2_PACKAGE_DOSFSTOOLS=y
BR2_PACKAGE_MTOOLS=y
BR2_PACKAGE_LIBRSYNC=y
BR2_PACKAGE_NTP=y
BR2_PACKAGE_NTP_NTPDATE=y
BR2_PACKAGE_OPENSSH=y
BR2_PACKAGE_TMUX=y
BR2_PACKAGE_COREUTILS=y
BR2_PACKAGE_HTOP=y
BR2_TARGET_ROOTFS_CPIO=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="hsdk"
BR2_TARGET_UBOOT_NEEDS_DTC=y
BR2_TARGET_UBOOT_FORMAT_ELF=y
BR2_TARGET_UBOOT_ENVIMAGE=y
BR2_TARGET_UBOOT_ENVIMAGE_SOURCE="board/synopsys/hsdk/uboot.env.txt"
BR2_TARGET_UBOOT_ENVIMAGE_SIZE="0x4000"
BR2_PACKAGE_HOST_GENIMAGE=y
Deploy sdcard.img on the SD-card.
Copy native toolchain to /opt
folder of the SD-card with:
cp -r ~/Projects/sources/git/crosstool-ng/toolchain_native/* /var/run/media/ext4/opt
To build SPEC2000 tools run on target:
export PATH=/opt/bin:$PATH
ln -s /opt/arc-snps-linux-gnu/sysroot/usr/include/ /opt/local/