# This file was auto-generated by support/scripts/gen-bootlin-toolchains
# Do not edit
config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCH_SUPPORTS
	bool
	default y if BR2_aarch64
	default y if BR2_aarch64_be
	default y if BR2_arcle && BR2_arc750d
	default y if BR2_arcle && BR2_archs38
	default y if BR2_ARM_CPU_ARMV5 && BR2_ARM_EABI
	default y if BR2_ARM_CPU_ARMV6 && BR2_ARM_EABIHF
	default y if BR2_ARM_CPU_ARMV7A && BR2_ARM_EABIHF
	default y if BR2_ARM_CPU_ARMV7M
	default y if BR2_m68k_m68k
	default y if BR2_m68k_cf
	default y if BR2_microblazebe
	default y if BR2_microblazeel
	default y if BR2_mips && BR2_mips_32 && !BR2_MIPS_SOFT_FLOAT
	default y if BR2_mipsel && BR2_mips_32 && !BR2_MIPS_SOFT_FLOAT
	default y if BR2_mipsel && BR2_mips_32r5 && !BR2_MIPS_SOFT_FLOAT
	default y if BR2_mipsel && BR2_mips_32r6 && !BR2_MIPS_SOFT_FLOAT
	default y if BR2_mips64 && BR2_mips_64 && !BR2_MIPS_SOFT_FLOAT
	default y if BR2_mips64 && BR2_mips_64 && BR2_MIPS_NABI32 && !BR2_MIPS_SOFT_FLOAT
	default y if BR2_mips64el && BR2_mips_64 && BR2_MIPS_NABI32 && !BR2_MIPS_SOFT_FLOAT
	default y if BR2_mips64el && BR2_mips_64r6 && BR2_MIPS_NABI32 && !BR2_MIPS_SOFT_FLOAT
	default y if BR2_nios2
	default y if BR2_or1k
	default y if BR2_powerpc && BR2_powerpc_440fp
	default y if BR2_powerpc && BR2_powerpc_e300c3
	default y if BR2_powerpc && BR2_powerpc_e500mc
	default y if BR2_powerpc64 && BR2_powerpc_e5500
	default y if BR2_powerpc64 && BR2_powerpc_e6500
	default y if BR2_powerpc64 && BR2_powerpc_power8
	default y if BR2_powerpc64le && BR2_powerpc_power8
	default y if BR2_riscv && BR2_riscv_g && BR2_RISCV_32 && BR2_RISCV_ABI_ILP32D
	default y if BR2_riscv && BR2_riscv_g && BR2_RISCV_64 && BR2_RISCV_ABI_LP64
	default y if BR2_sh && BR2_sh4
	default y if BR2_sh && BR2_sh4aeb
	default y if BR2_sparc64 && BR2_sparc_v9
	default y if BR2_sparc && BR2_sparc_v8
	default y if BR2_x86_64 && BR2_X86_CPU_HAS_MMX && BR2_X86_CPU_HAS_SSE && BR2_X86_CPU_HAS_SSE2 && BR2_X86_CPU_HAS_SSE3 && BR2_X86_CPU_HAS_SSSE3 && BR2_X86_CPU_HAS_SSE4 && BR2_X86_CPU_HAS_SSE42
	default y if BR2_i386 && BR2_X86_CPU_HAS_MMX && BR2_X86_CPU_HAS_SSE && BR2_X86_CPU_HAS_SSE2 && BR2_X86_CPU_HAS_SSE3 && BR2_X86_CPU_HAS_SSSE3
	default y if BR2_i386 && !BR2_x86_i486 && !BR2_x86_i586 && !BR2_x86_x1000
	default y if BR2_xtensa && BR2_xtensa_fsf

if BR2_TOOLCHAIN_EXTERNAL_BOOTLIN

config BR2_TOOLCHAIN_EXTERNAL_PREFIX
	default "$(ARCH)-linux"

config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
	default "toolchain-external-bootlin"

choice
	prompt "Bootlin toolchain variant"
config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_GLIBC_BLEEDING_EDGE
	bool "aarch64 glibc bleeding-edge 2020.08-1"
	depends on BR2_aarch64
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the aarch64 architecture, using the
	  glibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_GLIBC_STABLE
	bool "aarch64 glibc stable 2020.08-1"
	depends on BR2_aarch64
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the aarch64 architecture, using the
	  glibc C library. This is a stable version, which means it
	  is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_MUSL_BLEEDING_EDGE
	bool "aarch64 musl bleeding-edge 2020.08-1"
	depends on BR2_aarch64
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the aarch64 architecture, using the
	  musl C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_MUSL_STABLE
	bool "aarch64 musl stable 2020.08-1"
	depends on BR2_aarch64
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_19
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the aarch64 architecture, using the
	  musl C library. This is a stable version, which means it is
	  using stable and proven versions of gcc, gdb and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_UCLIBC_BLEEDING_EDGE
	bool "aarch64 uclibc bleeding-edge 2020.08-1"
	depends on BR2_aarch64
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the aarch64 architecture, using the
	  uclibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_UCLIBC_STABLE
	bool "aarch64 uclibc stable 2020.08-1"
	depends on BR2_aarch64
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the aarch64 architecture, using the
	  uclibc C library. This is a stable version, which means it
	  is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64BE_GLIBC_BLEEDING_EDGE
	bool "aarch64be glibc bleeding-edge 2020.08-1"
	depends on BR2_aarch64_be
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the aarch64be architecture, using the
	  glibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64BE_GLIBC_STABLE
	bool "aarch64be glibc stable 2020.08-1"
	depends on BR2_aarch64_be
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the aarch64be architecture, using the
	  glibc C library. This is a stable version, which means it
	  is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64BE_UCLIBC_BLEEDING_EDGE
	bool "aarch64be uclibc bleeding-edge 2020.08-1"
	depends on BR2_aarch64_be
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the aarch64be architecture, using the
	  uclibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64BE_UCLIBC_STABLE
	bool "aarch64be uclibc stable 2020.08-1"
	depends on BR2_aarch64_be
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the aarch64be architecture, using the
	  uclibc C library. This is a stable version, which means it
	  is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCLE_750D_UCLIBC_BLEEDING_EDGE
	bool "arcle-750d uclibc bleeding-edge 2020.08-1"
	depends on BR2_arcle
	depends on BR2_arc750d
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the arcle-750d architecture, using
	  the uclibc C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCLE_750D_UCLIBC_STABLE
	bool "arcle-750d uclibc stable 2020.08-1"
	depends on BR2_arcle
	depends on BR2_arc750d
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the arcle-750d architecture, using
	  the uclibc C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCLE_HS38_GLIBC_BLEEDING_EDGE
	bool "arcle-hs38 glibc bleeding-edge 2020.08-1"
	depends on BR2_arcle
	depends on BR2_archs38
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the arcle-hs38 architecture, using
	  the glibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCLE_HS38_GLIBC_STABLE
	bool "arcle-hs38 glibc stable 2020.08-1"
	depends on BR2_arcle
	depends on BR2_archs38
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the arcle-hs38 architecture, using
	  the glibc C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCLE_HS38_UCLIBC_BLEEDING_EDGE
	bool "arcle-hs38 uclibc bleeding-edge 2020.08-1"
	depends on BR2_arcle
	depends on BR2_archs38
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the arcle-hs38 architecture, using
	  the uclibc C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCLE_HS38_UCLIBC_STABLE
	bool "arcle-hs38 uclibc stable 2020.08-1"
	depends on BR2_arcle
	depends on BR2_archs38
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the arcle-hs38 architecture, using
	  the uclibc C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_GLIBC_BLEEDING_EDGE
	bool "armv5-eabi glibc bleeding-edge 2020.08-1"
	depends on BR2_ARM_CPU_ARMV5
	depends on BR2_ARM_EABI
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the armv5-eabi architecture, using
	  the glibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_GLIBC_STABLE
	bool "armv5-eabi glibc stable 2020.08-1"
	depends on BR2_ARM_CPU_ARMV5
	depends on BR2_ARM_EABI
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the armv5-eabi architecture, using
	  the glibc C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_MUSL_BLEEDING_EDGE
	bool "armv5-eabi musl bleeding-edge 2020.08-1"
	depends on BR2_ARM_CPU_ARMV5
	depends on BR2_ARM_EABI
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the armv5-eabi architecture, using
	  the musl C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_MUSL_STABLE
	bool "armv5-eabi musl stable 2020.08-1"
	depends on BR2_ARM_CPU_ARMV5
	depends on BR2_ARM_EABI
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the armv5-eabi architecture, using
	  the musl C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_UCLIBC_BLEEDING_EDGE
	bool "armv5-eabi uclibc bleeding-edge 2020.08-1"
	depends on BR2_ARM_CPU_ARMV5
	depends on BR2_ARM_EABI
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the armv5-eabi architecture, using
	  the uclibc C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_UCLIBC_STABLE
	bool "armv5-eabi uclibc stable 2020.08-1"
	depends on BR2_ARM_CPU_ARMV5
	depends on BR2_ARM_EABI
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the armv5-eabi architecture, using
	  the uclibc C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV6_EABIHF_GLIBC_BLEEDING_EDGE
	bool "armv6-eabihf glibc bleeding-edge 2020.08-1"
	depends on BR2_ARM_CPU_ARMV6
	depends on BR2_ARM_EABIHF
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the armv6-eabihf architecture, using
	  the glibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV6_EABIHF_GLIBC_STABLE
	bool "armv6-eabihf glibc stable 2020.08-1"
	depends on BR2_ARM_CPU_ARMV6
	depends on BR2_ARM_EABIHF
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the armv6-eabihf architecture, using
	  the glibc C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV6_EABIHF_MUSL_BLEEDING_EDGE
	bool "armv6-eabihf musl bleeding-edge 2020.08-1"
	depends on BR2_ARM_CPU_ARMV6
	depends on BR2_ARM_EABIHF
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the armv6-eabihf architecture, using
	  the musl C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV6_EABIHF_MUSL_STABLE
	bool "armv6-eabihf musl stable 2020.08-1"
	depends on BR2_ARM_CPU_ARMV6
	depends on BR2_ARM_EABIHF
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the armv6-eabihf architecture, using
	  the musl C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV6_EABIHF_UCLIBC_BLEEDING_EDGE
	bool "armv6-eabihf uclibc bleeding-edge 2020.08-1"
	depends on BR2_ARM_CPU_ARMV6
	depends on BR2_ARM_EABIHF
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the armv6-eabihf architecture, using
	  the uclibc C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV6_EABIHF_UCLIBC_STABLE
	bool "armv6-eabihf uclibc stable 2020.08-1"
	depends on BR2_ARM_CPU_ARMV6
	depends on BR2_ARM_EABIHF
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the armv6-eabihf architecture, using
	  the uclibc C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_GLIBC_BLEEDING_EDGE
	bool "armv7-eabihf glibc bleeding-edge 2020.08-1"
	depends on BR2_ARM_CPU_ARMV7A
	depends on BR2_ARM_EABIHF
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the armv7-eabihf architecture, using
	  the glibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_GLIBC_STABLE
	bool "armv7-eabihf glibc stable 2020.08-1"
	depends on BR2_ARM_CPU_ARMV7A
	depends on BR2_ARM_EABIHF
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the armv7-eabihf architecture, using
	  the glibc C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_MUSL_BLEEDING_EDGE
	bool "armv7-eabihf musl bleeding-edge 2020.08-1"
	depends on BR2_ARM_CPU_ARMV7A
	depends on BR2_ARM_EABIHF
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the armv7-eabihf architecture, using
	  the musl C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_MUSL_STABLE
	bool "armv7-eabihf musl stable 2020.08-1"
	depends on BR2_ARM_CPU_ARMV7A
	depends on BR2_ARM_EABIHF
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the armv7-eabihf architecture, using
	  the musl C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_UCLIBC_BLEEDING_EDGE
	bool "armv7-eabihf uclibc bleeding-edge 2020.08-1"
	depends on BR2_ARM_CPU_ARMV7A
	depends on BR2_ARM_EABIHF
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the armv7-eabihf architecture, using
	  the uclibc C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_UCLIBC_STABLE
	bool "armv7-eabihf uclibc stable 2020.08-1"
	depends on BR2_ARM_CPU_ARMV7A
	depends on BR2_ARM_EABIHF
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the armv7-eabihf architecture, using
	  the uclibc C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7M_UCLIBC_BLEEDING_EDGE
	bool "armv7m uclibc bleeding-edge 2020.08-1"
	depends on BR2_ARM_CPU_ARMV7M
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the armv7m architecture, using the
	  uclibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7M_UCLIBC_STABLE
	bool "armv7m uclibc stable 2020.08-1"
	depends on BR2_ARM_CPU_ARMV7M
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the armv7m architecture, using the
	  uclibc C library. This is a stable version, which means it
	  is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_M68K_68XXX_UCLIBC_BLEEDING_EDGE
	bool "m68k-68xxx uclibc bleeding-edge 2020.08-1"
	depends on BR2_m68k_m68k
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the m68k-68xxx architecture, using
	  the uclibc C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_M68K_68XXX_UCLIBC_STABLE
	bool "m68k-68xxx uclibc stable 2020.08-1"
	depends on BR2_m68k_m68k
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the m68k-68xxx architecture, using
	  the uclibc C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_M68K_COLDFIRE_UCLIBC_BLEEDING_EDGE
	bool "m68k-coldfire uclibc bleeding-edge 2020.08-1"
	depends on BR2_m68k_cf
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the m68k-coldfire architecture, using
	  the uclibc C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_M68K_COLDFIRE_UCLIBC_STABLE
	bool "m68k-coldfire uclibc stable 2020.08-1"
	depends on BR2_m68k_cf
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the m68k-coldfire architecture, using
	  the uclibc C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEBE_GLIBC_BLEEDING_EDGE
	bool "microblazebe glibc bleeding-edge 2020.08-1"
	depends on BR2_microblazebe
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the microblazebe architecture, using
	  the glibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEBE_GLIBC_STABLE
	bool "microblazebe glibc stable 2020.08-1"
	depends on BR2_microblazebe
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the microblazebe architecture, using
	  the glibc C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEBE_MUSL_BLEEDING_EDGE
	bool "microblazebe musl bleeding-edge 2020.08-1"
	depends on BR2_microblazebe
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the microblazebe architecture, using
	  the musl C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEBE_MUSL_STABLE
	bool "microblazebe musl stable 2020.08-1"
	depends on BR2_microblazebe
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the microblazebe architecture, using
	  the musl C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEBE_UCLIBC_BLEEDING_EDGE
	bool "microblazebe uclibc bleeding-edge 2020.08-1"
	depends on BR2_microblazebe
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the microblazebe architecture, using
	  the uclibc C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEBE_UCLIBC_STABLE
	bool "microblazebe uclibc stable 2020.08-1"
	depends on BR2_microblazebe
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the microblazebe architecture, using
	  the uclibc C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEEL_GLIBC_BLEEDING_EDGE
	bool "microblazeel glibc bleeding-edge 2020.08-1"
	depends on BR2_microblazeel
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the microblazeel architecture, using
	  the glibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEEL_GLIBC_STABLE
	bool "microblazeel glibc stable 2020.08-1"
	depends on BR2_microblazeel
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the microblazeel architecture, using
	  the glibc C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEEL_MUSL_BLEEDING_EDGE
	bool "microblazeel musl bleeding-edge 2020.08-1"
	depends on BR2_microblazeel
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the microblazeel architecture, using
	  the musl C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEEL_MUSL_STABLE
	bool "microblazeel musl stable 2020.08-1"
	depends on BR2_microblazeel
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the microblazeel architecture, using
	  the musl C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEEL_UCLIBC_BLEEDING_EDGE
	bool "microblazeel uclibc bleeding-edge 2020.08-1"
	depends on BR2_microblazeel
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the microblazeel architecture, using
	  the uclibc C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MICROBLAZEEL_UCLIBC_STABLE
	bool "microblazeel uclibc stable 2020.08-1"
	depends on BR2_microblazeel
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the microblazeel architecture, using
	  the uclibc C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32_GLIBC_BLEEDING_EDGE
	bool "mips32 glibc bleeding-edge 2020.08-1"
	depends on BR2_mips
	depends on BR2_mips_32
	depends on !BR2_MIPS_SOFT_FLOAT
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the mips32 architecture, using the
	  glibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32_GLIBC_STABLE
	bool "mips32 glibc stable 2020.08-1"
	depends on BR2_mips
	depends on BR2_mips_32
	depends on !BR2_MIPS_SOFT_FLOAT
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the mips32 architecture, using the
	  glibc C library. This is a stable version, which means it
	  is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32_MUSL_BLEEDING_EDGE
	bool "mips32 musl bleeding-edge 2020.08-1"
	depends on BR2_mips
	depends on BR2_mips_32
	depends on !BR2_MIPS_SOFT_FLOAT
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the mips32 architecture, using the
	  musl C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32_MUSL_STABLE
	bool "mips32 musl stable 2020.08-1"
	depends on BR2_mips
	depends on BR2_mips_32
	depends on !BR2_MIPS_SOFT_FLOAT
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the mips32 architecture, using the
	  musl C library. This is a stable version, which means it is
	  using stable and proven versions of gcc, gdb and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32_UCLIBC_BLEEDING_EDGE
	bool "mips32 uclibc bleeding-edge 2020.08-1"
	depends on BR2_mips
	depends on BR2_mips_32
	depends on !BR2_MIPS_SOFT_FLOAT
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the mips32 architecture, using the
	  uclibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32_UCLIBC_STABLE
	bool "mips32 uclibc stable 2020.08-1"
	depends on BR2_mips
	depends on BR2_mips_32
	depends on !BR2_MIPS_SOFT_FLOAT
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the mips32 architecture, using the
	  uclibc C library. This is a stable version, which means it
	  is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32EL_GLIBC_BLEEDING_EDGE
	bool "mips32el glibc bleeding-edge 2020.08-1"
	depends on BR2_mipsel
	depends on BR2_mips_32
	depends on !BR2_MIPS_SOFT_FLOAT
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the mips32el architecture, using the
	  glibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32EL_GLIBC_STABLE
	bool "mips32el glibc stable 2020.08-1"
	depends on BR2_mipsel
	depends on BR2_mips_32
	depends on !BR2_MIPS_SOFT_FLOAT
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the mips32el architecture, using the
	  glibc C library. This is a stable version, which means it
	  is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32EL_MUSL_BLEEDING_EDGE
	bool "mips32el musl bleeding-edge 2020.08-1"
	depends on BR2_mipsel
	depends on BR2_mips_32
	depends on !BR2_MIPS_SOFT_FLOAT
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the mips32el architecture, using the
	  musl C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32EL_MUSL_STABLE
	bool "mips32el musl stable 2020.08-1"
	depends on BR2_mipsel
	depends on BR2_mips_32
	depends on !BR2_MIPS_SOFT_FLOAT
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the mips32el architecture, using the
	  musl C library. This is a stable version, which means it is
	  using stable and proven versions of gcc, gdb and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32EL_UCLIBC_BLEEDING_EDGE
	bool "mips32el uclibc bleeding-edge 2020.08-1"
	depends on BR2_mipsel
	depends on BR2_mips_32
	depends on !BR2_MIPS_SOFT_FLOAT
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the mips32el architecture, using the
	  uclibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32EL_UCLIBC_STABLE
	bool "mips32el uclibc stable 2020.08-1"
	depends on BR2_mipsel
	depends on BR2_mips_32
	depends on !BR2_MIPS_SOFT_FLOAT
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the mips32el architecture, using the
	  uclibc C library. This is a stable version, which means it
	  is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R5EL_GLIBC_BLEEDING_EDGE
	bool "mips32r5el glibc bleeding-edge 2020.08-1"
	depends on BR2_mipsel
	depends on BR2_mips_32r5
	depends on !BR2_MIPS_SOFT_FLOAT
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the mips32r5el architecture, using
	  the glibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R5EL_GLIBC_STABLE
	bool "mips32r5el glibc stable 2020.08-1"
	depends on BR2_mipsel
	depends on BR2_mips_32r5
	depends on !BR2_MIPS_SOFT_FLOAT
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the mips32r5el architecture, using
	  the glibc C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R5EL_MUSL_BLEEDING_EDGE
	bool "mips32r5el musl bleeding-edge 2020.08-1"
	depends on BR2_mipsel
	depends on BR2_mips_32r5
	depends on !BR2_MIPS_SOFT_FLOAT
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the mips32r5el architecture, using
	  the musl C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R5EL_MUSL_STABLE
	bool "mips32r5el musl stable 2020.08-1"
	depends on BR2_mipsel
	depends on BR2_mips_32r5
	depends on !BR2_MIPS_SOFT_FLOAT
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the mips32r5el architecture, using
	  the musl C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R5EL_UCLIBC_BLEEDING_EDGE
	bool "mips32r5el uclibc bleeding-edge 2020.08-1"
	depends on BR2_mipsel
	depends on BR2_mips_32r5
	depends on !BR2_MIPS_SOFT_FLOAT
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the mips32r5el architecture, using
	  the uclibc C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R5EL_UCLIBC_STABLE
	bool "mips32r5el uclibc stable 2020.08-1"
	depends on BR2_mipsel
	depends on BR2_mips_32r5
	depends on !BR2_MIPS_SOFT_FLOAT
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the mips32r5el architecture, using
	  the uclibc C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R6EL_GLIBC_BLEEDING_EDGE
	bool "mips32r6el glibc bleeding-edge 2020.08-1"
	depends on BR2_mipsel
	depends on BR2_mips_32r6
	depends on !BR2_MIPS_SOFT_FLOAT
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the mips32r6el architecture, using
	  the glibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R6EL_GLIBC_STABLE
	bool "mips32r6el glibc stable 2020.08-1"
	depends on BR2_mipsel
	depends on BR2_mips_32r6
	depends on !BR2_MIPS_SOFT_FLOAT
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the mips32r6el architecture, using
	  the glibc C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R6EL_MUSL_BLEEDING_EDGE
	bool "mips32r6el musl bleeding-edge 2020.08-1"
	depends on BR2_mipsel
	depends on BR2_mips_32r6
	depends on !BR2_MIPS_SOFT_FLOAT
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the mips32r6el architecture, using
	  the musl C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R6EL_MUSL_STABLE
	bool "mips32r6el musl stable 2020.08-1"
	depends on BR2_mipsel
	depends on BR2_mips_32r6
	depends on !BR2_MIPS_SOFT_FLOAT
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the mips32r6el architecture, using
	  the musl C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R6EL_UCLIBC_BLEEDING_EDGE
	bool "mips32r6el uclibc bleeding-edge 2020.08-1"
	depends on BR2_mipsel
	depends on BR2_mips_32r6
	depends on !BR2_MIPS_SOFT_FLOAT
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the mips32r6el architecture, using
	  the uclibc C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS32R6EL_UCLIBC_STABLE
	bool "mips32r6el uclibc stable 2020.08-1"
	depends on BR2_mipsel
	depends on BR2_mips_32r6
	depends on !BR2_MIPS_SOFT_FLOAT
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the mips32r6el architecture, using
	  the uclibc C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64_N32_GLIBC_BLEEDING_EDGE
	bool "mips64-n32 glibc bleeding-edge 2020.08-1"
	depends on BR2_mips64
	depends on BR2_mips_64
	depends on BR2_MIPS_NABI32
	depends on !BR2_MIPS_SOFT_FLOAT
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the mips64-n32 architecture, using
	  the glibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64_N32_GLIBC_STABLE
	bool "mips64-n32 glibc stable 2020.08-1"
	depends on BR2_mips64
	depends on BR2_mips_64
	depends on BR2_MIPS_NABI32
	depends on !BR2_MIPS_SOFT_FLOAT
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the mips64-n32 architecture, using
	  the glibc C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64_N32_MUSL_BLEEDING_EDGE
	bool "mips64-n32 musl bleeding-edge 2020.08-1"
	depends on BR2_mips64
	depends on BR2_mips_64
	depends on BR2_MIPS_NABI32
	depends on !BR2_MIPS_SOFT_FLOAT
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the mips64-n32 architecture, using
	  the musl C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64_N32_MUSL_STABLE
	bool "mips64-n32 musl stable 2020.08-1"
	depends on BR2_mips64
	depends on BR2_mips_64
	depends on BR2_MIPS_NABI32
	depends on !BR2_MIPS_SOFT_FLOAT
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the mips64-n32 architecture, using
	  the musl C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64_N32_UCLIBC_BLEEDING_EDGE
	bool "mips64-n32 uclibc bleeding-edge 2020.08-1"
	depends on BR2_mips64
	depends on BR2_mips_64
	depends on BR2_MIPS_NABI32
	depends on !BR2_MIPS_SOFT_FLOAT
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the mips64-n32 architecture, using
	  the uclibc C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64_N32_UCLIBC_STABLE
	bool "mips64-n32 uclibc stable 2020.08-1"
	depends on BR2_mips64
	depends on BR2_mips_64
	depends on BR2_MIPS_NABI32
	depends on !BR2_MIPS_SOFT_FLOAT
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the mips64-n32 architecture, using
	  the uclibc C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64EL_N32_GLIBC_BLEEDING_EDGE
	bool "mips64el-n32 glibc bleeding-edge 2020.08-1"
	depends on BR2_mips64el
	depends on BR2_mips_64
	depends on BR2_MIPS_NABI32
	depends on !BR2_MIPS_SOFT_FLOAT
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the mips64el-n32 architecture, using
	  the glibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64EL_N32_GLIBC_STABLE
	bool "mips64el-n32 glibc stable 2020.08-1"
	depends on BR2_mips64el
	depends on BR2_mips_64
	depends on BR2_MIPS_NABI32
	depends on !BR2_MIPS_SOFT_FLOAT
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the mips64el-n32 architecture, using
	  the glibc C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64EL_N32_MUSL_BLEEDING_EDGE
	bool "mips64el-n32 musl bleeding-edge 2020.08-1"
	depends on BR2_mips64el
	depends on BR2_mips_64
	depends on BR2_MIPS_NABI32
	depends on !BR2_MIPS_SOFT_FLOAT
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the mips64el-n32 architecture, using
	  the musl C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64EL_N32_MUSL_STABLE
	bool "mips64el-n32 musl stable 2020.08-1"
	depends on BR2_mips64el
	depends on BR2_mips_64
	depends on BR2_MIPS_NABI32
	depends on !BR2_MIPS_SOFT_FLOAT
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the mips64el-n32 architecture, using
	  the musl C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64EL_N32_UCLIBC_BLEEDING_EDGE
	bool "mips64el-n32 uclibc bleeding-edge 2020.08-1"
	depends on BR2_mips64el
	depends on BR2_mips_64
	depends on BR2_MIPS_NABI32
	depends on !BR2_MIPS_SOFT_FLOAT
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the mips64el-n32 architecture, using
	  the uclibc C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64EL_N32_UCLIBC_STABLE
	bool "mips64el-n32 uclibc stable 2020.08-1"
	depends on BR2_mips64el
	depends on BR2_mips_64
	depends on BR2_MIPS_NABI32
	depends on !BR2_MIPS_SOFT_FLOAT
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the mips64el-n32 architecture, using
	  the uclibc C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64R6EL_N32_GLIBC_BLEEDING_EDGE
	bool "mips64r6el-n32 glibc bleeding-edge 2020.08-1"
	depends on BR2_mips64el
	depends on BR2_mips_64r6
	depends on BR2_MIPS_NABI32
	depends on !BR2_MIPS_SOFT_FLOAT
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the mips64r6el-n32 architecture,
	  using the glibc C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64R6EL_N32_GLIBC_STABLE
	bool "mips64r6el-n32 glibc stable 2020.08-1"
	depends on BR2_mips64el
	depends on BR2_mips_64r6
	depends on BR2_MIPS_NABI32
	depends on !BR2_MIPS_SOFT_FLOAT
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the mips64r6el-n32 architecture,
	  using the glibc C library. This is a stable version, which
	  means it is using stable and proven versions of gcc, gdb
	  and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64R6EL_N32_MUSL_BLEEDING_EDGE
	bool "mips64r6el-n32 musl bleeding-edge 2020.08-1"
	depends on BR2_mips64el
	depends on BR2_mips_64r6
	depends on BR2_MIPS_NABI32
	depends on !BR2_MIPS_SOFT_FLOAT
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the mips64r6el-n32 architecture,
	  using the musl C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64R6EL_N32_MUSL_STABLE
	bool "mips64r6el-n32 musl stable 2020.08-1"
	depends on BR2_mips64el
	depends on BR2_mips_64r6
	depends on BR2_MIPS_NABI32
	depends on !BR2_MIPS_SOFT_FLOAT
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the mips64r6el-n32 architecture,
	  using the musl C library. This is a stable version, which
	  means it is using stable and proven versions of gcc, gdb
	  and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64R6EL_N32_UCLIBC_BLEEDING_EDGE
	bool "mips64r6el-n32 uclibc bleeding-edge 2020.08-1"
	depends on BR2_mips64el
	depends on BR2_mips_64r6
	depends on BR2_MIPS_NABI32
	depends on !BR2_MIPS_SOFT_FLOAT
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the mips64r6el-n32 architecture,
	  using the uclibc C library. This is a bleeding-edge
	  version, which means it is using the latest versions of
	  gcc, gdb and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64R6EL_N32_UCLIBC_STABLE
	bool "mips64r6el-n32 uclibc stable 2020.08-1"
	depends on BR2_mips64el
	depends on BR2_mips_64r6
	depends on BR2_MIPS_NABI32
	depends on !BR2_MIPS_SOFT_FLOAT
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the mips64r6el-n32 architecture,
	  using the uclibc C library. This is a stable version, which
	  means it is using stable and proven versions of gcc, gdb
	  and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_NIOS2_GLIBC_BLEEDING_EDGE
	bool "nios2 glibc bleeding-edge 2020.08-1"
	depends on BR2_nios2
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the nios2 architecture, using the
	  glibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_NIOS2_GLIBC_STABLE
	bool "nios2 glibc stable 2020.08-1"
	depends on BR2_nios2
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the nios2 architecture, using the
	  glibc C library. This is a stable version, which means it
	  is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_OPENRISC_MUSL_BLEEDING_EDGE
	bool "openrisc musl bleeding-edge 2020.08-1"
	depends on BR2_or1k
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the openrisc architecture, using the
	  musl C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_OPENRISC_MUSL_STABLE
	bool "openrisc musl stable 2020.08-1"
	depends on BR2_or1k
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the openrisc architecture, using the
	  musl C library. This is a stable version, which means it is
	  using stable and proven versions of gcc, gdb and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_OPENRISC_UCLIBC_BLEEDING_EDGE
	bool "openrisc uclibc bleeding-edge 2020.08-1"
	depends on BR2_or1k
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the openrisc architecture, using the
	  uclibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_OPENRISC_UCLIBC_STABLE
	bool "openrisc uclibc stable 2020.08-1"
	depends on BR2_or1k
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the openrisc architecture, using the
	  uclibc C library. This is a stable version, which means it
	  is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_440FP_GLIBC_BLEEDING_EDGE
	bool "powerpc-440fp glibc bleeding-edge 2020.08-1"
	depends on BR2_powerpc
	depends on BR2_powerpc_440fp
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the powerpc-440fp architecture, using
	  the glibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_440FP_GLIBC_STABLE
	bool "powerpc-440fp glibc stable 2020.08-1"
	depends on BR2_powerpc
	depends on BR2_powerpc_440fp
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the powerpc-440fp architecture, using
	  the glibc C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_440FP_MUSL_BLEEDING_EDGE
	bool "powerpc-440fp musl bleeding-edge 2020.08-1"
	depends on BR2_powerpc
	depends on BR2_powerpc_440fp
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the powerpc-440fp architecture, using
	  the musl C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_440FP_MUSL_STABLE
	bool "powerpc-440fp musl stable 2020.08-1"
	depends on BR2_powerpc
	depends on BR2_powerpc_440fp
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the powerpc-440fp architecture, using
	  the musl C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_440FP_UCLIBC_BLEEDING_EDGE
	bool "powerpc-440fp uclibc bleeding-edge 2020.08-1"
	depends on BR2_powerpc
	depends on BR2_powerpc_440fp
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the powerpc-440fp architecture, using
	  the uclibc C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_440FP_UCLIBC_STABLE
	bool "powerpc-440fp uclibc stable 2020.08-1"
	depends on BR2_powerpc
	depends on BR2_powerpc_440fp
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the powerpc-440fp architecture, using
	  the uclibc C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E300C3_GLIBC_BLEEDING_EDGE
	bool "powerpc-e300c3 glibc bleeding-edge 2020.08-1"
	depends on BR2_powerpc
	depends on BR2_powerpc_e300c3
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the powerpc-e300c3 architecture,
	  using the glibc C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E300C3_GLIBC_STABLE
	bool "powerpc-e300c3 glibc stable 2020.08-1"
	depends on BR2_powerpc
	depends on BR2_powerpc_e300c3
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the powerpc-e300c3 architecture,
	  using the glibc C library. This is a stable version, which
	  means it is using stable and proven versions of gcc, gdb
	  and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E300C3_MUSL_BLEEDING_EDGE
	bool "powerpc-e300c3 musl bleeding-edge 2020.08-1"
	depends on BR2_powerpc
	depends on BR2_powerpc_e300c3
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the powerpc-e300c3 architecture,
	  using the musl C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E300C3_MUSL_STABLE
	bool "powerpc-e300c3 musl stable 2020.08-1"
	depends on BR2_powerpc
	depends on BR2_powerpc_e300c3
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the powerpc-e300c3 architecture,
	  using the musl C library. This is a stable version, which
	  means it is using stable and proven versions of gcc, gdb
	  and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E300C3_UCLIBC_BLEEDING_EDGE
	bool "powerpc-e300c3 uclibc bleeding-edge 2020.08-1"
	depends on BR2_powerpc
	depends on BR2_powerpc_e300c3
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the powerpc-e300c3 architecture,
	  using the uclibc C library. This is a bleeding-edge
	  version, which means it is using the latest versions of
	  gcc, gdb and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E300C3_UCLIBC_STABLE
	bool "powerpc-e300c3 uclibc stable 2020.08-1"
	depends on BR2_powerpc
	depends on BR2_powerpc_e300c3
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the powerpc-e300c3 architecture,
	  using the uclibc C library. This is a stable version, which
	  means it is using stable and proven versions of gcc, gdb
	  and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E500MC_GLIBC_BLEEDING_EDGE
	bool "powerpc-e500mc glibc bleeding-edge 2020.08-1"
	depends on BR2_powerpc
	depends on BR2_powerpc_e500mc
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the powerpc-e500mc architecture,
	  using the glibc C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E500MC_GLIBC_STABLE
	bool "powerpc-e500mc glibc stable 2020.08-1"
	depends on BR2_powerpc
	depends on BR2_powerpc_e500mc
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the powerpc-e500mc architecture,
	  using the glibc C library. This is a stable version, which
	  means it is using stable and proven versions of gcc, gdb
	  and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E500MC_MUSL_BLEEDING_EDGE
	bool "powerpc-e500mc musl bleeding-edge 2020.08-1"
	depends on BR2_powerpc
	depends on BR2_powerpc_e500mc
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the powerpc-e500mc architecture,
	  using the musl C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E500MC_MUSL_STABLE
	bool "powerpc-e500mc musl stable 2020.08-1"
	depends on BR2_powerpc
	depends on BR2_powerpc_e500mc
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the powerpc-e500mc architecture,
	  using the musl C library. This is a stable version, which
	  means it is using stable and proven versions of gcc, gdb
	  and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E500MC_UCLIBC_BLEEDING_EDGE
	bool "powerpc-e500mc uclibc bleeding-edge 2020.08-1"
	depends on BR2_powerpc
	depends on BR2_powerpc_e500mc
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the powerpc-e500mc architecture,
	  using the uclibc C library. This is a bleeding-edge
	  version, which means it is using the latest versions of
	  gcc, gdb and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC_E500MC_UCLIBC_STABLE
	bool "powerpc-e500mc uclibc stable 2020.08-1"
	depends on BR2_powerpc
	depends on BR2_powerpc_e500mc
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the powerpc-e500mc architecture,
	  using the uclibc C library. This is a stable version, which
	  means it is using stable and proven versions of gcc, gdb
	  and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_E5500_GLIBC_BLEEDING_EDGE
	bool "powerpc64-e5500 glibc bleeding-edge 2020.08-1"
	depends on BR2_powerpc64
	depends on BR2_powerpc_e5500
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the powerpc64-e5500 architecture,
	  using the glibc C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_E5500_GLIBC_STABLE
	bool "powerpc64-e5500 glibc stable 2020.08-1"
	depends on BR2_powerpc64
	depends on BR2_powerpc_e5500
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the powerpc64-e5500 architecture,
	  using the glibc C library. This is a stable version, which
	  means it is using stable and proven versions of gcc, gdb
	  and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_E6500_GLIBC_BLEEDING_EDGE
	bool "powerpc64-e6500 glibc bleeding-edge 2020.08-1"
	depends on BR2_powerpc64
	depends on BR2_powerpc_e6500
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the powerpc64-e6500 architecture,
	  using the glibc C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_E6500_GLIBC_STABLE
	bool "powerpc64-e6500 glibc stable 2020.08-1"
	depends on BR2_powerpc64
	depends on BR2_powerpc_e6500
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the powerpc64-e6500 architecture,
	  using the glibc C library. This is a stable version, which
	  means it is using stable and proven versions of gcc, gdb
	  and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_E6500_MUSL_BLEEDING_EDGE
	bool "powerpc64-e6500 musl bleeding-edge 2020.08-1"
	depends on BR2_powerpc64
	depends on BR2_powerpc_e6500
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the powerpc64-e6500 architecture,
	  using the musl C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_E6500_MUSL_STABLE
	bool "powerpc64-e6500 musl stable 2020.08-1"
	depends on BR2_powerpc64
	depends on BR2_powerpc_e6500
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the powerpc64-e6500 architecture,
	  using the musl C library. This is a stable version, which
	  means it is using stable and proven versions of gcc, gdb
	  and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_POWER8_GLIBC_BLEEDING_EDGE
	bool "powerpc64-power8 glibc bleeding-edge 2020.08-1"
	depends on BR2_powerpc64
	depends on BR2_powerpc_power8
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the powerpc64-power8 architecture,
	  using the glibc C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_POWER8_GLIBC_STABLE
	bool "powerpc64-power8 glibc stable 2020.08-1"
	depends on BR2_powerpc64
	depends on BR2_powerpc_power8
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the powerpc64-power8 architecture,
	  using the glibc C library. This is a stable version, which
	  means it is using stable and proven versions of gcc, gdb
	  and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_POWER8_MUSL_BLEEDING_EDGE
	bool "powerpc64-power8 musl bleeding-edge 2020.08-1"
	depends on BR2_powerpc64
	depends on BR2_powerpc_power8
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the powerpc64-power8 architecture,
	  using the musl C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64_POWER8_MUSL_STABLE
	bool "powerpc64-power8 musl stable 2020.08-1"
	depends on BR2_powerpc64
	depends on BR2_powerpc_power8
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the powerpc64-power8 architecture,
	  using the musl C library. This is a stable version, which
	  means it is using stable and proven versions of gcc, gdb
	  and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64LE_POWER8_GLIBC_BLEEDING_EDGE
	bool "powerpc64le-power8 glibc bleeding-edge 2020.08-1"
	depends on BR2_powerpc64le
	depends on BR2_powerpc_power8
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the powerpc64le-power8 architecture,
	  using the glibc C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64LE_POWER8_GLIBC_STABLE
	bool "powerpc64le-power8 glibc stable 2020.08-1"
	depends on BR2_powerpc64le
	depends on BR2_powerpc_power8
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the powerpc64le-power8 architecture,
	  using the glibc C library. This is a stable version, which
	  means it is using stable and proven versions of gcc, gdb
	  and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64LE_POWER8_MUSL_BLEEDING_EDGE
	bool "powerpc64le-power8 musl bleeding-edge 2020.08-1"
	depends on BR2_powerpc64le
	depends on BR2_powerpc_power8
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the powerpc64le-power8 architecture,
	  using the musl C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_POWERPC64LE_POWER8_MUSL_STABLE
	bool "powerpc64le-power8 musl stable 2020.08-1"
	depends on BR2_powerpc64le
	depends on BR2_powerpc_power8
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the powerpc64le-power8 architecture,
	  using the musl C library. This is a stable version, which
	  means it is using stable and proven versions of gcc, gdb
	  and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_RISCV32_ILP32D_GLIBC_BLEEDING_EDGE
	bool "riscv32-ilp32d glibc bleeding-edge 2020.08-1"
	depends on BR2_riscv
	depends on BR2_riscv_g
	depends on BR2_RISCV_32
	depends on BR2_RISCV_ABI_ILP32D
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the riscv32-ilp32d architecture,
	  using the glibc C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_RISCV64_GLIBC_BLEEDING_EDGE
	bool "riscv64 glibc bleeding-edge 2020.08-1"
	depends on BR2_riscv
	depends on BR2_riscv_g
	depends on BR2_RISCV_64
	depends on BR2_RISCV_ABI_LP64
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the riscv64 architecture, using the
	  glibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_RISCV64_MUSL_BLEEDING_EDGE
	bool "riscv64 musl bleeding-edge 2020.08-1"
	depends on BR2_riscv
	depends on BR2_riscv_g
	depends on BR2_RISCV_64
	depends on BR2_RISCV_ABI_LP64
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the riscv64 architecture, using the
	  musl C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4_GLIBC_BLEEDING_EDGE
	bool "sh-sh4 glibc bleeding-edge 2020.08-1"
	depends on BR2_sh
	depends on BR2_sh4
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the sh-sh4 architecture, using the
	  glibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4_GLIBC_STABLE
	bool "sh-sh4 glibc stable 2020.08-1"
	depends on BR2_sh
	depends on BR2_sh4
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the sh-sh4 architecture, using the
	  glibc C library. This is a stable version, which means it
	  is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4_MUSL_BLEEDING_EDGE
	bool "sh-sh4 musl bleeding-edge 2020.08-1"
	depends on BR2_sh
	depends on BR2_sh4
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the sh-sh4 architecture, using the
	  musl C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4_MUSL_STABLE
	bool "sh-sh4 musl stable 2020.08-1"
	depends on BR2_sh
	depends on BR2_sh4
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the sh-sh4 architecture, using the
	  musl C library. This is a stable version, which means it is
	  using stable and proven versions of gcc, gdb and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4_UCLIBC_BLEEDING_EDGE
	bool "sh-sh4 uclibc bleeding-edge 2020.08-1"
	depends on BR2_sh
	depends on BR2_sh4
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the sh-sh4 architecture, using the
	  uclibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4_UCLIBC_STABLE
	bool "sh-sh4 uclibc stable 2020.08-1"
	depends on BR2_sh
	depends on BR2_sh4
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the sh-sh4 architecture, using the
	  uclibc C library. This is a stable version, which means it
	  is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4AEB_GLIBC_BLEEDING_EDGE
	bool "sh-sh4aeb glibc bleeding-edge 2020.08-1"
	depends on BR2_sh
	depends on BR2_sh4aeb
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the sh-sh4aeb architecture, using the
	  glibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4AEB_GLIBC_STABLE
	bool "sh-sh4aeb glibc stable 2020.08-1"
	depends on BR2_sh
	depends on BR2_sh4aeb
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the sh-sh4aeb architecture, using the
	  glibc C library. This is a stable version, which means it
	  is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4AEB_MUSL_BLEEDING_EDGE
	bool "sh-sh4aeb musl bleeding-edge 2020.08-1"
	depends on BR2_sh
	depends on BR2_sh4aeb
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the sh-sh4aeb architecture, using the
	  musl C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4AEB_MUSL_STABLE
	bool "sh-sh4aeb musl stable 2020.08-1"
	depends on BR2_sh
	depends on BR2_sh4aeb
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the sh-sh4aeb architecture, using the
	  musl C library. This is a stable version, which means it is
	  using stable and proven versions of gcc, gdb and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SPARC64_GLIBC_BLEEDING_EDGE
	bool "sparc64 glibc bleeding-edge 2020.08-1"
	depends on BR2_sparc64
	depends on BR2_sparc_v9
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the sparc64 architecture, using the
	  glibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SPARC64_GLIBC_STABLE
	bool "sparc64 glibc stable 2020.08-1"
	depends on BR2_sparc64
	depends on BR2_sparc_v9
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the sparc64 architecture, using the
	  glibc C library. This is a stable version, which means it
	  is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SPARCV8_UCLIBC_BLEEDING_EDGE
	bool "sparcv8 uclibc bleeding-edge 2020.08-1"
	depends on BR2_sparc
	depends on BR2_sparc_v8
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the sparcv8 architecture, using the
	  uclibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SPARCV8_UCLIBC_STABLE
	bool "sparcv8 uclibc stable 2020.08-1"
	depends on BR2_sparc
	depends on BR2_sparc_v8
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the sparcv8 architecture, using the
	  uclibc C library. This is a stable version, which means it
	  is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_GLIBC_BLEEDING_EDGE
	bool "x86-64-core-i7 glibc bleeding-edge 2020.08-1"
	depends on BR2_x86_64
	depends on BR2_X86_CPU_HAS_MMX
	depends on BR2_X86_CPU_HAS_SSE
	depends on BR2_X86_CPU_HAS_SSE2
	depends on BR2_X86_CPU_HAS_SSE3
	depends on BR2_X86_CPU_HAS_SSSE3
	depends on BR2_X86_CPU_HAS_SSE4
	depends on BR2_X86_CPU_HAS_SSE42
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the x86-64-core-i7 architecture,
	  using the glibc C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_GLIBC_STABLE
	bool "x86-64-core-i7 glibc stable 2020.08-1"
	depends on BR2_x86_64
	depends on BR2_X86_CPU_HAS_MMX
	depends on BR2_X86_CPU_HAS_SSE
	depends on BR2_X86_CPU_HAS_SSE2
	depends on BR2_X86_CPU_HAS_SSE3
	depends on BR2_X86_CPU_HAS_SSSE3
	depends on BR2_X86_CPU_HAS_SSE4
	depends on BR2_X86_CPU_HAS_SSE42
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the x86-64-core-i7 architecture,
	  using the glibc C library. This is a stable version, which
	  means it is using stable and proven versions of gcc, gdb
	  and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_MUSL_BLEEDING_EDGE
	bool "x86-64-core-i7 musl bleeding-edge 2020.08-1"
	depends on BR2_x86_64
	depends on BR2_X86_CPU_HAS_MMX
	depends on BR2_X86_CPU_HAS_SSE
	depends on BR2_X86_CPU_HAS_SSE2
	depends on BR2_X86_CPU_HAS_SSE3
	depends on BR2_X86_CPU_HAS_SSSE3
	depends on BR2_X86_CPU_HAS_SSE4
	depends on BR2_X86_CPU_HAS_SSE42
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the x86-64-core-i7 architecture,
	  using the musl C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_MUSL_STABLE
	bool "x86-64-core-i7 musl stable 2020.08-1"
	depends on BR2_x86_64
	depends on BR2_X86_CPU_HAS_MMX
	depends on BR2_X86_CPU_HAS_SSE
	depends on BR2_X86_CPU_HAS_SSE2
	depends on BR2_X86_CPU_HAS_SSE3
	depends on BR2_X86_CPU_HAS_SSSE3
	depends on BR2_X86_CPU_HAS_SSE4
	depends on BR2_X86_CPU_HAS_SSE42
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the x86-64-core-i7 architecture,
	  using the musl C library. This is a stable version, which
	  means it is using stable and proven versions of gcc, gdb
	  and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_UCLIBC_BLEEDING_EDGE
	bool "x86-64-core-i7 uclibc bleeding-edge 2020.08-1"
	depends on BR2_x86_64
	depends on BR2_X86_CPU_HAS_MMX
	depends on BR2_X86_CPU_HAS_SSE
	depends on BR2_X86_CPU_HAS_SSE2
	depends on BR2_X86_CPU_HAS_SSE3
	depends on BR2_X86_CPU_HAS_SSSE3
	depends on BR2_X86_CPU_HAS_SSE4
	depends on BR2_X86_CPU_HAS_SSE42
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the x86-64-core-i7 architecture,
	  using the uclibc C library. This is a bleeding-edge
	  version, which means it is using the latest versions of
	  gcc, gdb and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_UCLIBC_STABLE
	bool "x86-64-core-i7 uclibc stable 2020.08-1"
	depends on BR2_x86_64
	depends on BR2_X86_CPU_HAS_MMX
	depends on BR2_X86_CPU_HAS_SSE
	depends on BR2_X86_CPU_HAS_SSE2
	depends on BR2_X86_CPU_HAS_SSE3
	depends on BR2_X86_CPU_HAS_SSSE3
	depends on BR2_X86_CPU_HAS_SSE4
	depends on BR2_X86_CPU_HAS_SSE42
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the x86-64-core-i7 architecture,
	  using the uclibc C library. This is a stable version, which
	  means it is using stable and proven versions of gcc, gdb
	  and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_CORE2_GLIBC_BLEEDING_EDGE
	bool "x86-core2 glibc bleeding-edge 2020.08-1"
	depends on BR2_i386
	depends on BR2_X86_CPU_HAS_MMX
	depends on BR2_X86_CPU_HAS_SSE
	depends on BR2_X86_CPU_HAS_SSE2
	depends on BR2_X86_CPU_HAS_SSE3
	depends on BR2_X86_CPU_HAS_SSSE3
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the x86-core2 architecture, using the
	  glibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_CORE2_GLIBC_STABLE
	bool "x86-core2 glibc stable 2020.08-1"
	depends on BR2_i386
	depends on BR2_X86_CPU_HAS_MMX
	depends on BR2_X86_CPU_HAS_SSE
	depends on BR2_X86_CPU_HAS_SSE2
	depends on BR2_X86_CPU_HAS_SSE3
	depends on BR2_X86_CPU_HAS_SSSE3
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the x86-core2 architecture, using the
	  glibc C library. This is a stable version, which means it
	  is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_CORE2_MUSL_BLEEDING_EDGE
	bool "x86-core2 musl bleeding-edge 2020.08-1"
	depends on BR2_i386
	depends on BR2_X86_CPU_HAS_MMX
	depends on BR2_X86_CPU_HAS_SSE
	depends on BR2_X86_CPU_HAS_SSE2
	depends on BR2_X86_CPU_HAS_SSE3
	depends on BR2_X86_CPU_HAS_SSSE3
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the x86-core2 architecture, using the
	  musl C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_CORE2_MUSL_STABLE
	bool "x86-core2 musl stable 2020.08-1"
	depends on BR2_i386
	depends on BR2_X86_CPU_HAS_MMX
	depends on BR2_X86_CPU_HAS_SSE
	depends on BR2_X86_CPU_HAS_SSE2
	depends on BR2_X86_CPU_HAS_SSE3
	depends on BR2_X86_CPU_HAS_SSSE3
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the x86-core2 architecture, using the
	  musl C library. This is a stable version, which means it is
	  using stable and proven versions of gcc, gdb and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_CORE2_UCLIBC_BLEEDING_EDGE
	bool "x86-core2 uclibc bleeding-edge 2020.08-1"
	depends on BR2_i386
	depends on BR2_X86_CPU_HAS_MMX
	depends on BR2_X86_CPU_HAS_SSE
	depends on BR2_X86_CPU_HAS_SSE2
	depends on BR2_X86_CPU_HAS_SSE3
	depends on BR2_X86_CPU_HAS_SSSE3
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the x86-core2 architecture, using the
	  uclibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_CORE2_UCLIBC_STABLE
	bool "x86-core2 uclibc stable 2020.08-1"
	depends on BR2_i386
	depends on BR2_X86_CPU_HAS_MMX
	depends on BR2_X86_CPU_HAS_SSE
	depends on BR2_X86_CPU_HAS_SSE2
	depends on BR2_X86_CPU_HAS_SSE3
	depends on BR2_X86_CPU_HAS_SSSE3
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the x86-core2 architecture, using the
	  uclibc C library. This is a stable version, which means it
	  is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_I686_GLIBC_BLEEDING_EDGE
	bool "x86-i686 glibc bleeding-edge 2020.08-1"
	depends on BR2_i386
	depends on !BR2_x86_i486
	depends on !BR2_x86_i586
	depends on !BR2_x86_x1000
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the x86-i686 architecture, using the
	  glibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_I686_GLIBC_STABLE
	bool "x86-i686 glibc stable 2020.08-1"
	depends on BR2_i386
	depends on !BR2_x86_i486
	depends on !BR2_x86_i586
	depends on !BR2_x86_x1000
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_SSP
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Bootlin toolchain for the x86-i686 architecture, using the
	  glibc C library. This is a stable version, which means it
	  is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_I686_MUSL_BLEEDING_EDGE
	bool "x86-i686 musl bleeding-edge 2020.08-1"
	depends on BR2_i386
	depends on !BR2_x86_i486
	depends on !BR2_x86_i586
	depends on !BR2_x86_x1000
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the x86-i686 architecture, using the
	  musl C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_I686_MUSL_STABLE
	bool "x86-i686 musl stable 2020.08-1"
	depends on BR2_i386
	depends on !BR2_x86_i486
	depends on !BR2_x86_i586
	depends on !BR2_x86_x1000
	depends on BR2_USE_MMU
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_MUSL
	help
	  Bootlin toolchain for the x86-i686 architecture, using the
	  musl C library. This is a stable version, which means it is
	  using stable and proven versions of gcc, gdb and binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_I686_UCLIBC_BLEEDING_EDGE
	bool "x86-i686 uclibc bleeding-edge 2020.08-1"
	depends on BR2_i386
	depends on !BR2_x86_i486
	depends on !BR2_x86_i586
	depends on !BR2_x86_x1000
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the x86-i686 architecture, using the
	  uclibc C library. This is a bleeding-edge version, which
	  means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_I686_UCLIBC_STABLE
	bool "x86-i686 uclibc stable 2020.08-1"
	depends on BR2_i386
	depends on !BR2_x86_i486
	depends on !BR2_x86_i586
	depends on !BR2_x86_x1000
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the x86-i686 architecture, using the
	  uclibc C library. This is a stable version, which means it
	  is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_XTENSA_LX60_UCLIBC_BLEEDING_EDGE
	bool "xtensa-lx60 uclibc bleeding-edge 2020.08-1"
	depends on BR2_xtensa
	depends on BR2_xtensa_fsf
	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the xtensa-lx60 architecture, using
	  the uclibc C library. This is a bleeding-edge version,
	  which means it is using the latest versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_XTENSA_LX60_UCLIBC_STABLE
	bool "xtensa-lx60 uclibc stable 2020.08-1"
	depends on BR2_xtensa
	depends on BR2_xtensa_fsf
	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
	select BR2_USE_WCHAR
	select BR2_ENABLE_LOCALE
	select BR2_INSTALL_LIBSTDCPP
	select BR2_TOOLCHAIN_HAS_FORTRAN
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS
	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	help
	  Bootlin toolchain for the xtensa-lx60 architecture, using
	  the uclibc C library. This is a stable version, which means
	  it is using stable and proven versions of gcc, gdb and
	  binutils.

	  https://toolchains.bootlin.com/

endchoice
endif
