[PATCH v3 14/81] buildman: Detect boards with no CONFIG_TARGET defined

Simon Glass sjg at chromium.org
Sun Jul 16 02:35:42 CEST 2023


We generally expected exactly one of these. Add a check for it.

Note: This warning is not displayed by default. An option will be added
to enable it.

Signed-off-by: Simon Glass <sjg at chromium.org>
---

Changes in v3:
- Add new patch to detect boards with no CONFIG_TARGET defined

 tools/buildman/boards.py    |  4 ++++
 tools/buildman/func_test.py | 13 ++++++++++++-
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/tools/buildman/boards.py b/tools/buildman/boards.py
index 31831f383750..209fb28eccbc 100644
--- a/tools/buildman/boards.py
+++ b/tools/buildman/boards.py
@@ -262,6 +262,10 @@ class KconfigScanner:
                 else:
                     target = tname
 
+        if not target:
+            cfg_name = expect_target.replace('-', '_').upper()
+            warnings.append(f'WARNING: {leaf}: No TARGET_{cfg_name} enabled')
+
         params['target'] = expect_target
 
         # fix-up for aarch64
diff --git a/tools/buildman/func_test.py b/tools/buildman/func_test.py
index e7e22da62b15..812b3d8a6777 100644
--- a/tools/buildman/func_test.py
+++ b/tools/buildman/func_test.py
@@ -951,6 +951,7 @@ Active  aarch64     armv8 - armltd total_compute board2
 
         # Add another TARGET to the Kconfig
         tools.write_file(main, data, binary=False)
+        orig_kc_data = tools.read_file(kc_file)
         extra = (b'''
 if TARGET_BOARD2
 config TARGET_OTHER
@@ -958,9 +959,19 @@ config TARGET_OTHER
 \tdefault y
 endif
 ''')
-        tools.write_file(kc_file, tools.read_file(kc_file) + extra)
+        tools.write_file(kc_file, orig_kc_data + extra)
         params_list, warnings = self._boards.build_board_list(config_dir, src)
         self.assertEquals(2, len(params_list))
         self.assertEquals(
             ['WARNING: board2_defconfig: Duplicate TARGET_xxx: board2 and other'],
              warnings)
+
+        # Remove the TARGET_BOARD0 Kconfig option
+        lines = [b'' if line == b'config TARGET_BOARD2\n' else line
+                  for line in orig_kc_data.splitlines(keepends=True)]
+        tools.write_file(kc_file, b''.join(lines))
+        params_list, warnings = self._boards.build_board_list(config_dir, src)
+        self.assertEquals(2, len(params_list))
+        self.assertEquals(
+            ['WARNING: board2_defconfig: No TARGET_BOARD2 enabled'],
+             warnings)
-- 
2.41.0.455.g037347b96a-goog



More information about the U-Boot mailing list