abuild: fix cross compiler test

Actually abort if a cross compiler is missing, but also handle
subarchitectures (currently: armv4 and armv7 for arm)
properly.

Change-Id: Idf37fb029178df6f2ac029466c66aaa2010bdbd2
Signed-off-by: Patrick Georgi <pgeorgi@google.com>
Reviewed-on: http://review.coreboot.org/7297
Tested-by: build bot (Jenkins)
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
This commit is contained in:
Patrick Georgi 2014-10-31 16:48:00 +01:00
parent ae6685fe4f
commit 511f82398e
2 changed files with 4 additions and 2 deletions

View File

@ -286,8 +286,8 @@ function build_target
create_buildenv $VENDOR $MAINBOARD $CONFIG
required_arches=`egrep "^CONFIG_ARCH_(BOOTBLOCK|R.MSTAGE)" $TARGET/${VENDOR}_${MAINBOARD}/config.build | \
sed "s,^CONFIG_ARCH_[^_]*_\([^=]*\)=.*$,\1," |sort -u |tr 'A-Z' 'a-z'`
missing_arches=`printf 'include .xcompile\nall: ; @echo $(foreach arch,'$required_arches',$(if $(filter $(arch),$(ARCH_SUPPORTED)),,$(arch)))' | make -f -`
sed "s,^CONFIG_ARCH_[^_]*_\([^=]*\)=.*$,\1," |sort -u |tr 'A-Z\n\r' 'a-z '`
missing_arches=`printf 'include .xcompile\nall: ; @echo $(foreach arch,'"$required_arches"',$(if $(filter $(arch),$(SUBARCH_SUPPORTED)),,$(arch)))' | make -f -`
if [ -n "$missing_arches" ]; then
printf "skipping $VENDOR/$MAINBOARD because we're missing compilers for ($missing_arches)\n"
return

View File

@ -151,6 +151,7 @@ report_arch_toolchain() {
cat <<EOF
# elf${TWIDTH}-${TBFDARCH} toolchain (${GCCPREFIX}gcc)
ARCH_SUPPORTED+=${TARCH}
SUBARCH_SUPPORTED+=${TSUPP-${TARCH}}
CC_${TARCH}:=${GCCPREFIX}gcc
CFLAGS_${TARCH}:=${CFLAGS}
CPP_${TARCH}:=${GCCPREFIX}cpp
@ -174,6 +175,7 @@ arch_config_arm() {
TBFDARCH="littlearm"
TCLIST="armv7a armv7-a"
TWIDTH="32"
TSUPP="arm armv4 armv7"
TABI="eabi"
}