util/xcompile: parallelize compiler checks

Speed up the execution of this script from ~6 seconds to ~1 on my
system.

There are some changes to its output, but they're actually _more_
correct: so far, architectures without compiler support kept compiler
options for architectures that ran successfully earlier.

Change-Id: I0532ea2178fbedb114a75cfd5ba39301e534e742
Signed-off-by: Patrick Georgi <pgeorgi@google.com>
Reviewed-on: https://review.coreboot.org/18262
Tested-by: build bot (Jenkins)
Reviewed-by: Martin Roth <martinroth@google.com>
This commit is contained in:
Patrick Georgi 2017-01-30 15:27:35 +01:00
parent 7328cf948e
commit be182ad380
1 changed files with 14 additions and 4 deletions

View File

@ -56,9 +56,6 @@ clean_up() {
fi fi
} }
# Create temporary file(s).
TMPFILE="$(mktemp /tmp/temp.XXXXXX 2>/dev/null || echo /tmp/temp.coreboot.$RANDOM)"
touch "$TMPFILE"
trap clean_up EXIT trap clean_up EXIT
@ -438,11 +435,24 @@ test_architecture() {
fi fi
} }
# This loops over all supported architectures. OUT="$(mktemp /tmp/temp.XXXXXX 2>/dev/null || echo /tmp/temp.coreboot.$RANDOM)"
rm -f $OUT
for architecture in $SUPPORTED_ARCHITECTURES; do for architecture in $SUPPORTED_ARCHITECTURES; do
(
TMPFILE="$(mktemp /tmp/temp.XXXXXX 2>/dev/null || echo /tmp/temp.coreboot.$RANDOM)"
touch $TMPFILE
test_architecture "$architecture" test_architecture "$architecture"
detect_special_flags "$architecture" detect_special_flags "$architecture"
detect_compiler_runtime "$architecture" detect_compiler_runtime "$architecture"
report_arch_toolchain report_arch_toolchain
clean_up
) > $OUT.$architecture &
done
wait
for architecture in $SUPPORTED_ARCHITECTURES; do
cat $OUT.$architecture
rm -f $OUT.$architecture
done done
echo XCOMPILE_COMPLETE:=1 echo XCOMPILE_COMPLETE:=1