]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
buildman: Replace the Options column with config name
authorSimon Glass <sjg@chromium.org>
Tue, 12 Jul 2022 01:04:06 +0000 (19:04 -0600)
committerTom Rini <trini@konsulko.com>
Fri, 5 Aug 2022 15:47:56 +0000 (11:47 -0400)
This appears in boards.cfg but we want to remove it. Drop support for
generating it and reading it. Detect an old boards.cfg file that has
this field and regenerate it, to avoid problems.

Instead, add the config name in that place. This fixes a subtle bug in
the generation code, since it uses 'target' for the config name and then
overwrites the value in scan() by setting params['target'] to the name
of the defconfig. The defconfig name is not the same as the
SYS_CONFIG_NAME variable.

With this change, we still have the config name and it can be searched
by buildman, e.g. with:

   buildman -nv sun5i

Signed-off-by: Simon Glass <sjg@chromium.org>
Reported-by: Tom Rini <trini@konsulko.com>
tools/buildman/board.py
tools/buildman/boards.py

index 3268b39e356a1d96f0393916155bf9799a6fd6ff..8ef905b8ce1bd710c16ecb6035c0761960cd19c7 100644 (file)
@@ -6,7 +6,7 @@
 
 class Board:
     """A particular board that we can build"""
-    def __init__(self, status, arch, cpu, soc, vendor, board_name, target, options):
+    def __init__(self, status, arch, cpu, soc, vendor, board_name, target, cfg_name):
         """Create a new board type.
 
         Args:
@@ -17,7 +17,7 @@ class Board:
             vendor: Name of vendor (e.g. armltd)
             board_name: Name of board (e.g. integrator)
             target: Target name (use make <target>_defconfig to configure)
-            options: board-specific options (e.g. integratorcp:CM1136)
+            cfg_name: Config name
         """
         self.target = target
         self.arch = arch
@@ -25,7 +25,7 @@ class Board:
         self.board_name = board_name
         self.vendor = vendor
         self.soc = soc
-        self.options = options
+        self.cfg_name = cfg_name
         self.props = [self.target, self.arch, self.cpu, self.board_name,
-                      self.vendor, self.soc, self.options]
+                      self.vendor, self.soc, self.cfg_name]
         self.build_it = False
index e16f3268ab1cf3479218efb3a6e3f2ff51e9a58c..8832e40cd5d0b941f5e709cb4e0260b5e5156f8b 100644 (file)
@@ -28,7 +28,7 @@ COMMENT_BLOCK = f'''#
 # List of boards
 #   Automatically generated by {__file__}: don't edit
 #
-# Status, Arch, CPU, SoC, Vendor, Board, Target, Options, Maintainers
+# Status, Arch, CPU, SoC, Vendor, Board, Target, Config, Maintainers
 
 '''
 
@@ -98,6 +98,8 @@ def output_is_new(output):
     # was generated
     with open(output, encoding="utf-8") as inf:
         for line in inf:
+            if 'Options,' in line:
+                return False
             if line[0] == '#' or line == '\n':
                 continue
             defconfig = line.split()[6] + '_defconfig'
@@ -186,7 +188,7 @@ class KconfigScanner:
         'vendor' : 'SYS_VENDOR',
         'board' : 'SYS_BOARD',
         'config' : 'SYS_CONFIG_NAME',
-        'options' : 'SYS_EXTRA_OPTIONS'
+        # 'target' is added later
     }
 
     def __init__(self):
@@ -216,7 +218,7 @@ class KconfigScanner:
             defconfig (str): path to the defconfig file to be processed
 
         Returns:
-            Dictionary of board parameters.  It has a form:
+            A dictionary of board parameters.  It has a form of:
             {
                 'arch': <arch_name>,
                 'cpu': <cpu_name>,
@@ -225,7 +227,6 @@ class KconfigScanner:
                 'board': <board_name>,
                 'target': <target_name>,
                 'config': <config_header_name>,
-                'options': <extra_options>
             }
         """
         # strip special prefixes and save it in a temporary file
@@ -262,14 +263,6 @@ class KconfigScanner:
         if params['arch'] == 'arm' and params['cpu'] == 'armv8':
             params['arch'] = 'aarch64'
 
-        # fix-up options field. It should have the form:
-        # <config name>[:comma separated config options]
-        if params['options'] != '-':
-            params['options'] = params['config'] + ':' + \
-                                params['options'].replace(r'\"', '"')
-        elif params['config'] != params['target']:
-            params['options'] = params['config']
-
         return params
 
 
@@ -708,7 +701,7 @@ class Boards:
             output (str): The path to the output file
         """
         fields = ('status', 'arch', 'cpu', 'soc', 'vendor', 'board', 'target',
-                  'options', 'maintainers')
+                  'config', 'maintainers')
 
         # First, decide the width of each column
         max_length = {f: 0 for f in fields}