scripts: kconfig: merge_config.sh: warn on duplicate input files

External scripts like yocto kernel scc may provide
same input config fragment multiple times. This may
be a bug since processing same fragments multiple times
can be time consuming.

Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
Link: https://patch.msgid.link/20260122105751.2186609-3-mikko.rapeli@linaro.org
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
This commit is contained in:
Mikko Rapeli 2026-01-22 12:57:51 +02:00 committed by Nathan Chancellor
parent dfc97e1c5d
commit a5b46cd1a0
No known key found for this signature in database
GPG Key ID: 1D6B269171C01A96
1 changed files with 11 additions and 0 deletions

View File

@ -130,6 +130,8 @@ trap clean_up EXIT
cat $INITFILE > $TMP_FILE
PROCESSED_FILES=""
# Merge files, printing warnings on overridden values
for ORIG_MERGE_FILE in $MERGE_LIST ; do
echo "Merging $ORIG_MERGE_FILE"
@ -137,6 +139,14 @@ for ORIG_MERGE_FILE in $MERGE_LIST ; do
echo "The merge file '$ORIG_MERGE_FILE' does not exist. Exit." >&2
exit 1
fi
# Check for duplicate input files
case " $PROCESSED_FILES " in
*" $ORIG_MERGE_FILE "*)
${WARNOVERRIDE} "WARNING: Input file provided multiple times: $ORIG_MERGE_FILE"
;;
esac
# Use awk for single-pass processing instead of per-symbol grep/sed
if ! "$AWK" -v prefix="$CONFIG_PREFIX" \
-v warnoverride="$WARNOVERRIDE" \
@ -259,6 +269,7 @@ for ORIG_MERGE_FILE in $MERGE_LIST ; do
STRICT_MODE_VIOLATED=true
fi
mv "$TMP_FILE.new" "$TMP_FILE"
PROCESSED_FILES="$PROCESSED_FILES $ORIG_MERGE_FILE"
done
if [ "$STRICT_MODE_VIOLATED" = "true" ]; then
echo "The fragment redefined a value and strict mode had been passed."