buildman: Write output even on fatal error

At present buildman does not write any output (to the 'out' and 'err)
files if the build terminates with a fatal error. This is to avoid adding
lots of spam to the logs.

However there are times when this is actually useful, such as when the
build fails for an obscure reason such as a Kconfig loop.

Update the logic to always write the output, so that the user gets a clue
as to what is happening.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass
2021-10-19 21:43:23 -06:00
committed by Stefano Babic
parent abc6eee0e7
commit bafdeb4546

View File

@@ -300,16 +300,12 @@ class BuilderThread(threading.Thread):
work_in_output: Use the output directory as the work directory and
don't write to a separate output directory.
"""
# Fatal error
if result.return_code < 0:
return
# If we think this might have been aborted with Ctrl-C, record the
# failure but not that we are 'done' with this board. A retry may fix
# it.
maybe_aborted = result.stderr and 'No child processes' in result.stderr
maybe_aborted = result.stderr and 'No child processes' in result.stderr
if result.already_done:
if result.return_code >= 0 and result.already_done:
return
# Write the output and stderr
@@ -332,6 +328,10 @@ class BuilderThread(threading.Thread):
elif os.path.exists(errfile):
os.remove(errfile)
# Fatal error
if result.return_code < 0:
return
if result.toolchain:
# Write the build result and toolchain information.
done_file = self.builder.GetDoneFile(result.commit_upto,