2babed4a50
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>
68 lines
1.8 KiB
Plaintext
68 lines
1.8 KiB
Plaintext
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
|
|
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_LIBC_NEEDS_THREE_STAGE_BUILD
|
|
|
|
config BR2_TOOLCHAIN_USES_UCLIBC
|
|
bool
|
|
|
|
choice
|
|
prompt "Toolchain type"
|
|
help
|
|
Select whether to use the toolchain provided by buildroot
|
|
or an external toolchain.
|
|
|
|
Some vendors provide toolchains in binary form, some in
|
|
source form.
|
|
|
|
config BR2_TOOLCHAIN_BUILDROOT
|
|
bool "Buildroot toolchain"
|
|
depends on !BR2_microblaze && !BR2_aarch64 && !BR2_nios2
|
|
select BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL
|
|
bool "External toolchain"
|
|
help
|
|
Select if you want to use an existing cross-compiling
|
|
toolchain. Buildroot can either download automatically a
|
|
toolchain, or use an already installed toolchain.
|
|
|
|
config BR2_TOOLCHAIN_CTNG
|
|
bool "Crosstool-NG toolchain"
|
|
depends on BR2_DEPRECATED
|
|
depends on !BR2_microblaze && !BR2_aarch64 && !BR2_xtensa && \
|
|
!BR2_arc && !BR2_nios2
|
|
select BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
|
|
help
|
|
Say 'y' if you want to generate the toolchain with crosstool-NG
|
|
(http://crosstool-ng.org).
|
|
|
|
This is considered experimental, and you can expect some breakage.
|
|
|
|
endchoice
|
|
|
|
source "toolchain/toolchain-buildroot/Config.in"
|
|
source "toolchain/toolchain-external/Config.in"
|
|
source "toolchain/toolchain-crosstool-ng/Config.in"
|
|
source "toolchain/toolchain-common.in"
|
|
source "toolchain/toolchain-buildroot/Config.in.2"
|
|
|
|
endmenu
|