History

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.

Mikko Rapeli committed 9 months ago

Commit a5b46cd1 parent dfc97e11 file · +11 −0Browse files

Showing the changes to scripts (1 of 1 file). Show all

Unified · Split

scripts/kconfig/merge_config.sh+11−0
@@ -130,6 +130,8 @@ trap clean_up EXIT · 129 unmodified lines
130130
131131 cat $INITFILE > $TMP_FILE
132132
133+PROCESSED_FILES=""
134+
133135 # Merge files, printing warnings on overridden values
134136 for ORIG_MERGE_FILE in $MERGE_LIST ; do
135137 echo "Merging $ORIG_MERGE_FILE"
@@ -137,6 +139,14 @@ for ORIG_MERGE_FILE in $MERGE_LIST ; do · 1 unmodified line
137139 echo "The merge file '$ORIG_MERGE_FILE' does not exist. Exit." >&2
138140 exit 1
139141 fi
142+
143+ # Check for duplicate input files
144+ case " $PROCESSED_FILES " in
145+ *" $ORIG_MERGE_FILE "*)
146+ ${WARNOVERRIDE} "WARNING: Input file provided multiple times: $ORIG_MERGE_FILE"
147+ ;;
148+ esac
149+
140150 # Use awk for single-pass processing instead of per-symbol grep/sed
141151 if ! "$AWK" -v prefix="$CONFIG_PREFIX" \
142152 -v warnoverride="$WARNOVERRIDE" \
@@ -259,6 +269,7 @@ for ORIG_MERGE_FILE in $MERGE_LIST ; do · 116 unmodified lines
259269 STRICT_MODE_VIOLATED=true
260270 fi
261271 mv "$TMP_FILE.new" "$TMP_FILE"
272+ PROCESSED_FILES="$PROCESSED_FILES $ORIG_MERGE_FILE"
262273 done
263274 if [ "$STRICT_MODE_VIOLATED" = "true" ]; then
264275 echo "The fragment redefined a value and strict mode had been passed."