aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2022-04-02 18:18:57 -0400
committerTom Rini <trini@konsulko.com>2022-04-02 18:18:57 -0400
commit25b8acee2ea11a9edc100c42a61f5d6187eb6167 (patch)
tree9ef7799b64b242ee0531e3c5af0f522778dc89e0 /tools
parent10d615f2fcc0d2ef1d611844eb6032fe0fca8afd (diff)
downloadu-boot-25b8acee2ea11a9edc100c42a61f5d6187eb6167.zip
u-boot-25b8acee2ea11a9edc100c42a61f5d6187eb6167.tar.gz
u-boot-25b8acee2ea11a9edc100c42a61f5d6187eb6167.tar.bz2
Revert "global: Remove CONFIG_SYS_EXTRA_OPTIONS support"WIP/02Apr2022-next
Unfortunately, we require additional logic to buildman to support this removal and still use SYS_SOC, etc, for build targets. This reverts commit eeec00072d7a0b5b91896d014618e558ce438738. Signed-off-by: Tom Rini <trini@konsulko.com>
Diffstat (limited to 'tools')
-rwxr-xr-xtools/genboardscfg.py12
-rwxr-xr-xtools/moveconfig.py65
2 files changed, 76 insertions, 1 deletions
diff --git a/tools/genboardscfg.py b/tools/genboardscfg.py
index ecdc166..07bf681 100755
--- a/tools/genboardscfg.py
+++ b/tools/genboardscfg.py
@@ -111,6 +111,7 @@ class KconfigScanner:
'vendor' : 'SYS_VENDOR',
'board' : 'SYS_BOARD',
'config' : 'SYS_CONFIG_NAME',
+ 'options' : 'SYS_EXTRA_OPTIONS'
}
def __init__(self):
@@ -148,6 +149,7 @@ 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
@@ -183,6 +185,14 @@ 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
def scan_defconfigs_for_multiprocess(queue, defconfigs):
@@ -368,7 +378,7 @@ def format_and_output(params_list, output):
output: The path to the output file
"""
FIELDS = ('status', 'arch', 'cpu', 'soc', 'vendor', 'board', 'target',
- 'maintainers')
+ 'options', 'maintainers')
# First, decide the width of each column
max_length = dict([ (f, 0) for f in FIELDS])
diff --git a/tools/moveconfig.py b/tools/moveconfig.py
index 09617a0..84bc875 100755
--- a/tools/moveconfig.py
+++ b/tools/moveconfig.py
@@ -443,6 +443,70 @@ def cleanup_headers(configs, args):
cleanup_one_header(header_path, patterns, args)
cleanup_empty_blocks(header_path, args)
+def cleanup_one_extra_option(defconfig_path, configs, args):
+ """Delete config defines in CONFIG_SYS_EXTRA_OPTIONS in one defconfig file.
+
+ Args:
+ defconfig_path: path to the cleaned defconfig file.
+ configs: A list of CONFIGs to remove.
+ args (Namespace): program arguments
+ """
+
+ start = 'CONFIG_SYS_EXTRA_OPTIONS="'
+ end = '"'
+
+ lines = read_file(defconfig_path)
+
+ for i, line in enumerate(lines):
+ if line.startswith(start) and line.endswith(end):
+ break
+ else:
+ # CONFIG_SYS_EXTRA_OPTIONS was not found in this defconfig
+ return
+
+ old_tokens = line[len(start):-len(end)].split(',')
+ new_tokens = []
+
+ for token in old_tokens:
+ pos = token.find('=')
+ if not (token[:pos] if pos >= 0 else token) in configs:
+ new_tokens.append(token)
+
+ if new_tokens == old_tokens:
+ return
+
+ tolines = copy.copy(lines)
+
+ if new_tokens:
+ tolines[i] = start + ','.join(new_tokens) + end
+ else:
+ tolines.pop(i)
+
+ show_diff(lines, tolines, defconfig_path, args.color)
+
+ if args.dry_run:
+ return
+
+ write_file(defconfig_path, tolines)
+
+def cleanup_extra_options(configs, args):
+ """Delete config defines in CONFIG_SYS_EXTRA_OPTIONS in defconfig files.
+
+ Args:
+ configs: A list of CONFIGs to remove.
+ args (Namespace): program arguments
+ """
+ if not confirm(args, 'Clean up CONFIG_SYS_EXTRA_OPTIONS?'):
+ return
+
+ configs = [ config[len('CONFIG_'):] for config in configs ]
+
+ defconfigs = get_all_defconfigs()
+
+ for defconfig in defconfigs:
+ cleanup_one_extra_option(os.path.join('configs', defconfig), configs,
+ args)
+
def cleanup_whitelist(configs, args):
"""Delete config whitelist entries
@@ -1739,6 +1803,7 @@ doc/develop/moveconfig.rst for documentation.'''
if configs:
cleanup_headers(configs, args)
+ cleanup_extra_options(configs, args)
cleanup_whitelist(configs, args)
cleanup_readme(configs, args)