support/kconfig/merge_config.sh: avoid false positive matches from comment lines
We are using empty CONFIG_PREFIX_. This results in false positive match for comment lines when merging config fragments. To avoid false positive reports, we use separate sed expressions and address comment lines explicitly. This is actually is in the Linux kernel mainline (v4.20-rc2): 6bbe4385d035c6fac56f840a59861a0310ce137b ("kconfig: merge_config: avoid false positive matches from comment lines") Signed-off-by: Nasser Afshin <Afshin.Nasser@gmail.com> Reviewed-by: Petr Vorel <petr.vorel@gmail.com> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
parent
8ca206e5a1
commit
7b87c2ae81
@ -109,7 +109,8 @@ if [ ! -r "$INITFILE" ]; then
|
||||
fi
|
||||
|
||||
MERGE_LIST=$*
|
||||
SED_CONFIG_EXP="s/^\(# \)\{0,1\}\(${CONFIG_PREFIX}[a-zA-Z0-9_]*\)[= ].*/\2/p"
|
||||
SED_CONFIG_EXP1="s/^\(${CONFIG_PREFIX}[a-zA-Z0-9_]*\)=.*/\1/p"
|
||||
SED_CONFIG_EXP2="s/^# \(${CONFIG_PREFIX}[a-zA-Z0-9_]*\) is not set$/\1/p"
|
||||
|
||||
TMP_FILE=$(mktemp -t .tmp.config.XXXXXXXXXX)
|
||||
|
||||
@ -123,7 +124,7 @@ for MERGE_FILE in $MERGE_LIST ; do
|
||||
echo "The merge file '$MERGE_FILE' does not exist. Exit." >&2
|
||||
exit 1
|
||||
fi
|
||||
CFG_LIST=$(sed -n "$SED_CONFIG_EXP" $MERGE_FILE)
|
||||
CFG_LIST=$(sed -n -e "$SED_CONFIG_EXP1" -e "$SED_CONFIG_EXP2" $MERGE_FILE)
|
||||
|
||||
for CFG in $CFG_LIST ; do
|
||||
grep -q -w $CFG $TMP_FILE || continue
|
||||
@ -166,7 +167,7 @@ make KCONFIG_ALLCONFIG=$TMP_FILE $EXTERNAL_ARG $OUTPUT_ARG $ALLTARGET
|
||||
|
||||
|
||||
# Check all specified config values took (might have missed-dependency issues)
|
||||
for CFG in $(sed -n "$SED_CONFIG_EXP" $TMP_FILE); do
|
||||
for CFG in $(sed -n -e "$SED_CONFIG_EXP1" -e "$SED_CONFIG_EXP2" $TMP_FILE); do
|
||||
|
||||
REQUESTED_VAL=$(grep -w -e "$CFG" $TMP_FILE)
|
||||
ACTUAL_VAL=$(grep -w -e "$CFG" "$KCONFIG_CONFIG")
|
||||
|
@ -0,0 +1,32 @@
|
||||
Index: kconfig/merge_config.sh
|
||||
===================================================================
|
||||
--- kconfig.orig/merge_config.sh
|
||||
+++ kconfig/merge_config.sh
|
||||
@@ -109,7 +109,8 @@ if [ ! -r "$INITFILE" ]; then
|
||||
fi
|
||||
|
||||
MERGE_LIST=$*
|
||||
-SED_CONFIG_EXP="s/^\(# \)\{0,1\}\(${CONFIG_PREFIX}[a-zA-Z0-9_]*\)[= ].*/\2/p"
|
||||
+SED_CONFIG_EXP1="s/^\(${CONFIG_PREFIX}[a-zA-Z0-9_]*\)=.*/\1/p"
|
||||
+SED_CONFIG_EXP2="s/^# \(${CONFIG_PREFIX}[a-zA-Z0-9_]*\) is not set$/\1/p"
|
||||
|
||||
TMP_FILE=$(mktemp -t .tmp.config.XXXXXXXXXX)
|
||||
|
||||
@@ -123,7 +124,7 @@ for MERGE_FILE in $MERGE_LIST ; do
|
||||
echo "The merge file '$MERGE_FILE' does not exist. Exit." >&2
|
||||
exit 1
|
||||
fi
|
||||
- CFG_LIST=$(sed -n "$SED_CONFIG_EXP" $MERGE_FILE)
|
||||
+ CFG_LIST=$(sed -n -e "$SED_CONFIG_EXP1" -e "$SED_CONFIG_EXP2" $MERGE_FILE)
|
||||
|
||||
for CFG in $CFG_LIST ; do
|
||||
grep -q -w $CFG $TMP_FILE || continue
|
||||
@@ -166,7 +167,7 @@ make KCONFIG_ALLCONFIG=$TMP_FILE $EXTERN
|
||||
|
||||
|
||||
# Check all specified config values took (might have missed-dependency issues)
|
||||
-for CFG in $(sed -n "$SED_CONFIG_EXP" $TMP_FILE); do
|
||||
+for CFG in $(sed -n -e "$SED_CONFIG_EXP1" -e "$SED_CONFIG_EXP2" $TMP_FILE); do
|
||||
|
||||
REQUESTED_VAL=$(grep -w -e "$CFG" $TMP_FILE)
|
||||
ACTUAL_VAL=$(grep -w -e "$CFG" "$KCONFIG_CONFIG")
|
@ -9,3 +9,4 @@
|
||||
18-merge-config.sh-create-temporary-files-in-tmp.patch
|
||||
19-merge_config.sh-add-br2-external-support.patch
|
||||
20-merge_config.sh-Allow-to-define-config-prefix.patch
|
||||
21-Avoid-false-positive-matches-from-comment-lines.patch
|
||||
|
Loading…
Reference in New Issue
Block a user