4057e36ca9
This is perhaps the most controversial change for Buildroot that can be written in a two-liner. Historically, we have used uClibc as our default C library, as Buildroot was created initially as a test-bed for uClibc, and also because uClibc made a lot of sense for embedded Linux systems, due to its smaller size and fine-grained configurability. Since then, the landscape of embedded Linux systems has changed. Even though Buildroot happily supports really low-end devices, the vast majority of Buildroot users are quite certainly running the resulting system on a reasonably powerful platform, with significant amount of RAM and storage. In this context, the benefits of uClibc are no longer that much relevant, and glibc causes less "troubles". Therefore, this patch proposes to use glibc as our default C library when using the internal toolchain backend instead of uClibc. Of course, we will keep the support for uClibc, which remains an important C library choice, for space-constrained systems, or simply for architectures that are not supported by glibc. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Acked-by: Yann E. MORIN <yann.morin.1998@free.fr> Acked-by: Peter Korsgaard <peter@korsgaard.com> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
95 lines
2.9 KiB
Plaintext
95 lines
2.9 KiB
Plaintext
# Config entries for internal toolchain backend
|
|
|
|
if BR2_TOOLCHAIN_BUILDROOT
|
|
|
|
comment "Toolchain Buildroot Options"
|
|
|
|
config BR2_TOOLCHAIN_BUILDROOT_VENDOR
|
|
string "custom toolchain vendor name"
|
|
default "buildroot"
|
|
help
|
|
This option allows to customize the "vendor" part of the
|
|
toolchain tuple, where the toolchain tuple has the form
|
|
<arch>-<vendor>-<os>-<libc>. The default value, "buildroot",
|
|
is fine for most cases, except in very specific situations
|
|
where gcc might make different decisions based on the vendor
|
|
part of the tuple. The value "unknown" is not allowed, as the
|
|
cross-compiling toolchain might then be confused with the
|
|
native toolchain when the target and host architecture are
|
|
identical. The value can not be empty either.
|
|
|
|
If you're not sure, just leave the default "buildroot" value.
|
|
|
|
choice
|
|
prompt "C library"
|
|
default BR2_TOOLCHAIN_BUILDROOT_GLIBC
|
|
|
|
config BR2_TOOLCHAIN_BUILDROOT_UCLIBC
|
|
bool "uClibc-ng"
|
|
depends on BR2_PACKAGE_UCLIBC_SUPPORTS
|
|
select BR2_TOOLCHAIN_USES_UCLIBC
|
|
help
|
|
This option selects uClibc-ng as the C library for the
|
|
cross-compilation toolchain.
|
|
|
|
http://uclibc-ng.org
|
|
|
|
config BR2_TOOLCHAIN_BUILDROOT_GLIBC
|
|
bool "glibc"
|
|
depends on BR2_PACKAGE_GLIBC_SUPPORTS
|
|
select BR2_TOOLCHAIN_USES_GLIBC
|
|
help
|
|
This option selects glibc as the C library for the
|
|
cross-compilation toolchain.
|
|
|
|
http://www.gnu.org/software/libc/
|
|
|
|
comment "glibc needs a toolchain w/ kernel headers >= 3.2"
|
|
depends on BR2_PACKAGE_GLIBC_ARCH_SUPPORTS
|
|
depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
|
|
|
|
# glibc >= 2.26 require kernel headers >= 3.10 on powerpc64le.
|
|
comment "glibc on powerpc64le needs a toolchain w/ headers >= 3.10"
|
|
depends on BR2_powerpc64le
|
|
depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10
|
|
|
|
# Support for MIPS NAN2008 needs headers >= 4.5
|
|
comment "glibc on MIPS w/ NAN2008 needs a toolchain w/ headers >= 4.5"
|
|
depends on BR2_MIPS_NAN_2008
|
|
depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5
|
|
|
|
comment "glibc on RISC-V 64-bit needs a toolchain w/ headers >= 5.0"
|
|
depends on BR2_RISCV_64
|
|
depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0
|
|
|
|
comment "glibc on ARC needs a toolchain w/ headers >= 5.1"
|
|
depends on BR2_arc
|
|
depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1
|
|
|
|
config BR2_TOOLCHAIN_BUILDROOT_MUSL
|
|
bool "musl"
|
|
depends on BR2_PACKAGE_MUSL_SUPPORTS
|
|
select BR2_TOOLCHAIN_USES_MUSL
|
|
help
|
|
This option selects musl as the C library for the
|
|
cross-compilation toolchain.
|
|
|
|
https://www.musl-libc.org/
|
|
|
|
endchoice
|
|
|
|
config BR2_TOOLCHAIN_BUILDROOT_LIBC
|
|
string
|
|
default "uclibc" if BR2_TOOLCHAIN_BUILDROOT_UCLIBC
|
|
default "glibc" if BR2_TOOLCHAIN_BUILDROOT_GLIBC
|
|
default "musl" if BR2_TOOLCHAIN_BUILDROOT_MUSL
|
|
|
|
source "package/linux-headers/Config.in.host"
|
|
source "package/linux-headers/Config.in"
|
|
source "package/musl/Config.in"
|
|
source "package/uclibc/Config.in"
|
|
source "package/glibc/Config.in"
|
|
source "package/binutils/Config.in.host"
|
|
source "package/gcc/Config.in.host"
|
|
endif
|