summaryrefslogtreecommitdiffstats
path: root/tools/buildman
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2014-07-14 17:51:02 -0600
committerSimon Glass <sjg@chromium.org>2014-07-28 04:52:48 +0100
commit97e915262e06c5980124de2e0fe5c2f34b40ee8f (patch)
tree34c5f4374a1131b9a1e4c3dfeb0184717f91bc6f /tools/buildman
parent772e173802627a1917a3f5878ad4b9b920089a33 (diff)
downloadblackbird-obmc-uboot-97e915262e06c5980124de2e0fe5c2f34b40ee8f.tar.gz
blackbird-obmc-uboot-97e915262e06c5980124de2e0fe5c2f34b40ee8f.zip
buildman: Add -C option to force a reconfigure for each commit
Normally buildman wil try to configure U-Boot for a particular board on the first commit that it builds in a series. Subsequent commits are built without reconfiguring which normally works. Where it doesn't, buildman automatically reconfigures and retries. To fully emulate the way MAKEALL works, we should have an option to disable this optimisation. Add a -C option to cause buildman to always reconfigure on each commit. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'tools/buildman')
-rw-r--r--tools/buildman/builder.py10
-rwxr-xr-xtools/buildman/buildman.py3
-rw-r--r--tools/buildman/control.py1
3 files changed, 13 insertions, 1 deletions
diff --git a/tools/buildman/builder.py b/tools/buildman/builder.py
index 39a6e8ad5c..767b1f6928 100644
--- a/tools/buildman/builder.py
+++ b/tools/buildman/builder.py
@@ -431,7 +431,8 @@ class BuilderThread(threading.Thread):
result, request_config = self.RunCommit(commit_upto,
brd, work_dir, True, True, False)
did_config = True
- do_config = request_config
+ if not self.builder.force_reconfig:
+ do_config = request_config
# If we built that commit, then config is done. But if we got
# an warning, reconfig next time to force it to build the same
@@ -524,6 +525,12 @@ class Builder:
toolchains: Toolchains object to use for building
upto: Current commit number we are building (0.count-1)
warned: Number of builds that produced at least one warning
+ force_reconfig: Reconfigure U-Boot on each comiit. This disables
+ incremental building, where buildman reconfigures on the first
+ commit for a baord, and then just does an incremental build for
+ the following commits. In fact buildman will reconfigure and
+ retry for any failing commits, so generally the only effect of
+ this option is to slow things down.
Private members:
_base_board_dict: Last-summarised Dict of boards
@@ -593,6 +600,7 @@ class Builder:
self._next_delay_update = datetime.now()
self.force_config_on_failure = True
self.force_build_failures = False
+ self.force_reconfig = False
self._step = step
self.col = terminal.Color()
diff --git a/tools/buildman/buildman.py b/tools/buildman/buildman.py
index 0da6797e7f..5046b160e9 100755
--- a/tools/buildman/buildman.py
+++ b/tools/buildman/buildman.py
@@ -67,6 +67,9 @@ parser.add_option('-B', '--bloat', dest='show_bloat',
help='Show changes in function code size for each board')
parser.add_option('-c', '--count', dest='count', type='int',
default=-1, help='Run build on the top n commits')
+parser.add_option('-C', '--force-reconfig', dest='force_reconfig',
+ action='store_true', default=False,
+ help='Reconfigure for every commit (disable incremental build)')
parser.add_option('-e', '--show_errors', action='store_true',
default=False, help='Show errors and warnings')
parser.add_option('-f', '--force-build', dest='force_build',
diff --git a/tools/buildman/control.py b/tools/buildman/control.py
index cfad535fcb..a737fd1bdc 100644
--- a/tools/buildman/control.py
+++ b/tools/buildman/control.py
@@ -157,6 +157,7 @@ def DoBuildman(options, args):
else:
builder.force_build = options.force_build
builder.force_build_failures = options.force_build_failures
+ builder.force_reconfig = options.force_reconfig
# Work out which boards to build
board_selected = boards.GetSelectedDict()
OpenPOWER on IntegriCloud