19 Dec, 2011

1 commit

  • Use the xfwrite wrapper function defined in lkc.h to check the return value of
    fwrite and silence these warnings.

    HOSTCC scripts/kconfig/zconf.tab.o
    scripts/kconfig/zconf.tab.c: In function 'header_print_comment':
    /usr/src/lto/scripts/kconfig/confdata.c:551:10: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
    scripts/kconfig/zconf.tab.c: In function 'kconfig_print_comment':
    /usr/src/lto/scripts/kconfig/confdata.c:467:10: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result

    Signed-off-by: Peter Foley
    Signed-off-by: Michal Marek

    Peter Foley
     

30 Aug, 2011

1 commit


30 Jul, 2011

1 commit

  • Replace the config_is_*() macros with a variant that allows for grepping
    for usage of CONFIG_* options in the code. Usage:

    if (IS_ENABLED(CONFIG_NUMA))

    or

    #if IS_ENABLED(CONFIG_NUMA)

    The IS_ENABLED() macro evaluates to 1 if the argument is set (to either 'y'
    or 'm'), IS_BUILTIN() tests if the option is 'y' and IS_MODULE() test if
    the option is 'm'. Only boolean and tristate options are supported.

    Reviewed-by: Arnaud Lacombe
    Acked-by: Randy Dunlap
    Signed-off-by: Michal Marek

    Michal Marek
     

18 Jul, 2011

1 commit

  • The specialized printer for headers (espectially autoconf.h) is missing
    fixup code for S_HEX symbol's "0x" prefix. As long as kconfig does not
    warn for such missing prefix, this code is needed. Fix this.

    In the same time, fix some nits in `header_print_symbol()'.

    Cc: Randy Dunlap
    Cc: Mauro Carvalho Chehab

    Broken-by: Arnaud Lacombe
    Reported-by: Randy Dunlap
    Reported-by: Mauro Carvalho Chehab
    Acked-by: Mauro Carvalho Chehab
    Acked-by: Randy Dunlap
    Signed-off-by: Arnaud Lacombe
    Signed-off-by: Michal Marek

    Arnaud Lacombe
     

01 Jul, 2011

1 commit

  • Make conf_write_symbol() grammar agnostic to be able to use it from different
    code path. These path pass a printer callback which will print a symbol's name
    and its value in different format.

    conf_write_symbol()'s job become mostly only to prepare a string for the
    printer. This avoid to have to pass specialized flag to generic
    functions

    Signed-off-by: Arnaud Lacombe
    [mmarek: rebased on top of de12518 (kconfig: autogenerated config_is_xxx
    macro)]
    Signed-off-by: Michal Marek

    Arnaud Lacombe
     

09 Jun, 2011

1 commit


07 Jun, 2011

4 commits


25 May, 2011

1 commit


24 May, 2011

2 commits


17 May, 2011

1 commit

  • this will allow to use to use

    if(config_is_xxx())
    if(config_is_xxx_module())

    in the code instead of

    #ifdef CONFIG_xxx
    #ifdef CONFIG_xxx_MODULE

    and now let the compiler remove the non usefull code and not the
    pre-processor

    as done in the mach-types for arm as exmaple

    Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD
    Acked-by: Andi Kleen
    Signed-off-by: Michal Marek

    Jean-Christophe PLAGNIOL-VILLARD
     

18 Apr, 2011

1 commit


15 Dec, 2010

3 commits


28 Oct, 2010

1 commit


04 Oct, 2010

1 commit


01 Oct, 2010

1 commit

  • commit 8baefd30b5b0101aa07aa75da44a9eee881eed28 of linux-next replaced
    a `switch()' statement with some `if()' statements, but left `break's
    in the `switch()' statement untouched. This cause read config loop to
    exit and so "make oldconfig" is not much usable (see below).

    > $ make oldconfig
    >
    > scripts/kconfig/conf --oldconfig Kconfig
    > #
    > # using defaults found in /boot/config-2.6.34-ccs-r1
    > #
    > *
    > * Restart config...
    > *
    > *
    > * General setup
    > *
    > Prompt for development and/or incomplete code/drivers (EXPERIMENTAL) [N/y/?] (NEW)

    (I've already have "CONFIG_EXPERIMENTAL=y" in the old config file. But
    that's not read here.)

    This patch should fix this problem.

    Signed-off-by: Naohiro Aota
    Signed-off-by: Michal Marek

    Naohiro Aota
     

20 Sep, 2010

3 commits


17 Aug, 2010

2 commits


15 Aug, 2010

1 commit

  • savedefconfig failed to save the correct minimal config
    when it encountered a choice marked optional.

    Consider following minimal configuration:
    $cat Kconfig
    choice
    prompt "choice"
    optional

    config A
    bool "a"

    config B
    bool "b"

    endchoice

    $cat .config | grep -v ^#
    CONFIG_A=y

    $conf --savedefconfig=defconfig Kconfig

    would before this fix result in an empty file, because
    kconfig would assume that CONFIG_A=y is a default value.
    But because the choice is optional the default is that
    both A and B are =n.

    Fix so we handle optional choices correct.

    Signed-off-by: Sam Ravnborg
    Signed-off-by: Michal Marek

    Sam Ravnborg
     

13 Aug, 2010

1 commit


12 Aug, 2010

2 commits

  • If a minimal config did not specify the value
    of all choice values, the resulting configuration
    could have wrong values.

    Consider following example:
    config M
    def_bool y
    option modules
    choice
    prompt "choice list"
    config A
    tristate "a"
    config B
    tristate "b"
    endchoice

    With a defconfig like this:
    CONFIG_M=y
    CONFIG_A=y

    The resulting configuration would have

    CONFIG_A=m

    which was unexpected.

    The problem was not not all choice values were set and thus
    kconfig calculated a wrong value.

    The fix is to set all choice values when we
    read a defconfig files.

    conf_set_all_new_symbols() is refactored such that
    random choice values are now handled by a dedicated function.
    And new choice values are set by set_all_choice_values().

    This was not the minimal fix, but the fix that resulted
    in the most readable code.

    Signed-off-by: Sam Ravnborg
    Reported-by: Arve Hjønnevåg
    Tested-by: Arve Hjønnevåg
    Signed-off-by: Michal Marek

    Sam Ravnborg
     
  • savedefconfig failed to save choice symbols equal to 'y'
    for tristate choices.
    This resulted in this value being lost.

    In particular is fixes an issue where

    make ARCH=avr32 atngw100_defconfig
    make ARCH=avr32 savedefconfig
    cp defconfig arch/avr32/configs/atngw100_defconfig
    make ARCH=avr32 atngw100_defconfig
    diff -u .config .config.old

    failed to produce an identical .config.

    Signed-off-by: Sam Ravnborg
    Signed-off-by: Michal Marek

    Sam Ravnborg
     

03 Aug, 2010

2 commits

  • savedefconfig will save a minimal config to a file
    named "defconfig".

    The config symbols are saved in the same order as
    they appear in the menu structure so it should
    be possible to map them to the relevant menus
    if desired.

    The implementation was tested against several minimal
    configs for arm which was created using brute-force.

    There was one regression related to default numbers
    which had their valid range further limited by another symbol.

    Sample:

    config FOO
    int "foo"
    default 4

    config BAR
    int "bar"
    range 0 FOO

    If FOO is set to 3 then BAR cannot take a value higher than 3.
    But the current implementation will set BAR equal to 4.

    This is seldomly used and the final configuration is OK,
    and the fix was non-trivial.
    So it was documented in the code and left as is.

    Signed-off-by: Sam Ravnborg
    Acked-by: Uwe Kleine-König
    Signed-off-by: Michal Marek

    Sam Ravnborg
     
  • Add a a few local functions to avoid some code duplication
    No functional changes.

    Signed-off-by: Sam Ravnborg
    Signed-off-by: Michal Marek

    Sam Ravnborg
     

29 Jul, 2010

1 commit

  • There seems to be a kconfig bug due to MODULES not always being
    evaluated if no .config is found. Take the following Kconfig as an
    example:

    config MODULES
    def_bool y

    config FOO
    def_tristate m

    With no .config, the following configuration is generated:

    CONFIG_MODULES=y
    CONFIG_FOO=y

    With an empty .config, the following:

    CONFIG_MODULES=y
    CONFIG_FOO=m

    Tristate choice statements can also exhibit the problem, due to having an
    implicit rev_dep (select) containing "m".

    The problem is that MODULES is never evaluted in conf_read_simple() unless
    there's a .config. The following patch fixes this.

    Signed-off-by: Ulf Magnusson
    Reviewed-by: WANG Cong
    Signed-off-by: Michal Marek

    Ulf Magnusson
     

26 Jul, 2010

1 commit


12 Dec, 2009

2 commits


20 Sep, 2009

1 commit


10 Jun, 2009

1 commit


16 Mar, 2009

1 commit

  • Ingo Molnar reported that 'make randconfig' was not covering
    choice blocks properly, resulting in certain config options
    being left out of randconfig testing altogether.

    With the following patch we:
    - properly randomize choice value for normal choice blocks
    - properly randomize for multi choice blocks
    - added several comments to explain what is going on

    The root cause of the bug was that SYMBOL_VALID was set on the
    symbol representing the choice block so clearing this did
    the trick initially.
    But testign revealed a few more issues that is now fixed.

    Reported-by: Ingo Molnar
    Cc: Ingo Molnar
    Cc: Roman Zippel
    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     

27 Oct, 2008

1 commit

  • If you use KCONFIG_ALLCONFIG (even with empty file) you get broken
    allmodconfig/allyesconfig; CONFIG_MODULES gets turned off, with obvious
    massive fallout.

    Breakage had been introduced when conf_set_all_new_symbols() got used
    for allmodconfig et.al.

    What happens is that sym_calc_value(modules_sym) done in
    conf_read_simple() sets SYMBOL_VALID on both modules_sym and MODULES.
    When we get to conf_set_all_new_symbols(), we set sym->def[S_DEF_USER]
    on everything, but it has no effect on sym->curr for the symbols that
    already have SYMBOL_VALID - these are stuck.

    Solution: use sym_clear_all_valid() in there. Note that it makes
    reevaluation of modules_sym redundant - sym_clear_all_valid() will do
    that itself.

    [ Fixes http://bugzilla.kernel.org/show_bug.cgi?id=11512, says Alexey ]

    Signed-off-by: Al Viro
    Cc: Sam Ravnborg
    Cc: Roman Zippel
    Cc: Alexey Dobriyan
    Signed-off-by: Linus Torvalds

    Al Viro