util/abuild: Clean up the missing_arches check
This change adds the following improvements: * Easier to read. * Checks to see if .xcompile is complete. * Checks the make return code. This will catch if .xcompile is missing. BUG=b:112267918 TEST=Modified my .xcompile and ran abuild and verified that missing_arches got set correctly. Also deleted .xcompile and verified there was a failure. Change-Id: I7604d431f398fc0c80a857a0c7c21e164004cc99 Signed-off-by: Raul E Rangel <rrangel@chromium.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/34241 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin Roth <martinroth@google.com>
This commit is contained in:
parent
f4d2c8714f
commit
cccb815c5e
|
@ -462,10 +462,26 @@ function build_config
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
local required_arches
|
||||||
|
|
||||||
required_arches=$(grep -E "^CONFIG_ARCH_(BOOTBLOCK|R.MSTAGE|VERSTAGE)" "$TARGET/${BUILD_NAME}/config.build" | \
|
required_arches=$(grep -E "^CONFIG_ARCH_(BOOTBLOCK|R.MSTAGE|VERSTAGE)" "$TARGET/${BUILD_NAME}/config.build" | \
|
||||||
sed "s,^CONFIG_ARCH_[^_]*_\([^=]*\)=.*$,\1," |sort -u |tr 'A-Z\n\r' 'a-z ')
|
sed "s,^CONFIG_ARCH_[^_]*_\([^=]*\)=.*$,\1," |sort -u |tr 'A-Z\n\r' 'a-z ')
|
||||||
# shellcheck disable=SC2016,SC2059
|
|
||||||
missing_arches=$(printf 'include .xcompile\nall: ; @echo $(foreach arch,'"$required_arches"',$(if $(filter $(arch),$(SUBARCH_SUPPORTED)),,$(arch)))' | $MAKE --no-print-directory -f -)
|
missing_arches="$($MAKE --no-print-directory -f - \
|
||||||
|
REQUIRED_ARCHES="$required_arches" <<'EOF'
|
||||||
|
include .xcompile
|
||||||
|
.PHONY: missing_arches
|
||||||
|
missing_arches:
|
||||||
|
$(if $(XCOMPILE_COMPLETE),,$(error .xcompile is invalid.))
|
||||||
|
@echo $(foreach arch,$(REQUIRED_ARCHES),$(if $(filter $(arch),$(SUBARCH_SUPPORTED)),,$(arch)))
|
||||||
|
EOF
|
||||||
|
)"
|
||||||
|
# shellcheck disable=SC2181
|
||||||
|
if [[ $? -ne 0 ]]; then
|
||||||
|
echo "Calculating missing_arches failed" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -n "$missing_arches" ]; then
|
if [ -n "$missing_arches" ]; then
|
||||||
printf "skipping %s because we're missing compilers for (%s)\n" "$BUILD_NAME" "$missing_arches"
|
printf "skipping %s because we're missing compilers for (%s)\n" "$BUILD_NAME" "$missing_arches"
|
||||||
return
|
return
|
||||||
|
|
Loading…
Reference in New Issue