buildman: Allow ignoring warnings in the return code

Sometimes we don't want buildman to return failure if it seems warnings.
Add a -W option to support this. If buildman detects warnings (and no
errors) it will return an exit code of 0 (success).

Note that the definition of 'warnings' includes the migration warnings
produced by U-Boot, such as:

    ===================== WARNING ======================
    This board does not use CONFIG_DM_MMC. Please update
    ...
    ====================================================

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
Simon Glass 2020-03-18 09:42:44 -06:00 committed by Tom Rini
parent f9c094bbce
commit 7beb43c980
3 changed files with 21 additions and 3 deletions

View File

@ -1070,16 +1070,32 @@ This will write the full build into /tmp/build including object files.
Other options
=============
Buildman has various other command line options. Try --help to see them.
Buildman has various other command-line options. Try --help to see them.
To find out what architecture or toolchain prefix buildman will use for a build,
see the -a and -A options.
To request that compiler warnings be promoted to errors, use -E. This passes the
-Werror flag to the compiler. Note that the build can still produce warnings
with -E, e.g. the migration warnings:
===================== WARNING ======================
This board does not use CONFIG_DM_MMC. Please update
...
====================================================
When doing builds, Buildman's return code will reflect the overall result:
0 (success) No errors or warnings found
128 Errors found
129 Warnings found
129 Warnings found (only if no -W)
You can use -W to tell Buildman to return 0 (success) instead of 129 when
warnings are found. Note that it can be useful to combine -E and -W. This means
that all compiler warnings will produce failures (code 128) and all other
warnings will produce success (since 129 is changed to 0).
If there are both warnings and errors, errors win, so buildman returns 128.
How to change from MAKEALL

View File

@ -108,6 +108,8 @@ def ParseArgs():
default=False, help='Run make with V=1, logging all output')
parser.add_option('-w', '--work-in-output', action='store_true',
default=False, help='Use the output directory as the work directory')
parser.add_option('-W', '--ignore-warnings', action='store_true',
default=False, help='Return success even if there are warnings')
parser.add_option('-x', '--exclude', dest='exclude',
type='string', action='append',
help='Specify a list of boards to exclude, separated by comma')

View File

@ -386,6 +386,6 @@ def DoBuildman(options, args, toolchains=None, make_func=None, boards=None,
options.keep_outputs, options.verbose)
if fail:
return 128
elif warned:
elif warned and not options.ignore_warnings:
return 129
return 0