From 5579ce747d1401b7ff8ed90ed616654474d9382b Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Mon, 11 Jul 2022 19:04:07 -0600 Subject: [PATCH] Revert "Revert "global: Remove CONFIG_SYS_EXTRA_OPTIONS support"" This is not needed now that CONFIG_SYS_TARGET_NAME is correctly determined when scanning Kconfig. This reverts commit 25b8acee2ea11a9edc100c42a61f5d6187eb6167. Signed-off-by: Simon Glass Suggested-by: Tom Rini Reviewed-by: Tom Rini --- boot/Kconfig | 13 -------- doc/README.kconfig | 7 ---- doc/develop/moveconfig.rst | 3 +- scripts/Makefile.autoconf | 4 --- scripts/build-whitelist.sh | 23 ++------------ tools/moveconfig.py | 65 -------------------------------------- 6 files changed, 4 insertions(+), 111 deletions(-) diff --git a/boot/Kconfig b/boot/Kconfig index 150373947d..eddb0c6b31 100644 --- a/boot/Kconfig +++ b/boot/Kconfig @@ -452,19 +452,6 @@ config OF_STDOUT_VIA_ALIAS incorrect when used with device tree as this option does not exist / should not be used. -config SYS_EXTRA_OPTIONS - string "Extra Options (DEPRECATED)" - help - The old configuration infrastructure (= mkconfig + boards.cfg) - provided the extra options field. If you have something like - "HAS_BAR,BAZ=64", the optional options - #define CONFIG_HAS - #define CONFIG_BAZ 64 - will be defined in include/config.h. - This option was prepared for the smooth migration from the old - configuration to Kconfig. Since this option will be removed sometime, - new boards should not use this option. - config HAVE_SYS_TEXT_BASE bool depends on !NIOS2 && !XTENSA diff --git a/doc/README.kconfig b/doc/README.kconfig index 0689f66c2c..808cf56e59 100644 --- a/doc/README.kconfig +++ b/doc/README.kconfig @@ -99,7 +99,6 @@ Kconfig. Each field of boards.cfg was converted as follows: Vendor -> CONFIG_SYS_VENDOR defined by Kconfig Board -> CONFIG_SYS_BOARD defined by Kconfig Target -> File name of defconfig (configs/_defconfig) - Options -> CONFIG_SYS_EXTRA_OPTIONS defined by Kconfig Maintainers -> "M:" entry of MAINTAINERS @@ -140,12 +139,6 @@ When removing an obsolete board, the following steps are generally needed: TODO ---- -- The option field of boards.cfg, which was used for the pre-Kconfig - configuration, moved to CONFIG_SYS_EXTRA_OPTIONS verbatim now. - Board maintainers are expected to implement proper Kconfig options - and switch over to them. Eventually CONFIG_SYS_EXTRA_OPTIONS will go away. - CONFIG_SYS_EXTRA_OPTIONS should not be used for new boards. - - In the pre-Kconfig, a single board had multiple entries in the boards.cfg file with differences in the option fields. The corresponding defconfig files were auto-generated when switching to Kconfig. Now we have too many diff --git a/doc/develop/moveconfig.rst b/doc/develop/moveconfig.rst index 2f53ea52b7..bfb7aff358 100644 --- a/doc/develop/moveconfig.rst +++ b/doc/develop/moveconfig.rst @@ -295,8 +295,7 @@ Available options -y, --yes Instead of prompting, automatically go ahead with all operations. This - includes cleaning up headers, CONFIG_SYS_EXTRA_OPTIONS, the config whitelist - and the README. + includes cleaning up headers, the config whitelist and the README. To see the complete list of supported options, run:: diff --git a/scripts/Makefile.autoconf b/scripts/Makefile.autoconf index 3fa4d50f1e..5a4a148955 100644 --- a/scripts/Makefile.autoconf +++ b/scripts/Makefile.autoconf @@ -112,10 +112,6 @@ vpl/include/autoconf.mk: vpl/u-boot.cfg # Prior to Kconfig, it was generated by mkconfig. Now it is created here. define filechk_config_h (echo "/* Automatically generated - do not edit */"; \ - for i in $$(echo $(CONFIG_SYS_EXTRA_OPTIONS) | sed 's/,/ /g'); do \ - echo \#define CONFIG_$$i \ - | sed '/=/ {s/=/ /;q; } ; { s/$$/ 1/; }'; \ - done; \ echo \#define CONFIG_BOARDDIR board/$(if $(VENDOR),$(VENDOR)/)$(BOARD);\ echo \#include \; \ echo \#include \; \ diff --git a/scripts/build-whitelist.sh b/scripts/build-whitelist.sh index 6feb9b67cf..37630c0271 100755 --- a/scripts/build-whitelist.sh +++ b/scripts/build-whitelist.sh @@ -10,30 +10,13 @@ # export LC_ALL=C LC_COLLATE=C -# There are two independent greps. The first pulls out the component parts -# of CONFIG_SYS_EXTRA_OPTIONS. An example is: +# Looks for the rest of the CONFIG options, but exclude those in Kconfig and +# defconfig files. # -# SUN7I_GMAC,AHCI,SATAPWR=SUNXI_GPB(8) -# -# We want this to produce: -# CONFIG_SUN7I_GMAC -# CONFIG_AHCI -# CONFIG_SATAPWR -# -# The second looks for the rest of the CONFIG options, but excludes those in -# Kconfig and defconfig files. -# -( -git grep CONFIG_SYS_EXTRA_OPTIONS |sed -n \ - 's/.*CONFIG_SYS_EXTRA_OPTIONS="\(.*\)"/\1/ p' \ - | tr , '\n' \ - | sed 's/ *\([A-Za-z0-9_]*\).*/CONFIG_\1/' - git grep CONFIG_ | \ egrep -vi "(Kconfig:|defconfig:|README|\.py|\.pl:)" \ | tr ' \t' '\n\n' \ - | sed -n 's/^\(CONFIG_[A-Za-z0-9_]*\).*/\1/p' -) \ + | sed -n 's/^\(CONFIG_[A-Za-z0-9_]*\).*/\1/p' \ |sort |uniq >scripts/config_whitelist.txt.tmp1; # Finally, we need a list of the valid Kconfig options to exclude these from diff --git a/tools/moveconfig.py b/tools/moveconfig.py index 84bc875fff..09617a07f9 100755 --- a/tools/moveconfig.py +++ b/tools/moveconfig.py @@ -443,70 +443,6 @@ 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 @@ -1803,7 +1739,6 @@ 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)