Skip to contentSkip to conversation

kconfig/merge_config.sh: Support KCONFIG_CONFIG

PATCH In review Gabriel de Perthuis 2 participants 4 messages Sep 9, 2015 – Oct 14, 2015

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/2 kconfig/merge_config.sh: Support KCONFIG_CONFIG

All make targets support $KCONFIG_CONFIG because they run scripts/kconf. Make sure merge_config.sh accesses the correct file in all cases.

Previously this script broke in two different code paths, one for targets like kvmconfig (which use merge_config.sh -m then call a target that respects KCONFIG_CONFIG) and one for direct use of the script without -m, which called make rules that edit KCONFIG_CONFIG but verified a different file.

---
 scripts/kconfig/merge_config.sh | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
scripts/kconfig/merge_config.sh +2 -2
index 0d883b3..5f1e110 100755
@@ -122,13 +122,13 @@ for MERGE_FILE in $MERGE_LIST ; do
 	done
 	cat $MERGE_FILE >> $TMP_FILE
 done
  if [ "$RUNMAKE" = "false" ]; then
-	cp $TMP_FILE $OUTPUT/.config
+	cp $TMP_FILE ${KCONFIG_CONFIG:=$OUTPUT/.config}
 	echo "#"
-	echo "# merged configuration written to $OUTPUT/.config (needs make)"
+	echo "# merged configuration written to $KCONFIG_CONFIG (needs make)"
 	echo "#"
 	clean_up
 	exit
 fi
 @@ -148,11 +148,11 @@ make KCONFIG_ALLCONFIG=$TMP_FILE $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
REQUESTED_VAL=$(grep -w -e "$CFG" $TMP_FILE)
- ACTUAL_VAL=$(grep -w -e "$CFG" $OUTPUT/.config)
+ ACTUAL_VAL=$(grep -w -e "$CFG" ${KCONFIG_CONFIG:=$OUTPUT/.config})
if [ "x$REQUESTED_VAL" != "x$ACTUAL_VAL" ] ; then
echo "Value requested for $CFG not in final .config" echo "Requested value: $REQUESTED_VAL"
echo "Actual value: $ACTUAL_VAL"
echo ""

Signature · 1 line
2.6.0.rc0.29.g24f8d8a
#1 lore raw
Quoted 22 lines · Gabriel de Perthuis

All make targets support $KCONFIG_CONFIG because they run scripts/kconf. Make sure merge_config.sh accesses the correct file in all cases.

Previously this script broke in two different code paths, one for targets like kvmconfig (which use merge_config.sh -m then call a target that respects KCONFIG_CONFIG) and one for direct use of the script without -m, which called make rules that edit KCONFIG_CONFIG but verified a different file.

---
  scripts/kconfig/merge_config.sh | 6 +++---
  1 file changed, 3 insertions(+), 3 deletions(-)
scripts/kconfig/merge_config.sh +0 -0
index 0d883b3..5f1e110 100755

scripts/kconfig/merge_config.sh for MERGE_FILE in $MERGE_LIST ; do · line 128

Quoted 9 lines
scripts/kconfig/merge_config.sh +2 -2
@@ -122,13 +122,13 @@ for MERGE_FILE in $MERGE_LIST ; do
  	done
  	cat $MERGE_FILE >> $TMP_FILE
  done
   if [ "$RUNMAKE" = "false" ]; then
-	cp $TMP_FILE $OUTPUT/.config
+	cp $TMP_FILE ${KCONFIG_CONFIG:=$OUTPUT/.config}
  	echo "#"
-	echo "# merged configuration written to $OUTPUT/.config (needs make)"
+	echo "# merged configuration written to $KCONFIG_CONFIG (needs make)"

The message will not contain the name of the output file when invoked directly and without the variable set. Also, it will be more readable if you set the default value once and then use simply $KCONFIG_CONFIG.

Michal

#2 lore raw
Quoted 27 lines · Michal Marek
Quoted 26 lines · Gabriel de Perthuis

All make targets support $KCONFIG_CONFIG because they run scripts/kconf. Make sure merge_config.sh accesses the correct file in all cases.

Previously this script broke in two different code paths, one for targets like kvmconfig (which use merge_config.sh -m then call a target that respects KCONFIG_CONFIG) and one for direct use of the script without -m, which called make rules that edit KCONFIG_CONFIG but verified a different file.

---
   scripts/kconfig/merge_config.sh | 6 +++---
   1 file changed, 3 insertions(+), 3 deletions(-)
scripts/kconfig/merge_config.sh +0 -0
index 0d883b3..5f1e110 100755
@@ -122,13 +122,13 @@ for MERGE_FILE in $MERGE_LIST ; do
   	done
   	cat $MERGE_FILE >> $TMP_FILE
   done
    if [ "$RUNMAKE" = "false" ]; then
Quoted 8 lines

scripts/kconfig/merge_config.sh for MERGE_FILE in $MERGE_LIST ; do · line 128

Quoted 5 lines
scripts/kconfig/merge_config.sh +2 -2
-	cp $TMP_FILE $OUTPUT/.config
+	cp $TMP_FILE ${KCONFIG_CONFIG:=$OUTPUT/.config}
   	echo "#"
-	echo "# merged configuration written to $OUTPUT/.config (needs make)"
+	echo "# merged configuration written to $KCONFIG_CONFIG (needs make)"

The message will not contain the name of the output file when invoked directly and without the variable set.

Don't miss the ${:=} assignments.

Quoted 1 line

Also, it will be more readable if you set the default value once and then use simply $KCONFIG_CONFIG.

I'll resubmit something more explicit, pick whichever you prefer.

#3 lore raw
Quoted 37 lines · Gabriel de Perthuis
Quoted 27 lines · Michal Marek
Quoted 26 lines · Gabriel de Perthuis

All make targets support $KCONFIG_CONFIG because they run scripts/kconf. Make sure merge_config.sh accesses the correct file in all cases.

Previously this script broke in two different code paths, one for targets like kvmconfig (which use merge_config.sh -m then call a target that respects KCONFIG_CONFIG) and one for direct use of the script without -m, which called make rules that edit KCONFIG_CONFIG but verified a different file.

---
   scripts/kconfig/merge_config.sh | 6 +++---
   1 file changed, 3 insertions(+), 3 deletions(-)
scripts/kconfig/merge_config.sh +0 -0
index 0d883b3..5f1e110 100755
@@ -122,13 +122,13 @@ for MERGE_FILE in $MERGE_LIST ; do
   	done
   	cat $MERGE_FILE >> $TMP_FILE
   done
    if [ "$RUNMAKE" = "false" ]; then
Quoted 8 lines

scripts/kconfig/merge_config.sh for MERGE_FILE in $MERGE_LIST ; do · line 128

Quoted 5 lines
scripts/kconfig/merge_config.sh +2 -2
-	cp $TMP_FILE $OUTPUT/.config
+	cp $TMP_FILE ${KCONFIG_CONFIG:=$OUTPUT/.config}
   	echo "#"
-	echo "# merged configuration written to $OUTPUT/.config (needs make)"
+	echo "# merged configuration written to $KCONFIG_CONFIG (needs make)"

The message will not contain the name of the output file when invoked directly and without the variable set.

Quoted 1 line

Don't miss the ${:=} assignments.

Ah, you are right. I confused them with ":-".

Quoted 4 lines
Quoted 1 line

Also, it will be more readable if you set the default value once and

then use simply $KCONFIG_CONFIG.

I'll resubmit something more explicit, pick whichever you prefer.

Please do so. While the patch is correct, patching the first usage of the variable in various code flows is not easy to follow.

Michal