# Config entries for internal toolchain backend

if BR2_TOOLCHAIN_BUILDROOT
source "package/linux-headers/Config.in.host"

choice
	prompt "C library"

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

	  http://uclibc.org

config BR2_TOOLCHAIN_BUILDROOT_EGLIBC
	bool "eglibc (experimental)"
	depends on BR2_arm    || BR2_armeb    || BR2_aarch64 || \
		   BR2_i386   || BR2_mips     || BR2_mipsel  || \
		   BR2_mips64 || BR2_mips64el || BR2_powerpc || \
		   BR2_sh     || BR2_sh64     || BR2_sparc   || \
		   BR2_x86_64
	select BR2_TOOLCHAIN_USES_GLIBC
	# our eglibc.mk enables RPC support
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  This option selects eglibc as the C library for the
	  cross-compilation toolchain.

	  The eglibc support in the Buildroot toolchain backend is
	  very recent, and therefore marked experimental.

	  http://eglibc.org

endchoice

config BR2_TOOLCHAIN_BUILDROOT_LIBC
	string
	default "uclibc" if BR2_TOOLCHAIN_BUILDROOT_UCLIBC
	default "eglibc" if BR2_TOOLCHAIN_BUILDROOT_EGLIBC

source "package/uclibc/Config.in"

source "package/binutils/Config.in.host"
source "package/gcc/Config.in.host"
endif
