mirror of
https://github.com/godotengine/buildroot.git
synced 2026-01-05 14:09:53 +03:00
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>
This commit is contained in:
committed by
Peter Korsgaard
parent
a8164107ec
commit
2babed4a50
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user