Re: [PATCH] kconfig: Add merge_config.sh script

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Thu, Nov 17, 2011 at 5:54 PM, john stultz <johnstul@xxxxxxxxxx> wrote:
> On Thu, 2011-11-17 at 17:44 -0500, Arnaud Lacombe wrote:
>> Hi,
>>
>> On Thu, Nov 17, 2011 at 4:58 PM, john stultz <johnstul@xxxxxxxxxx> wrote:
>> > Hey Andrew,
>> >        I've tried sending this via Michal a few times, but haven't heard much
>> > back. So I wanted to check if you would consider merging it via your
>> > tree, or if you had any suggestions of who would be better to
>> > review/merge this.
>> >
>> One of the worry I would have is that the script is merging config
>> blindly, ie. there is no dependency checking done. I have some some
>> work-in-progress to help resolving this, but still lots of thought to
>> be implemented.
>
> So the script actually does warn you if a specified option is dropped
> due to missing dependencies or if the option is removed.  So, I guess
> could you clarify your concern a bit more?
>
well, assuming the following Kconfig's snippet:

choice
        bool "choice"
config A
        bool "A"
config B
        bool "B"
endchoice

and trying to merge:

 - `config1':

CONFIG_A=y

 - `config2':

Result in:

 % sh scripts/kconfig/merge_config.sh config1 config2
Merging config1
Merging config2
scripts/kconfig/conf --alldefconfig Kconfig
./.tmp.config.uMY8Z97l9T:2:warning: override: B changes choice state
#
# configuration written to .config
#

% cat .config
#
# Automatically generated file; DO NOT EDIT.
# Linux Kernel Configuration
#
# CONFIG_A is not set
CONFIG_B=y

so we still get the warning from the incantation of `alldefconfig',
but the one in the script is defeated.

Moreover, there might still be performance optimization to realize,
considering a base 'defconfig' amended by disabling
CONFIG_DECOMPRESS_GZIP, we get:

% time sh scripts/kconfig/merge_config.sh base amend
Merging base
Merging amend
Value of CONFIG_DECOMPRESS_GZIP is redefined by fragment amend:
Previous value: CONFIG_DECOMPRESS_GZIP=y
New value: # CONFIG_DECOMPRESS_GZIP is not set

scripts/kconfig/conf --alldefconfig Kconfig
#
# configuration written to .config
#
sh scripts/kconfig/merge_config.sh base amend  158.20s user 30.19s
system 100% cpu 3:07.86 total

Just by getting rid of the two `| grep ...' in the last step:

--- a/scripts/kconfig/merge_config.sh
+++ b/scripts/kconfig/merge_config.sh
@@ -104,8 +104,8 @@ make KCONFIG_ALLCONFIG=$TMP_FILE $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=$(sed -n "$SED_CONFIG_EXP" $TMP_FILE | grep -w -e "$CFG")
-       ACTUAL_VAL=$(sed -n "$SED_CONFIG_EXP" .config | grep -w -e "$CFG")
+       REQUESTED_VAL=$(sed -n "/\<$CFG\>/!d; $SED_CONFIG_EXP" $TMP_FILE)
+       ACTUAL_VAL=$(sed -n "/\<$CFG\>/!d; $SED_CONFIG_EXP" .config)
        if [ "x$REQUESTED_VAL" != "x$ACTUAL_VAL" ] ; then
                echo "Value requested for $CFG not in final .config"
                echo "Requested value:  $REQUESTED_VAL"

we get:

sh scripts/kconfig/merge_config.sh base amend  23.20s user 22.30s
system 94% cpu 48.033 total

Btw, there is other nits in the scripts I'll comment separately.

 - Arnaud
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux