From: Simon Glass <sjg@chromium.org>
To: U-Boot Mailing List <u-boot@lists.denx.de>
Cc: Luca Ceresoli <luca@lucaceresoli.net>,
Bin Meng <bmeng.cn@gmail.com>,
Roger Pau Monne <royger@FreeBSD.org>,
Tom Rini <trini@konsulko.com>,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
Simon Glass <sjg@chromium.org>,
Heinrich Schuchardt <xypron.glpk@gmx.de>,
Masahiro Yamada <yamada.masahiro@socionext.com>
Subject: [PATCH 2/4] Makefile: Switch over to the Python-based CONFIG checker
Date: Mon, 29 Aug 2022 07:57:05 -0600 [thread overview]
Message-ID: <20220829075657.2.I30b7a5c61359f00db53fe2f8877b32c91ae3c4d1@changeid> (raw)
In-Reply-To: <20220829075657.1.Ide4bcd82e518c9ba59b01de9bb83d33a39041ef3@changeid>
Drop the old shell scripts and use the Python script instead.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
Makefile | 4 +--
scripts/build-whitelist.sh | 45 ---------------------------
scripts/check-config.sh | 63 --------------------------------------
3 files changed, 2 insertions(+), 110 deletions(-)
delete mode 100755 scripts/build-whitelist.sh
delete mode 100755 scripts/check-config.sh
diff --git a/Makefile b/Makefile
index 541e942ed51..7dc78d5bec1 100644
--- a/Makefile
+++ b/Makefile
@@ -1077,8 +1077,8 @@ cmd_lzma = lzma -c -z -k -9 $< > $@
cfg: u-boot.cfg
quiet_cmd_cfgcheck = CFGCHK $2
-cmd_cfgcheck = $(srctree)/scripts/check-config.sh $2 \
- $(srctree)/scripts/config_whitelist.txt $(srctree)
+cmd_cfgcheck = $(srctree)/scripts/kconfig_check.py -c $2 \
+ -a $(srctree)/scripts/config_whitelist.txt -s $(srctree) -d check
quiet_cmd_ofcheck = OFCHK $2
cmd_ofcheck = $(srctree)/scripts/check-of.sh $2 \
diff --git a/scripts/build-whitelist.sh b/scripts/build-whitelist.sh
deleted file mode 100755
index 37630c0271c..00000000000
--- a/scripts/build-whitelist.sh
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/sh
-# Copyright (c) 2016 Google, Inc
-# Written by Simon Glass <sjg@chromium.org>
-#
-
-# This script creates the configuration whitelist file. This file contains
-# all the config options which are allowed to be used outside Kconfig.
-# Please do not add things to the whitelist. Instead, add your new option
-# to Kconfig.
-#
-export LC_ALL=C LC_COLLATE=C
-
-# Looks for the rest of the CONFIG options, but exclude those in Kconfig and
-# defconfig files.
-#
-git grep CONFIG_ | \
- egrep -vi "(Kconfig:|defconfig:|README|\.py|\.pl:)" \
- | tr ' \t' '\n\n' \
- | 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
-# the whitelist.
-cat `find . -name "Kconfig*"` |sed -n \
- -e 's/^\s*config *\([A-Za-z0-9_]*\).*$/CONFIG_\1/p' \
- -e 's/^\s*menuconfig *\([A-Za-z0-9_]*\).*$/CONFIG_\1/p' \
- |sort |uniq >scripts/config_whitelist.txt.tmp2
-
-# Use only the options that are present in the first file but not the second.
-comm -23 scripts/config_whitelist.txt.tmp1 scripts/config_whitelist.txt.tmp2 \
- |sort |uniq >scripts/config_whitelist.txt.tmp3
-
-# If scripts/config_whitelist.txt already exists, take the intersection of the
-# current list and the new one. We do not want to increase whitelist options.
-if [ -r scripts/config_whitelist.txt ]; then
- comm -12 scripts/config_whitelist.txt.tmp3 scripts/config_whitelist.txt \
- > scripts/config_whitelist.txt.tmp4
- mv scripts/config_whitelist.txt.tmp4 scripts/config_whitelist.txt
-else
- mv scripts/config_whitelist.txt.tmp3 scripts/config_whitelist.txt
-fi
-
-rm scripts/config_whitelist.txt.tmp*
-
-unset LC_ALL LC_COLLATE
diff --git a/scripts/check-config.sh b/scripts/check-config.sh
deleted file mode 100755
index cc1c9a54d95..00000000000
--- a/scripts/check-config.sh
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/bin/sh
-# Copyright (c) 2016 Google, Inc
-# Written by Simon Glass <sjg@chromium.org>
-#
-# Check that the u-boot.cfg file provided does not introduce any new
-# ad-hoc CONFIG options
-#
-# Use scripts/build-whitelist.sh to generate the list of current ad-hoc
-# CONFIG options (those which are not in Kconfig).
-
-# Usage
-# check-config.sh <path to u-boot.cfg> <path to whitelist file> <source dir>
-#
-# For example:
-# scripts/check-config.sh b/chromebook_link/u-boot.cfg kconfig_whitelist.txt .
-
-set -e
-set -u
-
-PROG_NAME="${0##*/}"
-
-usage() {
- echo "$PROG_NAME <path to u-boot.cfg> <path to whitelist file> <source dir>"
- exit 1
-}
-
-[ $# -ge 3 ] || usage
-
-path="$1"
-whitelist="$2"
-srctree="$3"
-
-# Temporary files
-configs="${path}.configs"
-suspects="${path}.suspects"
-ok="${path}.ok"
-new_adhoc="${path}.adhoc"
-
-export LC_ALL=C
-export LC_COLLATE=C
-
-cat ${path} |sed -nr 's/^#define (CONFIG_[A-Za-z0-9_]*).*/\1/p' |sort |uniq \
- >${configs}
-
-comm -23 ${configs} ${whitelist} > ${suspects}
-
-cat `find ${srctree} -name "Kconfig*"` |sed -nr \
- -e 's/^[[:blank:]]*config *([A-Za-z0-9_]*).*$/CONFIG_\1/p' \
- -e 's/^[[:blank:]]*menuconfig ([A-Za-z0-9_]*).*$/CONFIG_\1/p' \
- |sort |uniq > ${ok}
-comm -23 ${suspects} ${ok} >${new_adhoc}
-if [ -s ${new_adhoc} ]; then
- echo >&2 "Error: You must add new CONFIG options using Kconfig"
- echo >&2 "The following new ad-hoc CONFIG options were detected:"
- cat >&2 ${new_adhoc}
- echo >&2
- echo >&2 "Please add these via Kconfig instead. Find a suitable Kconfig"
- echo >&2 "file and add a 'config' or 'menuconfig' option."
- # Don't delete the temporary files in case they are useful
- exit 1
-else
- rm ${suspects} ${ok} ${new_adhoc}
-fi
--
2.37.2.672.g94769d06f0-goog
next prev parent reply other threads:[~2022-08-29 13:57 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-29 13:57 [PATCH 1/4] Makefile: Add a Python-based CONFIG checker Simon Glass
2022-08-29 13:57 ` Simon Glass [this message]
2022-08-29 13:57 ` [PATCH 3/4] CI: Add kconfig checker tests to gitlab/azure Simon Glass
2022-08-29 13:57 ` [PATCH 4/4] pylibfdt: fix with Python 3.10 Simon Glass
2022-09-14 18:47 ` [PATCH 1/4] Makefile: Add a Python-based CONFIG checker Tom Rini
2022-09-14 22:39 ` Simon Glass
2022-09-15 18:32 ` Tom Rini
2022-09-16 1:30 ` Simon Glass
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220829075657.2.I30b7a5c61359f00db53fe2f8877b32c91ae3c4d1@changeid \
--to=sjg@chromium.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=bmeng.cn@gmail.com \
--cc=luca@lucaceresoli.net \
--cc=royger@FreeBSD.org \
--cc=trini@konsulko.com \
--cc=u-boot@lists.denx.de \
--cc=xypron.glpk@gmx.de \
--cc=yamada.masahiro@socionext.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).