[PATCH 2/2] buildman: Add --allow-missing-binaries flag to build with BINMAN_ALLOW_MISSING=1
Tom Rini
trini at konsulko.com
Mon Oct 10 17:18:31 CEST 2022
Add a new flag to buildman so that we will in turn pass
BINMAN_ALLOW_MISSING=1 to 'make'. Make use of this flag in CI.
Cc: Rasmus Villemoes <rasmus.villemoes at prevas.dk>
Cc: Simon Glass <sjg at chromium.org>
Signed-off-by: Tom Rini <trini at konsulko.com>
---
.azure-pipelines.yml | 2 +-
.gitlab-ci.yml | 6 +++---
tools/buildman/builder.py | 5 ++++-
tools/buildman/builderthread.py | 2 ++
tools/buildman/cmdline.py | 3 +++
tools/buildman/control.py | 3 ++-
6 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml
index f200b40dbb24..c932c2b3c619 100644
--- a/.azure-pipelines.yml
+++ b/.azure-pipelines.yml
@@ -553,7 +553,7 @@ stages:
cat << "EOF" >> build.sh
if [[ "${BUILDMAN}" != "" ]]; then
ret=0;
- tools/buildman/buildman -o /tmp -P -E -W ${BUILDMAN} ${OVERRIDE} || ret=$?;
+ tools/buildman/buildman -o /tmp -P -E -W --allow-missing-binaries ${BUILDMAN} ${OVERRIDE} || ret=$?;
if [[ $ret -ne 0 ]]; then
tools/buildman/buildman -o /tmp -seP ${BUILDMAN};
exit $ret;
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7052a6061cb3..d9fb6518a0af 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -81,7 +81,7 @@ build all 32bit ARM platforms:
stage: world build
script:
- ret=0;
- ./tools/buildman/buildman -o /tmp -P -E -W arm -x aarch64 || ret=$?;
+ ./tools/buildman/buildman -o /tmp -P -E -W --allow-missing-binaries arm -x aarch64 || ret=$?;
if [[ $ret -ne 0 ]]; then
./tools/buildman/buildman -o /tmp -seP;
exit $ret;
@@ -94,7 +94,7 @@ build all 64bit ARM platforms:
- . /tmp/venv/bin/activate
- pip install pyelftools
- ret=0;
- ./tools/buildman/buildman -o /tmp -P -E -W aarch64 || ret=$?;
+ ./tools/buildman/buildman -o /tmp -P -E -W --allow-missing-binaries aarch64 || ret=$?;
if [[ $ret -ne 0 ]]; then
./tools/buildman/buildman -o /tmp -seP;
exit $ret;
@@ -114,7 +114,7 @@ build all other platforms:
stage: world build
script:
- ret=0;
- ./tools/buildman/buildman -o /tmp -P -E -W -x arm,powerpc || ret=$?;
+ ./tools/buildman/buildman -o /tmp -P -E -W --allow-missing-binaries -x arm,powerpc || ret=$?;
if [[ $ret -ne 0 ]]; then
./tools/buildman/buildman -o /tmp -seP;
exit $ret;
diff --git a/tools/buildman/builder.py b/tools/buildman/builder.py
index 76252b90792a..c07e2caab9a3 100644
--- a/tools/buildman/builder.py
+++ b/tools/buildman/builder.py
@@ -252,7 +252,8 @@ class Builder:
mrproper=False, per_board_out_dir=False,
config_only=False, squash_config_y=False,
warnings_as_errors=False, work_in_output=False,
- test_thread_exceptions=False, adjust_cfg=None):
+ test_thread_exceptions=False, adjust_cfg=None,
+ allow_missing_binaries=False):
"""Create a new Builder object
Args:
@@ -290,6 +291,7 @@ class Builder:
~C to disable C
C=val to set the value of C (val must have quotes if C is
a string Kconfig
+ allow_missing_binaries: Run build with BINMAN_ALLOW_MISSING=1
"""
self.toolchains = toolchains
@@ -327,6 +329,7 @@ class Builder:
self.config_filenames = BASE_CONFIG_FILENAMES
self.work_in_output = work_in_output
self.adjust_cfg = adjust_cfg
+ self.allow_missing_binaries = allow_missing_binaries
self._ide = False
if not self.squash_config_y:
diff --git a/tools/buildman/builderthread.py b/tools/buildman/builderthread.py
index 6240e08c7670..722ee17f0a03 100644
--- a/tools/buildman/builderthread.py
+++ b/tools/buildman/builderthread.py
@@ -253,6 +253,8 @@ class BuilderThread(threading.Thread):
args.extend(['-j', str(self.builder.num_jobs)])
if self.builder.warnings_as_errors:
args.append('KCFLAGS=-Werror')
+ if self.builder.allow_missing_binaries:
+ args.append('BINMAN_ALLOW_MISSING=1')
config_args = ['%s_defconfig' % brd.target]
config_out = ''
args.extend(self.builder.toolchains.GetMakeArguments(brd))
diff --git a/tools/buildman/cmdline.py b/tools/buildman/cmdline.py
index b29c1eb5ee72..18ef1902c7cd 100644
--- a/tools/buildman/cmdline.py
+++ b/tools/buildman/cmdline.py
@@ -15,6 +15,9 @@ def ParseArgs():
parser = OptionParser()
parser.add_option('-a', '--adjust-cfg', type=str, action='append',
help='Adjust the Kconfig settings in .config before building')
+ parser.add_option('--allow-missing-binaries', action='store_true',
+ default=False, help='Tell binman to allow for external binaries to'
+ ' be missing and generate fake ones as needed'),
parser.add_option('-A', '--print-prefix', action='store_true',
help='Print the tool-chain prefix for a board (CROSS_COMPILE=)')
parser.add_option('-b', '--branch', type='string',
diff --git a/tools/buildman/control.py b/tools/buildman/control.py
index 0c75466fbd3d..1289daeaef7e 100644
--- a/tools/buildman/control.py
+++ b/tools/buildman/control.py
@@ -329,7 +329,8 @@ def DoBuildman(options, args, toolchains=None, make_func=None, brds=None,
warnings_as_errors=options.warnings_as_errors,
work_in_output=options.work_in_output,
test_thread_exceptions=test_thread_exceptions,
- adjust_cfg=adjust_cfg)
+ adjust_cfg=adjust_cfg,
+ allow_missing_binaries=options.allow_missing_binaries)
builder.force_config_on_failure = not options.quick
if make_func:
builder.do_make = make_func
--
2.25.1
More information about the U-Boot
mailing list