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
130 130
131cat $INITFILE > $TMP_FILE131cat $INITFILE > $TMP_FILE
132 132
133PROCESSED_FILES=""
134
133# Merge files, printing warnings on overridden values135# Merge files, printing warnings on overridden values
134for ORIG_MERGE_FILE in $MERGE_LIST ; do136for ORIG_MERGE_FILE in $MERGE_LIST ; do
135 echo "Merging $ORIG_MERGE_FILE"137 echo "Merging $ORIG_MERGE_FILE"
@@ -137,6 +139,14 @@ for ORIG_MERGE_FILE in $MERGE_LIST ; do · 1 unmodified line
137 echo "The merge file '$ORIG_MERGE_FILE' does not exist. Exit." >&2139 echo "The merge file '$ORIG_MERGE_FILE' does not exist. Exit." >&2
138 exit 1140 exit 1
139 fi141 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
140 # Use awk for single-pass processing instead of per-symbol grep/sed150 # Use awk for single-pass processing instead of per-symbol grep/sed
141 if ! "$AWK" -v prefix="$CONFIG_PREFIX" \151 if ! "$AWK" -v prefix="$CONFIG_PREFIX" \
142 -v warnoverride="$WARNOVERRIDE" \152 -v warnoverride="$WARNOVERRIDE" \
@@ -259,6 +269,7 @@ for ORIG_MERGE_FILE in $MERGE_LIST ; do · 116 unmodified lines
259 STRICT_MODE_VIOLATED=true269 STRICT_MODE_VIOLATED=true
260 fi270 fi
261 mv "$TMP_FILE.new" "$TMP_FILE"271 mv "$TMP_FILE.new" "$TMP_FILE"
272 PROCESSED_FILES="$PROCESSED_FILES $ORIG_MERGE_FILE"
262done273done
263if [ "$STRICT_MODE_VIOLATED" = "true" ]; then274if [ "$STRICT_MODE_VIOLATED" = "true" ]; then
264 echo "The fragment redefined a value and strict mode had been passed."275 echo "The fragment redefined a value and strict mode had been passed."