build system: Test gccs that are actually used
Test that the compilers used for the target are built by our buildgcc utility. Users can override this test with the ANY_TOOLCHAIN Kconfig variable. Change-Id: I24adf2c9b83667fd34ce8eb103327c9376765f6d Signed-off-by: Patrick Georgi <pgeorgi@google.com> Reviewed-on: http://review.coreboot.org/9055 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
parent
a7a3917d48
commit
1053f6571c
15
Makefile.inc
15
Makefile.inc
|
@ -25,21 +25,6 @@ export KERNELVERSION := $(strip $(if $(GIT),\
|
||||||
$(shell git describe --dirty --always || git describe),\
|
$(shell git describe --dirty --always || git describe),\
|
||||||
4.0$(KERNELREVISION)))
|
4.0$(KERNELREVISION)))
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
# Test for coreboot toolchain (except when explicitely not requested)
|
|
||||||
ifneq ($(NOCOMPILE),1)
|
|
||||||
# only run if we're doing a build (not for tests, kconfig, ...), using gcc
|
|
||||||
# rationale: gcc versions by Linux distributions tend to be quite messed up
|
|
||||||
ifeq ($(CONFIG_COMPILER_GCC),y)
|
|
||||||
ifneq ($(CONFIG_ANY_TOOLCHAIN),y)
|
|
||||||
_toolchain=$(shell $(CC_x86_32) -v 2>&1 |grep -q "gcc version .*coreboot toolchain" && echo coreboot)
|
|
||||||
ifneq ($(_toolchain),coreboot)
|
|
||||||
$(error Please use the coreboot toolchain (or prove that your toolchain works))
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
#######################################################################
|
#######################################################################
|
||||||
# Basic component discovery
|
# Basic component discovery
|
||||||
MAINBOARDDIR=$(call strip_quotes,$(CONFIG_MAINBOARD_DIR))
|
MAINBOARDDIR=$(call strip_quotes,$(CONFIG_MAINBOARD_DIR))
|
||||||
|
|
|
@ -136,3 +136,20 @@ init_stages = \
|
||||||
$(eval $(call toolchain_to_dir))
|
$(eval $(call toolchain_to_dir))
|
||||||
|
|
||||||
$(call init_stages)
|
$(call init_stages)
|
||||||
|
|
||||||
|
# Test for coreboot toolchain (except when explicitely not requested)
|
||||||
|
ifneq ($(NOCOMPILE),1)
|
||||||
|
# only run if we're doing a build (not for tests, kconfig, ...), using gcc
|
||||||
|
# rationale: gcc versions by Linux distributions tend to be quite messed up
|
||||||
|
COMPILERFAIL:=0
|
||||||
|
ifeq ($(CONFIG_COMPILER_GCC),y)
|
||||||
|
ifneq ($(CONFIG_ANY_TOOLCHAIN),y)
|
||||||
|
$(foreach arch,$(sort $(foreach stage,$(COREBOOT_STANDARD_STAGES),$(ARCH-$(stage)-y))), \
|
||||||
|
$(if $(shell $(CC_$(arch)) -v 2>&1 |grep -q "gcc version .*coreboot toolchain" || echo not-coreboot), \
|
||||||
|
$(eval COMPILERFAIL:=1)$(warning Please use the coreboot toolchain for '$(arch)' (or prove that your toolchain works))))
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
ifeq ($(COMPILERFAIL),1)
|
||||||
|
$(error consider building our compilers: make crossgcc)
|
||||||
|
endif
|
||||||
|
|
Loading…
Reference in New Issue