kumquat-buildroot/package/glibc/Config.in
Arnout Vandecappelle (Essensium/Mind) 90932b407c toolchain: invert glibc <-> !static dependency
Currently, glibc depends on !BR2_STATIC_LIBS in all the toolchain
variants.

However, for some architectures, glibc is the only supported libc. In
commit 3b3105328e ("Config.in: only
allow BR2_STATIC_LIBS on supported libc/arch"), we implemented a fix
to avoid configurations were BR2_STATIC_LIBS=y with an architecture
already supported by glibc, because these configurations are
impossible. This commit 3b3105328e
prevents from selecting BR2_STATIC_LIBS=y when the C library used for
the internal toolchain backend is glibc.

However, it introduces a discrepency between how this topic is handled
for internal and external toolchains:

 - For internal toolchains, we prevent BR2_STATIC_LIBS=y if glibc is
   chosen.

 - For external toolchains, we allow BR2_STATIC_LIBS=y in all cases,
   and it's each glibc toolchain that has !BR2_STATIC_LIBS

This commit addresses this discrepency by preventing BR2_STATIC_LIBS=y
if glibc is chosen in all cases.

Thanks to this, we can remove the !BR2_STATIC_LIBS dependency on both
the glibc package, and all glibc external toolchains.

Fixes: https://bugs.busybox.net/show_bug.cgi?id=14256

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
[Thomas: update to master, fix the gen-bootlin-toolchains script, add
a comment in the static/shared choice to indicate that static is
supported only with uclibc or musl]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-27 11:11:19 +02:00

72 lines
2.1 KiB
Plaintext

config BR2_PACKAGE_GLIBC_ARCH_SUPPORTS
bool
default y if BR2_arm
default y if BR2_armeb
default y if BR2_aarch64
default y if BR2_aarch64_be
default y if BR2_i386
default y if BR2_mips
default y if BR2_mipsel
default y if BR2_mips64
default y if BR2_mips64el
default y if BR2_or1k
default y if BR2_powerpc
default y if BR2_powerpc64
default y if BR2_powerpc_power8
default y if BR2_riscv
default y if BR2_s390x
default y if BR2_sh
default y if BR2_sparc64
default y if BR2_x86_64
default y if BR2_microblaze
default y if BR2_nios2
default y if BR2_arc && BR2_ARC_ATOMIC_EXT
default y if BR2_csky
depends on !BR2_powerpc_SPE
depends on BR2_RISCV_ISA_RVA || !BR2_riscv
depends on BR2_USE_MMU
config BR2_PACKAGE_GLIBC_SUPPORTS
bool
default y if BR2_PACKAGE_GLIBC_ARCH_SUPPORTS
# Make sure to keep these dependencies in sync with the
# Config.in comments in
# toolchain/toolchain-buildroot/Config.in
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 || !BR2_powerpc64le
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5 || !BR2_MIPS_NAN_2008
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0 || !BR2_RISCV_64
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1 || !BR2_arc
if BR2_TOOLCHAIN_BUILDROOT_GLIBC
comment "Glibc Options"
config BR2_PACKAGE_GLIBC
bool
default y
select BR2_PACKAGE_LINUX_HEADERS
select BR2_TOOLCHAIN_HAS_SSP if BR2_PACKAGE_HOST_BINUTILS_SUPPORTS_CFI
help
https://www.gnu.org/software/libc/
config BR2_PACKAGE_GLIBC_KERNEL_COMPAT
bool "Enable compatibility shims to run on older kernels"
help
Say 'y' here if you plan on running your system on a kernel
older than the version used for the toolchain headers.
Enabling those compatibility shims may generate a slightly
bigger and slightly slower glibc library.
The oldest supported kernel version depends on the
architecture.
config BR2_PACKAGE_GLIBC_UTILS
bool "Install glibc utilities"
help
Enabling this option will compile and install the getconf,
ldconfig, ldd and locale glibc utilities for the target.
endif # BR2_TOOLCHAIN_BUILDROOT_GLIBC