kconfig/merge_config.sh: Support KCONFIG_CONFIG
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
@@ -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
Quoted 22 lines · Gabriel de Perthuis
All make targets support $KCONFIG_CONFIG because they run
scripts/kconf. Make suremerge_config.shaccesses 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 respectsKCONFIG_CONFIG) and one for direct use of the script without -m, which called make rules that editKCONFIG_CONFIGbut verified a different file.Signed-off-by Gabriel de Perthuis <[email protected]>Cc Michal Marek <[email protected]>--- scripts/kconfig/merge_config.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)scripts/kconfig/merge_config.sh +0
-0
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
Quoted 27 lines · Michal Marek
Quoted 26 lines · Gabriel de Perthuis
All make targets support $KCONFIG_CONFIG because they run
scripts/kconf. Make suremerge_config.shaccesses 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 respectsKCONFIG_CONFIG) and one for direct use of the script without -m, which called make rules that editKCONFIG_CONFIGbut verified a different file.Signed-off-by Gabriel de Perthuis <[email protected]>Cc Michal Marek <[email protected]>--- scripts/kconfig/merge_config.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)scripts/kconfig/merge_config.sh +0
-0@@ -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.
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 suremerge_config.shaccesses 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 respectsKCONFIG_CONFIG) and one for direct use of the script without -m, which called make rules that editKCONFIG_CONFIGbut verified a different file.Signed-off-by Gabriel de Perthuis <[email protected]>Cc Michal Marek <[email protected]>--- scripts/kconfig/merge_config.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)scripts/kconfig/merge_config.sh +0
-0@@ -122,13 +122,13 @@ for MERGE_FILE in $MERGE_LIST ; do done cat $MERGE_FILE >> $TMP_FILE done if [ "$RUNMAKE" = "false" ]; thenQuoted 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