# Config entries for internal toolchain backend

if BR2_TOOLCHAIN_BUILDROOT

comment "Toolchain Buildroot Options"

config BR2_TOOLCHAIN_BUILDROOT_VENDOR
	string "custom toolchain vendor name"
	default "buildroot"
	help
	  This option allows to customize the "vendor" part of the
	  toolchain tuple, where the toolchain tuple has the form
	  <arch>-<vendor>-<os>-<libc>. The default value, "buildroot",
	  is fine for most cases, except in very specific situations
	  where gcc might make different decisions based on the vendor
	  part of the tuple. The value "unknown" is not allowed, as the
	  cross-compiling toolchain might then be confused with the
	  native toolchain when the target and host architecture are
	  identical. The value can not be empty either.

	  If you're not sure, just leave the default "buildroot" value.

choice
	prompt "C library"
	default BR2_TOOLCHAIN_BUILDROOT_GLIBC

config BR2_TOOLCHAIN_BUILDROOT_UCLIBC
	bool "uClibc-ng"
	depends on BR2_PACKAGE_UCLIBC_SUPPORTS
	select BR2_TOOLCHAIN_USES_UCLIBC
	help
	  This option selects uClibc-ng as the C library for the
	  cross-compilation toolchain.

	  http://uclibc-ng.org

config BR2_TOOLCHAIN_BUILDROOT_GLIBC
	bool "glibc"
	depends on BR2_PACKAGE_GLIBC_SUPPORTS
	select BR2_TOOLCHAIN_USES_GLIBC
	help
	  This option selects glibc as the C library for the
	  cross-compilation toolchain.

	  http://www.gnu.org/software/libc/

comment "glibc needs a toolchain w/ kernel headers >= 3.2"
	depends on BR2_PACKAGE_GLIBC_ARCH_SUPPORTS
	depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2

comment "glibc on LoongArch64 needs a toolchain w/ headers >= 5.19"
	depends on BR2_loongarch64
	depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_19

# glibc >= 2.26 require kernel headers >= 3.10 on powerpc64le.
comment "glibc on powerpc64le needs a toolchain w/ headers >= 3.10"
	depends on BR2_powerpc64le
	depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10

# Support for MIPS NAN2008 needs headers >= 4.5
comment "glibc on MIPS w/ NAN2008 needs a toolchain w/ headers >= 4.5"
	depends on BR2_MIPS_NAN_2008
	depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5

comment "glibc on RISC-V 64-bit needs a toolchain w/ headers >= 5.0"
	depends on BR2_RISCV_64
	depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0

comment "glibc on RISC-V 32-bit needs a toolchain w/ headers >= 5.4"
	depends on BR2_RISCV_32
	depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4

comment "glibc on ARC needs a toolchain w/ headers >= 5.1"
	depends on BR2_arc
	depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1

comment "glibc on or1k needs a toolchain w/ headers >= 5.4"
	depends on BR2_or1k
	depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4

config BR2_TOOLCHAIN_BUILDROOT_MUSL
	bool "musl"
	depends on BR2_PACKAGE_MUSL_SUPPORTS
	select BR2_TOOLCHAIN_USES_MUSL
	help
	  This option selects musl as the C library for the
	  cross-compilation toolchain.

	  https://www.musl-libc.org/

config BR2_TOOLCHAIN_BUILDROOT_NONE
	bool "none"
	depends on !BR2_PACKAGE_UCLIBC_SUPPORTS && \
		!BR2_PACKAGE_GLIBC_SUPPORTS && \
		!BR2_PACKAGE_MUSL_SUPPORTS
	help
	  This option is visible if no C library is available for the
	  currently selected configuration. If you select this option,
	  the build will refuse to start as Buildroot needs a C
	  library to build a toolchain. Change your configuration
	  settings to make sure one of the C libraries is selected.

endchoice

config BR2_TOOLCHAIN_BUILDROOT_LIBC
	string
	default "uclibc" if BR2_TOOLCHAIN_BUILDROOT_UCLIBC
	default "glibc"  if BR2_TOOLCHAIN_BUILDROOT_GLIBC
	default "musl"	 if BR2_TOOLCHAIN_BUILDROOT_MUSL

source "package/linux-headers/Config.in.host"
source "package/linux-headers/Config.in"
source "package/musl/Config.in"
source "package/uclibc/Config.in"
source "package/glibc/Config.in"
source "package/binutils/Config.in.host"
source "package/gcc/Config.in.host"
source "package/gcc/Config.in"
endif
