Revert "toolchain-internal: skip gcc-intermediate when possible"

While the idea of skipping the intermediate gcc step seems to work
fine in most situations, it causes problems with the SSP
support. Until we can figure out a proper solution for this problem,
we need to revert back to the previous solution of a three stages
build.

This reverts commit 2babed4a50.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
Thomas Petazzoni 2013-10-03 20:35:01 +02:00 committed by Peter Korsgaard
parent 47c463fe50
commit ebc8193363
6 changed files with 4 additions and 35 deletions

View File

@ -3,12 +3,6 @@ comment "GCC Options"
config BR2_GCC_NEEDS_MPC config BR2_GCC_NEEDS_MPC
bool bool
# Until gcc 4.7, a three stage build process was needed when using
# NPTL. This hidden option tells whether gcc is a version that
# requires this three stage build process.
config BR2_GCC_VERSION_NEEDS_THREE_STAGE_BUILD
bool
choice choice
prompt "GCC compiler Version" prompt "GCC compiler Version"
default BR2_GCC_VERSION_4_4_X if BR2_sparc_sparchfleon || BR2_sparc_sparchfleonv8 || BR2_sparc_sparcsfleon || BR2_sparc_sparcsfleonv8 default BR2_GCC_VERSION_4_4_X if BR2_sparc_sparchfleon || BR2_sparc_sparchfleonv8 || BR2_sparc_sparcsfleon || BR2_sparc_sparcsfleonv8
@ -22,13 +16,11 @@ choice
config BR2_GCC_VERSION_4_2_2_AVR32_2_1_5 config BR2_GCC_VERSION_4_2_2_AVR32_2_1_5
depends on BR2_avr32 depends on BR2_avr32
bool "gcc 4.2.2-avr32-2.1.5" bool "gcc 4.2.2-avr32-2.1.5"
select BR2_GCC_VERSION_NEEDS_THREE_STAGE_BUILD
config BR2_GCC_VERSION_4_3_X config BR2_GCC_VERSION_4_3_X
depends on !BR2_arc && !BR2_avr32 && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 && !BR2_cortex_a5 && !BR2_cortex_a7 && !BR2_cortex_a8 && !BR2_cortex_a9 && !BR2_cortex_a15 && !BR2_x86_atom && !BR2_powerpc_e300c2 && !BR2_powerpc_e300c3 && !BR2_powerpc_e500mc && !BR2_powerpc_464 && !BR2_powerpc_464fp && !BR2_powerpc_476 && !BR2_powerpc_476fp && !BR2_fa526 && !BR2_pj4 depends on !BR2_arc && !BR2_avr32 && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 && !BR2_cortex_a5 && !BR2_cortex_a7 && !BR2_cortex_a8 && !BR2_cortex_a9 && !BR2_cortex_a15 && !BR2_x86_atom && !BR2_powerpc_e300c2 && !BR2_powerpc_e300c3 && !BR2_powerpc_e500mc && !BR2_powerpc_464 && !BR2_powerpc_464fp && !BR2_powerpc_476 && !BR2_powerpc_476fp && !BR2_fa526 && !BR2_pj4
depends on !BR2_ARM_EABIHF depends on !BR2_ARM_EABIHF
bool "gcc 4.3.x" bool "gcc 4.3.x"
select BR2_GCC_VERSION_NEEDS_THREE_STAGE_BUILD
config BR2_GCC_VERSION_4_4_X config BR2_GCC_VERSION_4_4_X
depends on !BR2_arc && !BR2_avr32 && !BR2_cortex_a5 && !BR2_cortex_a7 && !BR2_cortex_a15 && !BR2_x86_atom && !BR2_powerpc_476 && !BR2_powerpc_476fp && !BR2_fa526 && !BR2_pj4 depends on !BR2_arc && !BR2_avr32 && !BR2_cortex_a5 && !BR2_cortex_a7 && !BR2_cortex_a15 && !BR2_x86_atom && !BR2_powerpc_476 && !BR2_powerpc_476fp && !BR2_fa526 && !BR2_pj4
@ -37,7 +29,6 @@ choice
depends on !BR2_ARM_EABIHF depends on !BR2_ARM_EABIHF
# VFPv4 support appeared in gcc 4.5 # VFPv4 support appeared in gcc 4.5
depends on !BR2_ARM_FPU_VFPV4 && !BR2_ARM_FPU_VFPV4D16 depends on !BR2_ARM_FPU_VFPV4 && !BR2_ARM_FPU_VFPV4D16
select BR2_GCC_VERSION_NEEDS_THREE_STAGE_BUILD
config BR2_GCC_VERSION_4_5_X config BR2_GCC_VERSION_4_5_X
depends on !BR2_arc && !BR2_avr32 && !BR2_cortex_a7 && !BR2_cortex_a15 && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 && !BR2_fa526 && !BR2_pj4 depends on !BR2_arc && !BR2_avr32 && !BR2_cortex_a7 && !BR2_cortex_a15 && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 && !BR2_fa526 && !BR2_pj4
@ -45,13 +36,11 @@ choice
# ARM EABIhf support appeared in gcc 4.6 # ARM EABIhf support appeared in gcc 4.6
depends on !BR2_ARM_EABIHF depends on !BR2_ARM_EABIHF
bool "gcc 4.5.x" bool "gcc 4.5.x"
select BR2_GCC_VERSION_NEEDS_THREE_STAGE_BUILD
config BR2_GCC_VERSION_4_6_X config BR2_GCC_VERSION_4_6_X
depends on !BR2_arc && !BR2_avr32 && !BR2_bfin && !BR2_cortex_a7 && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 && !BR2_pj4 depends on !BR2_arc && !BR2_avr32 && !BR2_bfin && !BR2_cortex_a7 && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 && !BR2_pj4
select BR2_GCC_NEEDS_MPC select BR2_GCC_NEEDS_MPC
bool "gcc 4.6.x" bool "gcc 4.6.x"
select BR2_GCC_VERSION_NEEDS_THREE_STAGE_BUILD
config BR2_GCC_VERSION_4_7_X config BR2_GCC_VERSION_4_7_X
depends on !BR2_arc && !BR2_avr32 && !BR2_bfin && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 && !BR2_pj4 depends on !BR2_arc && !BR2_avr32 && !BR2_bfin && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 && !BR2_pj4

View File

@ -29,7 +29,6 @@ HOST_GCC_INITIAL_CONF_OPT = \
--enable-languages=c \ --enable-languages=c \
--disable-shared \ --disable-shared \
--without-headers \ --without-headers \
--disable-threads \
--with-newlib \ --with-newlib \
--disable-largefile \ --disable-largefile \
--disable-nls \ --disable-nls \
@ -41,11 +40,4 @@ HOST_GCC_INITIAL_CONF_ENV = \
HOST_GCC_INITIAL_MAKE_OPT = all-gcc HOST_GCC_INITIAL_MAKE_OPT = all-gcc
HOST_GCC_INITIAL_INSTALL_OPT = install-gcc HOST_GCC_INITIAL_INSTALL_OPT = install-gcc
ifeq ($(BR2_TOOLCHAIN_NEEDS_THREE_STAGE_BUILD),)
ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
HOST_GCC_INITIAL_MAKE_OPT += all-target-libgcc
HOST_GCC_INITIAL_INSTALL_OPT += install-target-libgcc
endif
endif
$(eval $(host-autotools-package)) $(eval $(host-autotools-package))

View File

@ -28,9 +28,8 @@ ifeq ($(BR2_TOOLCHAIN_BUILDROOT_EGLIBC),y)
GLIBC_DEPENDENCIES += host-gawk GLIBC_DEPENDENCIES += host-gawk
endif endif
# Before (e)glibc is built, we must have the second stage # Before (e)glibc is built, we must have the second stage cross-compiler
# cross-compiler, for some gcc versions eglibc-build: host-gcc-intermediate
glibc-build: $(if $(BR2_TOOLCHAIN_NEEDS_THREE_STAGE_BUILD),host-gcc-intermediate)
GLIBC_SUBDIR = build GLIBC_SUBDIR = build

View File

@ -115,7 +115,6 @@ choice
config BR2_PTHREADS_NATIVE config BR2_PTHREADS_NATIVE
bool "Native POSIX Threading (NPTL)" bool "Native POSIX Threading (NPTL)"
select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS
select BR2_TOOLCHAIN_LIBC_NEEDS_THREE_STAGE_BUILD
depends on !BR2_arc depends on !BR2_arc
depends on !BR2_avr32 depends on !BR2_avr32
depends on !BR2_bfin depends on !BR2_bfin

View File

@ -22,9 +22,8 @@ UCLIBC_INSTALL_STAGING = YES
# cross-compiler and the kernel headers # cross-compiler and the kernel headers
UCLIBC_DEPENDENCIES = host-gcc-initial linux-headers UCLIBC_DEPENDENCIES = host-gcc-initial linux-headers
# Before uClibc is built, we must have the second stage # Before uClibc is built, we must have the second stage cross-compiler
# cross-compiler, for some gcc versions, and when NPTL is used. uclibc-build: host-gcc-intermediate
uclibc-build: $(if $(BR2_TOOLCHAIN_NEEDS_THREE_STAGE_BUILD),host-gcc-intermediate)
# specifying UCLIBC_CONFIG_FILE on the command-line overrides the .config # specifying UCLIBC_CONFIG_FILE on the command-line overrides the .config
# setting. # setting.

View File

@ -1,13 +1,5 @@
menu "Toolchain" 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 # Should be selected for glibc or eglibc
config BR2_TOOLCHAIN_USES_GLIBC config BR2_TOOLCHAIN_USES_GLIBC
bool bool
@ -19,7 +11,6 @@ config BR2_TOOLCHAIN_USES_GLIBC
select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
select BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS select BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_SSP
select BR2_TOOLCHAIN_LIBC_NEEDS_THREE_STAGE_BUILD
config BR2_TOOLCHAIN_USES_UCLIBC config BR2_TOOLCHAIN_USES_UCLIBC
bool bool