buildman: Record an error if a toolchain is missing
authorSimon Glass <sjg@chromium.org>
Sat, 14 Dec 2024 18:20:23 +0000 (11:20 -0700)
committerTom Rini <trini@konsulko.com>
Sat, 25 Jan 2025 22:27:24 +0000 (16:27 -0600)
commitbd7883f3467645359f72647f78abffbdd5a236fa
tree15e1224711a81276d466ed5a2381013c1e2df2f6
parentdd7138dde7703e10d096c241f27c2c1f75fdd4d0
buildman: Record an error if a toolchain is missing

Buildman has always treated the lack of a toolchain as an infrastructure
problem rather than a build failure.

However the logic for this is not correct, since it does not write a
'done' file in this case.

As a result, one of two things can happen.

1. If a previous build ran in the same (output) directory, the outcome
   of *that* build is recorded as the outcome of this one
2. Otherwise, no outcome is recorded

Obviously this inconsistency is not ideal. While (2) is rare, it can be
very confusing as the build sort-of fails but does not produce any
summary output with 'buildman -s'

Overall it seems better to attribute a toolchain issue to the boards
that it affects. This results in clear failures which can be examined,
no matter what happened in the .bm-work directory previously.

So write a 'done' file for each build when a toolchain is missing.

The end result of this patch is to make missing toolchains much more
obvious. It should be things a bit easier for novice users.

Signed-off-by: Simon Glass <sjg@chromium.org>
tools/buildman/builderthread.py