Skip to content

Commit

Permalink
toolchain: Rework external toolchain libc selection
Browse files Browse the repository at this point in the history
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.

While at it, make musl the default C library for external toolchain to match
the internal toolchain.

Signed-off-by: Florian Fainelli <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
  • Loading branch information
ffainelli authored and nbd168 committed Sep 28, 2016
1 parent fb58693 commit c8e6815
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 5 deletions.
27 changes: 24 additions & 3 deletions toolchain/Config.in
Original file line number Diff line number Diff line change
Expand Up @@ -96,17 +96,38 @@ 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_TYPE
prompt "Toolchain libc" if DEVEL
depends on EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
default "uclibc"
default EXTERNAL_TOOLCHAIN_LIBC_USE_MUSL
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

endchoice

config TOOLCHAIN_LIBC
string
depends on EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
default "glibc" if EXTERNAL_TOOLCHAIN_LIBC_USE_GLIBC
default "uclibc" if EXTERNAL_TOOLCHAIN_LIBC_USE_UCLIBC
default "musl" if EXTERNAL_TOOLCHAIN_LIBC_USE_MUSL

config TOOLCHAIN_BIN_PATH
string
prompt "Toolchain program path" if DEVEL
Expand Down
2 changes: 1 addition & 1 deletion toolchain/glibc/Config.in
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
choice
prompt "glibc version"
depends on TOOLCHAINOPTS && USE_GLIBC
depends on TOOLCHAINOPTS && USE_GLIBC && !EXTERNAL_TOOLCHAIN
default GLIBC_USE_VERSION_2_24
help
Select the version of glibc you wish to use.
Expand Down
2 changes: 1 addition & 1 deletion toolchain/uClibc/Config.in
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@

config UCLIBC_ENABLE_DEBUG
bool "Build with debug information"
depends on TOOLCHAINOPTS && USE_UCLIBC
depends on TOOLCHAINOPTS && USE_UCLIBC && !EXTERNAL_TOOLCHAIN
default n

0 comments on commit c8e6815

Please sign in to comment.