aboutsummaryrefslogtreecommitdiffstats
path: root/roms/u-boot/scripts/check-config.sh
diff options
context:
space:
mode:
authorAngelos Mouzakitis <a.mouzakitis@virtualopensystems.com>2023-10-10 14:33:42 +0000
committerAngelos Mouzakitis <a.mouzakitis@virtualopensystems.com>2023-10-10 14:33:42 +0000
commitaf1a266670d040d2f4083ff309d732d648afba2a (patch)
tree2fc46203448ddcc6f81546d379abfaeb323575e9 /roms/u-boot/scripts/check-config.sh
parente02cda008591317b1625707ff8e115a4841aa889 (diff)
Add submodule dependency filesHEADmaster
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'roms/u-boot/scripts/check-config.sh')
-rwxr-xr-xroms/u-boot/scripts/check-config.sh63
1 files changed, 63 insertions, 0 deletions
diff --git a/roms/u-boot/scripts/check-config.sh b/roms/u-boot/scripts/check-config.sh
new file mode 100755
index 000000000..cc1c9a54d
--- /dev/null
+++ b/roms/u-boot/scripts/check-config.sh
@@ -0,0 +1,63 @@
+#!/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