From d360ff701960e91225cce444edeb863f6e7f0bd7 Mon Sep 17 00:00:00 2001 From: Ryan Roberts Date: Wed, 8 Nov 2023 14:31:41 +0000 Subject: [PATCH] config: Update buildroot to build its own toolchain Previously, buildroot was downloading a pre-built toolchain from Arm, which is faster, but only works on x86_64 host, since that's the only download package it knows about. So let's change to build its own toolchain from source, which will allow building buildroot on aarch64 systems. Signed-off-by: Ryan Roberts --- config/buildroot.config | 123 +++++++++++++++++++++++++++++----------- 1 file changed, 91 insertions(+), 32 deletions(-) diff --git a/config/buildroot.config b/config/buildroot.config index 69bd44c..b7cd90e 100644 --- a/config/buildroot.config +++ b/config/buildroot.config @@ -198,25 +198,74 @@ BR2_FORTIFY_SOURCE_1=y # BR2_TOOLCHAIN=y BR2_TOOLCHAIN_USES_GLIBC=y -# BR2_TOOLCHAIN_BUILDROOT is not set -BR2_TOOLCHAIN_EXTERNAL=y - -# -# Toolchain External Options -# -BR2_TOOLCHAIN_EXTERNAL_ARM_AARCH64=y -# BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64 is not set -# BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64 is not set -# BR2_TOOLCHAIN_EXTERNAL_BOOTLIN is not set -# BR2_TOOLCHAIN_EXTERNAL_CUSTOM is not set -BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y -# BR2_TOOLCHAIN_EXTERNAL_PREINSTALLED is not set -BR2_TOOLCHAIN_EXTERNAL_GLIBC=y -BR2_PACKAGE_HAS_TOOLCHAIN_EXTERNAL=y -BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL="toolchain-external-arm-aarch64" -BR2_TOOLCHAIN_EXTERNAL_PREFIX="aarch64-none-linux-gnu" -BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCH_SUPPORTS=y -# BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY is not set +BR2_TOOLCHAIN_BUILDROOT=y +# BR2_TOOLCHAIN_EXTERNAL is not set + +# +# Toolchain Buildroot Options +# +BR2_TOOLCHAIN_BUILDROOT_VENDOR="buildroot" +BR2_TOOLCHAIN_BUILDROOT_STATIC_LIBS_SUPPORTS=y +# BR2_TOOLCHAIN_BUILDROOT_UCLIBC is not set +BR2_TOOLCHAIN_BUILDROOT_GLIBC=y +# BR2_TOOLCHAIN_BUILDROOT_MUSL is not set +BR2_TOOLCHAIN_BUILDROOT_LIBC="glibc" + +# +# Kernel Header Options +# +# BR2_KERNEL_HEADERS_4_9 is not set +# BR2_KERNEL_HEADERS_4_14 is not set +# BR2_KERNEL_HEADERS_4_19 is not set +# BR2_KERNEL_HEADERS_5_4 is not set +# BR2_KERNEL_HEADERS_5_10 is not set +# BR2_KERNEL_HEADERS_5_15 is not set +BR2_KERNEL_HEADERS_5_17=y +# BR2_KERNEL_HEADERS_VERSION is not set +# BR2_KERNEL_HEADERS_CUSTOM_TARBALL is not set +# BR2_KERNEL_HEADERS_CUSTOM_GIT is not set +BR2_KERNEL_HEADERS_LATEST=y +BR2_DEFAULT_KERNEL_HEADERS="5.17.15" +BR2_PACKAGE_LINUX_HEADERS=y +BR2_PACKAGE_MUSL_ARCH_SUPPORTS=y +BR2_PACKAGE_MUSL_SUPPORTS=y +BR2_PACKAGE_UCLIBC_ARCH_SUPPORTS=y +BR2_PACKAGE_UCLIBC_SUPPORTS=y +BR2_PACKAGE_GLIBC_ARCH_SUPPORTS=y +BR2_PACKAGE_GLIBC_SUPPORTS=y + +# +# Glibc Options +# +BR2_PACKAGE_GLIBC=y +# BR2_PACKAGE_GLIBC_KERNEL_COMPAT is not set +# BR2_PACKAGE_GLIBC_UTILS is not set + +# +# Binutils Options +# +BR2_PACKAGE_HOST_BINUTILS_SUPPORTS_CFI=y +# BR2_BINUTILS_VERSION_2_36_X is not set +BR2_BINUTILS_VERSION_2_37_X=y +# BR2_BINUTILS_VERSION_2_38_X is not set +BR2_BINUTILS_VERSION="2.37" +BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="" + +# +# GCC Options +# +# BR2_GCC_VERSION_9_X is not set +BR2_GCC_VERSION_10_X=y +# BR2_GCC_VERSION_11_X is not set +BR2_GCC_SUPPORTS_DLANG=y +BR2_GCC_VERSION="10.4.0" +BR2_EXTRA_GCC_CONFIG_OPTIONS="" +BR2_TOOLCHAIN_BUILDROOT_CXX=y +BR2_TOOLCHAIN_BUILDROOT_FORTRAN=y +# BR2_TOOLCHAIN_BUILDROOT_DLANG is not set +# BR2_GCC_ENABLE_LTO is not set +BR2_GCC_ENABLE_OPENMP=y +# BR2_GCC_ENABLE_GRAPHITE is not set BR2_PACKAGE_HOST_GDB_ARCH_SUPPORTS=y # @@ -289,7 +338,26 @@ BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_17=y BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_18=y BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_19=y BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_20=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST="4.20" +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_2=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_3=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_5=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_6=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_7=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_8=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_9=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_10=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_11=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_12=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_13=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_14=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_15=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_16=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_17=y +BR2_TOOLCHAIN_HEADERS_LATEST=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST="5.16" BR2_TOOLCHAIN_GCC_AT_LEAST_4_3=y BR2_TOOLCHAIN_GCC_AT_LEAST_4_4=y BR2_TOOLCHAIN_GCC_AT_LEAST_4_5=y @@ -1874,10 +1942,7 @@ BR2_PACKAGE_LIBUNWIND_ARCH_SUPPORTS=y # BR2_PACKAGE_LIBUNWIND is not set BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS=y # BR2_PACKAGE_LIBURCU is not set - -# -# liburing needs a toolchain w/ gcc >= 4.9, headers >= 5.1 -# +# BR2_PACKAGE_LIBURING is not set # BR2_PACKAGE_LIBUV is not set # BR2_PACKAGE_LINUX_PAM is not set # BR2_PACKAGE_LIQUID_DSP is not set @@ -2035,10 +2100,7 @@ BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET=y # BR2_PACKAGE_CAN_UTILS is not set # BR2_PACKAGE_CANNELLONI is not set # BR2_PACKAGE_CASYNC is not set - -# -# cfm needs a toolchain w/ threads, kernel headers >= 5.0 -# +# BR2_PACKAGE_CFM is not set # BR2_PACKAGE_CHRONY is not set # BR2_PACKAGE_CIVETWEB is not set # BR2_PACKAGE_CONNMAN is not set @@ -2147,10 +2209,7 @@ BR2_PACKAGE_MONGREL2_LIBC_SUPPORTS=y # BR2_PACKAGE_MOSH is not set # BR2_PACKAGE_MOSQUITTO is not set # BR2_PACKAGE_MROUTED is not set - -# -# mrp needs a toolchain w/ threads, kernel headers >= 5.0 -# +# BR2_PACKAGE_MRP is not set # BR2_PACKAGE_MSTPD is not set # BR2_PACKAGE_MTR is not set # BR2_PACKAGE_NBD is not set -- GitLab