aboutsummaryrefslogtreecommitdiff
path: root/toolchain
diff options
context:
space:
mode:
authorGravatar Thomas Petazzoni <thomas.petazzoni@free-electrons.com>2013-06-30 21:29:09 +0200
committerGravatar Peter Korsgaard <jacmet@sunsite.dk>2013-07-04 09:08:42 +0200
commit381616e77ae7610f8fe07b9e0eb193d613fb3bf7 (patch)
tree515b70bd7c2d467ec903e0002f1766c17800b045 /toolchain
parent12d1aa4b69614f6499847758294f8a40f1611710 (diff)
downloadbuildroot-381616e77ae7610f8fe07b9e0eb193d613fb3bf7.tar.gz
buildroot-381616e77ae7610f8fe07b9e0eb193d613fb3bf7.tar.bz2
Introduce BR2_TOOLCHAIN_USES_{UCLIBC, GLIBC}
Currently, when we need to do a conditional on the type of C library used, we need to take into account the three toolchain backends. As we are going to add eglibc support to the Buildroot toolchain backend, it would become even uglier, so this patch introduces two new hidden options: BR2_TOOLCHAIN_USES_UCLIBC and BR2_TOOLCHAIN_USES_GLIBC, that exist regardless of the toolchain backend. The entire Buildroot code base is converted to use those options. Note that we have intentionally created only one option (BR2_TOOLCHAIN_USES_GLIBC) for both glibc and eglibc, since they are essentially the same, as far as Buildroot is concerned. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Diffstat (limited to 'toolchain')
-rw-r--r--toolchain/Config.in16
-rw-r--r--toolchain/toolchain-common.in8
-rw-r--r--toolchain/toolchain-crosstool-ng/Config.in11
-rw-r--r--toolchain/toolchain-external/Config.in9
4 files changed, 23 insertions, 21 deletions
diff --git a/toolchain/Config.in b/toolchain/Config.in
index 665618c7b3..448bccc796 100644
--- a/toolchain/Config.in
+++ b/toolchain/Config.in
@@ -1,4 +1,19 @@
menu "Toolchain"
+
+# Should be selected for glibc or eglibc
+config BR2_TOOLCHAIN_USES_GLIBC
+ bool
+ select BR2_LARGEFILE
+ select BR2_INET_IPV6
+ select BR2_USE_WCHAR
+ select BR2_ENABLE_LOCALE
+ select BR2_TOOLCHAIN_HAS_THREADS
+ select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
+ select BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
+
+config BR2_TOOLCHAIN_USES_UCLIBC
+ bool
+
choice
prompt "Toolchain type"
help
@@ -12,6 +27,7 @@ config BR2_TOOLCHAIN_BUILDROOT
bool "Buildroot toolchain"
depends on !BR2_microblaze && !BR2_aarch64
select BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
+ select BR2_TOOLCHAIN_USES_UCLIBC
config BR2_TOOLCHAIN_EXTERNAL
bool "External toolchain"
diff --git a/toolchain/toolchain-common.in b/toolchain/toolchain-common.in
index 208ccac86a..7c9b842cca 100644
--- a/toolchain/toolchain-common.in
+++ b/toolchain/toolchain-common.in
@@ -62,9 +62,7 @@ config BR2_GENERATE_LOCALE
# build time.
depends on \
BR2_TOOLCHAIN_BUILDROOT || \
- BR2_TOOLCHAIN_EXTERNAL_GLIBC || \
- BR2_TOOLCHAIN_CTNG_eglibc || \
- BR2_TOOLCHAIN_CTNG_glibc
+ BR2_TOOLCHAIN_USES_GLIBC
help
Generate support for a list of locales. Locales can be
specified with or without encoding, when no encoding is
@@ -79,9 +77,7 @@ config BR2_GENERATE_LOCALE
config BR2_NEEDS_GETTEXT
bool
- default y if BR2_TOOLCHAIN_BUILDROOT
- default y if BR2_TOOLCHAIN_EXTERNAL_UCLIBC
- default y if BR2_TOOLCHAIN_CTNG_uClibc
+ default y if BR2_TOOLCHAIN_USES_UCLIBC
config BR2_NEEDS_GETTEXT_IF_LOCALE
bool
diff --git a/toolchain/toolchain-crosstool-ng/Config.in b/toolchain/toolchain-crosstool-ng/Config.in
index 93c12e9c9f..7cfd8c27b5 100644
--- a/toolchain/toolchain-crosstool-ng/Config.in
+++ b/toolchain/toolchain-crosstool-ng/Config.in
@@ -7,27 +7,22 @@ choice
config BR2_TOOLCHAIN_CTNG_uClibc
bool "uClibc"
+ select BR2_TOOLCHAIN_USES_UCLIBC
# Although eglibc can be configured to opt-out some features,
# let's not deal with that for the time being, it's complex...
config BR2_TOOLCHAIN_CTNG_eglibc
bool "eglibc"
- select BR2_LARGEFILE
- select BR2_INET_IPV6
# Our default ct-ng configuration uses eglibc 2.12, which has
# native RPC support
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
- select BR2_ENABLE_LOCALE
- select BR2_USE_WCHAR
+ select BR2_TOOLCHAIN_USES_GLIBC
config BR2_TOOLCHAIN_CTNG_glibc
bool "glibc"
- select BR2_LARGEFILE
- select BR2_INET_IPV6
# Our default ct-ng configuration uses glibc 2.14.1, which
# does not have native RPC support
- select BR2_ENABLE_LOCALE
- select BR2_USE_WCHAR
+ select BR2_TOOLCHAIN_USES_GLIBC
endchoice # C library
diff --git a/toolchain/toolchain-external/Config.in b/toolchain/toolchain-external/Config.in
index 2c1c99b789..946063f953 100644
--- a/toolchain/toolchain-external/Config.in
+++ b/toolchain/toolchain-external/Config.in
@@ -815,16 +815,11 @@ config BR2_TOOLCHAIN_EXTERNAL_PREFIX
config BR2_TOOLCHAIN_EXTERNAL_GLIBC
bool
- select BR2_LARGEFILE
- select BR2_INET_IPV6
- select BR2_USE_WCHAR
- select BR2_ENABLE_LOCALE
- select BR2_TOOLCHAIN_HAS_THREADS
- select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
- select BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
+ select BR2_TOOLCHAIN_USES_GLIBC
config BR2_TOOLCHAIN_EXTERNAL_UCLIBC
bool
+ select BR2_TOOLCHAIN_USES_UCLIBC
if BR2_TOOLCHAIN_EXTERNAL_CUSTOM