[LEDE-DEV] [PATCH] toolchain: Rework external toolchain libc selection
Florian Fainelli
f.fainelli at gmail.com
Tue Sep 6 10:11:00 PDT 2016
On 09/03/2016 04:54 AM, Felix Fietkau wrote:
> 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?
No particular reason I guess.
> And what about the uclibc vs uClibc difference?
That is to be consistent with the rest of the file where the C is
capitalized.
> 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.
Sure, that makes sense.
Thanks!
--
Florian
More information about the Lede-dev
mailing list