diff options
author | Florian Fainelli <f.fainelli@gmail.com> | 2016-09-19 12:59:32 -0700 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2016-09-28 08:39:01 +0200 |
commit | c8e68150bfe2578ce7b0681465d08c5f01823db4 (patch) | |
tree | f1d3f045a63ea5734939c0527daf9eed50e07d12 | |
parent | fb586939ccf16717eb74cd0478f53dabefb16b0c (diff) | |
download | upstream-c8e68150bfe2578ce7b0681465d08c5f01823db4.tar.gz upstream-c8e68150bfe2578ce7b0681465d08c5f01823db4.tar.bz2 upstream-c8e68150bfe2578ce7b0681465d08c5f01823db4.zip |
toolchain: Rework external toolchain libc selection
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 <f.fainelli@gmail.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
-rw-r--r-- | toolchain/Config.in | 27 | ||||
-rw-r--r-- | toolchain/glibc/Config.in | 2 | ||||
-rw-r--r-- | toolchain/uClibc/Config.in | 2 |
3 files changed, 26 insertions, 5 deletions
diff --git a/toolchain/Config.in b/toolchain/Config.in index 75dc5361a6..b53b8e63ec 100644 --- a/toolchain/Config.in +++ b/toolchain/Config.in @@ -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 diff --git a/toolchain/glibc/Config.in b/toolchain/glibc/Config.in index 036604f4a7..5adbeb6f82 100644 --- a/toolchain/glibc/Config.in +++ b/toolchain/glibc/Config.in @@ -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. diff --git a/toolchain/uClibc/Config.in b/toolchain/uClibc/Config.in index 5793bb779f..3bcb0037e9 100644 --- a/toolchain/uClibc/Config.in +++ b/toolchain/uClibc/Config.in @@ -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 |