]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
buildman: Use oldconfig when adjusting the config
authorSimon Glass <sjg@chromium.org>
Thu, 26 Oct 2023 18:31:10 +0000 (14:31 -0400)
committerTom Rini <trini@konsulko.com>
Tue, 7 Nov 2023 19:48:19 +0000 (14:48 -0500)
We cannot be sure that the new config is consistent, particularly when
changing a major item like CONFIG_CMDLINE. Use 'make oldconfig' to
check that and avoid any such problems.

Signed-off-by: Simon Glass <sjg@chromium.org>
tools/buildman/builder.py
tools/buildman/builderthread.py
tools/buildman/func_test.py

index 3e42c987d1cd14fdcdb00dc16734f0878afbcac0..f35175b4598d904d1f0d2d612bcb11539b696209 100644 (file)
@@ -480,7 +480,7 @@ class Builder:
         Args:
             commit: Commit object that is being built
             brd: Board object that is being built
-            stage: Stage that we are at (mrproper, config, build)
+            stage: Stage that we are at (mrproper, config, oldconfig, build)
             cwd: Directory where make should be run
             args: Arguments to pass to make
             kwargs: Arguments to pass to command.run_pipe()
index 6a61f64da1d4337bd56b1d2d2d99290c1df68e34..a8599c0bb2a8bde66433aa64878be7af1dfb81c8 100644 (file)
@@ -426,6 +426,12 @@ class BuilderThread(threading.Thread):
 
         # Now do the build, if everything looks OK
         if result.return_code == 0:
+            if adjust_cfg:
+                oldc_args = list(args) + ['oldconfig']
+                oldc_result = self.make(commit, brd, 'oldconfig', cwd,
+                                        *oldc_args, env=env)
+                if oldc_result.return_code:
+                    return oldc_result
             result = self._build(commit, brd, cwd, args, env, cmd_list,
                                  config_only)
             if adjust_cfg:
index 55dd494fe8ee36d02c45702420e57fd73ac377eb..6b88ed815d65162e2f1a28cae780c5dcdd26b37c 100644 (file)
@@ -439,6 +439,8 @@ class TestFunctional(unittest.TestCase):
             tools.write_file(fname, b'CONFIG_SOMETHING=1')
             return command.CommandResult(return_code=0,
                     combined='Test configuration complete')
+        elif stage == 'oldconfig':
+            return command.CommandResult(return_code=0)
         elif stage == 'build':
             stderr = ''
             fname = os.path.join(cwd or '', out_dir, 'u-boot')
@@ -461,7 +463,7 @@ Some images are invalid'''
             return command.CommandResult(return_code=0)
 
         # Not handled, so abort
-        print('make', stage)
+        print('_HandleMake failure: make', stage)
         sys.exit(1)
 
     # Example function to print output lines