diff --git a/tools/buildman/builder.py b/tools/buildman/builder.py index 39a6e8ad5c73125f3486ced690522a692700e678..767b1f69284e77909fd7521babec7e6f88d0b1ac 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 0da6797e7f016a4c66ade07d60913f42446b17f3..5046b160e9ea5737d3716df8aa05bd2cc0af0072 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 cfad535fcb316eb36aec590d2df7a6950fcf2a04..a737fd1bdc0d4629249bbbd281a3c6796d44da0e 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()