[LEDE-DEV] [PATCH] toolchain: Rework external toolchain libc selection
Felix Fietkau
nbd at nbd.name
Sat Sep 3 04:54:59 PDT 2016
On 2016-09-02 23:57, Florian Fainelli wrote:
> Make it a choice menu which offers the 3 C libraries we know about: glibc,
> uClibc and musl. While at it, make it possible for the external toolchain libc
> to select USE_GLIBC, USE_UCLIBC or USE_MUSL which is used by several packages
> to conditionally include specific CFLAGS (e.g: iproute2).
>
> Because USE_GLIBC et al. can now be selected by external toolchains, we need to
> restrict the per-libc menus to check on !EXTERNAL_TOOLCHAIN.
>
> Signed-off-by: Florian Fainelli <f.fainelli at gmail.com>
> ---
> toolchain/Config.in | 22 +++++++++++++++++++---
> toolchain/glibc/Config.in | 2 +-
> toolchain/uClibc/Config.in | 2 +-
> 3 files changed, 21 insertions(+), 5 deletions(-)
>
> diff --git a/toolchain/Config.in b/toolchain/Config.in
> index 75dc5361a682..8bb2d9be51e2 100644
> --- a/toolchain/Config.in
> +++ b/toolchain/Config.in
> @@ -96,17 +96,33 @@ menuconfig EXTERNAL_TOOLCHAIN
> default "/opt/cross/powerpc-unknown-linux-gnu" if powerpc
> default "/opt/cross/x86_64-unknown-linux-gnu" if x86_64
>
> - config TOOLCHAIN_LIBC
> - string
> + choice TOOLCHAIN_LIBC
> prompt "Toolchain libc" if DEVEL
> depends on EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
> - default "uclibc"
> + default EXTERNAL_TOOLCHAIN_LIBC_USE_UCLIBC
> help
> Specify the libc type used by the external toolchain. The given value
> is passed as -m flag to all gcc and g++ invocations. This is mainly
> intended for multilib toolchains which support glibc and uclibc at
> the same time. If no value is specified, no -m flag is passed.
>
> + config EXTERNAL_TOOLCHAIN_LIBC_USE_GLIBC
> + bool "glibc"
> + select USE_GLIBC
> +
> + config EXTERNAL_TOOLCHAIN_LIBC_USE_UCLIBC
> + bool "uClibc"
> + select USE_UCLIBC
> + depends on !(aarch64 || aarch64_be)
> +
> + config EXTERNAL_TOOLCHAIN_LIBC_USE_MUSL
> + bool "musl"
> + select USE_MUSL
> + depends on BROKEN
Why mark musl as broken? And what about the uclibc vs uClibc difference?
And while you're changing the code, I think it's time to make musl the
default, since it's been the default for the built-in toolchain for a
long time now.
- Felix
More information about the Lede-dev
mailing list