
Hi Tom,
On 13 September 2016 at 21:44, Simon Glass sjg@chromium.org wrote:
Despite the availability of Kconfig, the number of ad-hoc CONFIG options in U-Boot is still at over 8000.
In February 2015 (commit 741e58e0) there were around 8387 ad-hoc CONFIGs. As of this patch there are about 8336, only a little fewer.
One problem is that new ones are still being added, admittedly at a slower rate. This series adds a Makefile check to detect that and produce a build error. This provides immediate feedback that new CONFIG options should go in Kconfig.
Changes in v3:
- Update the whitelist with mainline
- Fix the match partern to exclude .py files, not anything containing "py"
- Handle Kconfig files with extensions (e.g. Kconfig.64)
- Handle CONFIG_SYS_EXTRA_OPTIONS containing lower case
- Include lower-case letters in the CONFIG match string
- Write error output to stderr so that buildman shows it
- Handle Kconfig files with extensions (e.g. Kconfig.64)
- Handle extra whitespace after 'config' / 'menuconfig'
Changes in v2:
- Rebase to mainline
- Fix scripts so that there are no errors
- Add the 'build-whitelist.sh' script to the tree
Simon Glass (2): Kconfig: Add a whitelist of ad-hoc CONFIG options Makefile: Give a build error if ad-hoc CONFIG options are added
Makefile | 10 +- scripts/build-whitelist.sh | 51 + scripts/check-config.sh | 55 + scripts/config_whitelist.txt | 8420 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 8535 insertions(+), 1 deletion(-) create mode 100755 scripts/build-whitelist.sh create mode 100755 scripts/check-config.sh create mode 100644 scripts/config_whitelist.txt
-- 2.8.0.rc3.226.g39d4020
I build-tested this on top of the SPL series (see u-boot-dm/kconfig-working2):
buildman -b kc4 -fC --step 0 -s boards.cfg is up to date. Nothing to do. Summary of 2 commits for 1196 boards (32 threads, 1 job per thread) 01: buildman blackfin: + cm-bf527 bf609-ezkit bf537-stamp sparc: + grsim grsim_leon2 gr_cpci_ax2000 gr_xc3s_1500 gr_ep2s60 nios2: + 10m50 3c120 microblaze: + microblaze-generic openrisc: + openrisc-generic 48: Makefile: Give a build error if ad-hoc CONFIG options are added (kc4=74f3ab: -- asc asc2 asc3 b/ sandbox/ test/) u>
There were a number of tweaked needed to get the config checker to build all boards without error. My previous tested omitted the -C flag, meaning that it did not reconfigure all of the boards, so missing loads of problems.
Regards, Simon