diff options
author | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2013-09-02 18:06:29 +0200 |
---|---|---|
committer | Peter Korsgaard <jacmet@sunsite.dk> | 2013-09-15 22:50:20 +0200 |
commit | 2babed4a50fcd050abc4686e05e24d0e374d10a8 (patch) | |
tree | 28e47f2aecb6ad0aa8274e18539faa8a19f08a4a /toolchain | |
parent | a8164107ecc07933b244fd436ad1025d8ae1aff1 (diff) |
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')
-rw-r--r-- | toolchain/Config.in | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/toolchain/Config.in b/toolchain/Config.in index 9d1e68f8f..27f7b50bc 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 |