u-boot.lists.denx.de archive mirror
 help / color / mirror / Atom feed
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


  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).