aboutsummaryrefslogtreecommitdiff
path: root/toolchain/Config.in
diff options
context:
space:
mode:
authorGravatar Thomas Petazzoni <thomas.petazzoni@free-electrons.com>2013-09-02 18:06:29 +0200
committerGravatar Peter Korsgaard <jacmet@sunsite.dk>2013-09-15 22:50:20 +0200
commit2babed4a50fcd050abc4686e05e24d0e374d10a8 (patch)
tree28e47f2aecb6ad0aa8274e18539faa8a19f08a4a /toolchain/Config.in
parenta8164107ecc07933b244fd436ad1025d8ae1aff1 (diff)
downloadbuildroot-2babed4a50fcd050abc4686e05e24d0e374d10a8.tar.gz
buildroot-2babed4a50fcd050abc4686e05e24d0e374d10a8.tar.bz2
toolchain-internal: skip gcc-intermediate when possible
When NPTL support was introduced, gcc required a three stages build process. Since gcc 4.7, this is no longer necessary, and it is possible to get back to a two stages build process. This patch takes advantage of this, by doing a two stages build process when possible. We introduce a few hidden kconfig options: * BR2_GCC_VERSION_NEEDS_THREE_STAGE_BUILD, which is set by the gcc Config.in logic to indicate that the compiler might need a three stages build. Currently, all versions prior to 4.7.x are selecting this kconfig option. * BR2_TOOLCHAIN_LIBC_NEEDS_THREE_STAGE_BUILD, which indicates whether the C library might need a three stages build. This is the case for eglibc, and uClibc when NPTL is enabled. * BR2_TOOLCHAIN_NEEDS_THREE_STAGE_BUILD finally is enabled when both of the previous options are enabled. It indicates that a three stages build is actually needed. In addition to those options, the uClibc/gcc build logic is changed to use only a two stages build process when possible. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Diffstat (limited to 'toolchain/Config.in')
-rw-r--r--toolchain/Config.in9
1 files changed, 9 insertions, 0 deletions
diff --git a/toolchain/Config.in b/toolchain/Config.in
index 9d1e68f8fc..27f7b50bc1 100644
--- a/toolchain/Config.in
+++ b/toolchain/Config.in
@@ -1,5 +1,13 @@
menu "Toolchain"
+config BR2_TOOLCHAIN_NEEDS_THREE_STAGE_BUILD
+ bool
+ default y if BR2_TOOLCHAIN_LIBC_NEEDS_THREE_STAGE_BUILD && \
+ BR2_GCC_VERSION_NEEDS_THREE_STAGE_BUILD
+
+config BR2_TOOLCHAIN_LIBC_NEEDS_THREE_STAGE_BUILD
+ bool
+
# Should be selected for glibc or eglibc
config BR2_TOOLCHAIN_USES_GLIBC
bool
@@ -10,6 +18,7 @@ config BR2_TOOLCHAIN_USES_GLIBC
select BR2_TOOLCHAIN_HAS_THREADS
select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
select BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
+ select BR2_TOOLCHAIN_LIBC_NEEDS_THREE_STAGE_BUILD
config BR2_TOOLCHAIN_USES_UCLIBC
bool