1. 13 4月, 2012 1 次提交
  2. 26 1月, 2012 1 次提交
    • A
      kconfig: fix new choices being skipped upon config update · 5d09598d
      Arnaud Lacombe 提交于
      Running `oldconfig' after any of the following configuration change:
      
      either trivial addition, such as:
      
      config A
      	bool "A"
      
      choice
      	prompt "Choice ?"
      	depends on A
      
      	config CHOICE_B
      		bool "Choice B"
      
      	config CHOICE_C
      		bool "Choice C"
      endchoice
      
      or more tricky change:
      
      OLD KCONFIG                      |  NEW KCONFIG
                                       |
                                       |  config A
                                       |          bool "A"
                                       |
      choice                           |  choice
              prompt "Choice ?"        |          prompt "Choice ?"
                                       |
              config CHOICE_C          |          config CHOICE_C
                      bool "Choice C"  |                  bool "Choice C"
                                       |
              config CHOICE_D          |          config CHOICE_D
                      bool "Choice D"  |                  bool "Choice D"
      endchoice                        |
                                       |          config CHOICE_E
                                       |                  bool "Choice E"
                                       |                  depends on A
                                       |  endchoice
      
      will not cause the choice to be considered as NEW, and thus not be
      asked. The cause of this behavior is that choice's novelty are computed
      statically right after the saved configuration has been read. At this
      point, the new dependency's value is still unknown and asserted to be
      `no'. Moreover, no update to this decision is made afterward.
      
      Correct this by dynamically evaluating a choice's novelty, and removing the
      static evaluation.
      Reported-and-tested-by: NUwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Signed-off-by: NArnaud Lacombe <lacombar@gmail.com>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      5d09598d
  3. 19 12月, 2011 1 次提交
    • P
      kconfig: use xfwrite wrapper function to silence warnings · 70cc01e7
      Peter Foley 提交于
      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: NPeter Foley <pefoley2@verizon.net>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      70cc01e7
  4. 30 8月, 2011 1 次提交
  5. 30 7月, 2011 1 次提交
  6. 18 7月, 2011 1 次提交
  7. 01 7月, 2011 1 次提交
    • A
      kconfig: introduce specialized printer · e54e692b
      Arnaud Lacombe 提交于
      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: NArnaud Lacombe <lacombar@gmail.com>
      [mmarek: rebased on top of de125187 (kconfig: autogenerated config_is_xxx
      macro)]
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      e54e692b
  8. 07 6月, 2011 4 次提交
  9. 25 5月, 2011 1 次提交
  10. 24 5月, 2011 1 次提交
  11. 17 5月, 2011 1 次提交
  12. 18 4月, 2011 1 次提交
  13. 15 12月, 2010 3 次提交
  14. 02 11月, 2010 1 次提交
  15. 04 10月, 2010 1 次提交
  16. 01 10月, 2010 1 次提交
    • N
      kconfig: Don't go out from read config loop when you read new symbol · 8bea7548
      Naohiro Aota 提交于
      commit 8baefd30 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
      ><snip>
      > 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: NNaohiro Aota <naota@elisp.net>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      8bea7548
  17. 20 9月, 2010 3 次提交
  18. 17 8月, 2010 2 次提交
  19. 15 8月, 2010 1 次提交
    • S
      kconfig: fix savedefconfig with choice marked optional · 84062dd3
      Sam Ravnborg 提交于
      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: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      84062dd3
  20. 13 8月, 2010 1 次提交
  21. 12 8月, 2010 2 次提交
    • S
      kconfig: fix tristate choice with minimal config · a64b44ea
      Sam Ravnborg 提交于
      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: NSam Ravnborg <sam@ravnborg.org>
      Reported-by: NArve Hjønnevåg <arve@android.com>
      Tested-by: NArve Hjønnevåg <arve@android.com>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      a64b44ea
    • S
      kconfig: fix savedefconfig for tristate choices · 801690ca
      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: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      801690ca
  22. 03 8月, 2010 2 次提交
    • S
      kconfig: add savedefconfig · 7cf3d73b
      Sam Ravnborg 提交于
      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: NSam Ravnborg <sam@ravnborg.org>
      Acked-by: NUwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      7cf3d73b
    • S
      kconfig: code refactoring in confdata.c · 49192f26
      Sam Ravnborg 提交于
      Add a a few local functions to avoid some code duplication
      No functional changes.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      49192f26
  23. 29 7月, 2010 1 次提交
    • U
      kconfig: fix MODULES-related bug in case of no .config · ac1ffde1
      Ulf Magnusson 提交于
      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: NUlf Magnusson <ulfalizer.lkml@gmail.com>
      Reviewed-by: NWANG Cong <xiyou.wangcong@gmail.com>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      ac1ffde1
  24. 26 7月, 2010 1 次提交
  25. 12 12月, 2009 2 次提交
  26. 20 9月, 2009 1 次提交
  27. 10 6月, 2009 1 次提交
  28. 16 3月, 2009 1 次提交
    • S
      kconfig: fix randconfig for choice blocks · 184832c9
      Sam Ravnborg 提交于
      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: NIngo Molnar <mingo@elte.hu>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Roman Zippel <zippel@linux-m68k.org>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      184832c9
  29. 27 10月, 2008 1 次提交
    • A
      fix allmodconfig breakage · ce97e13e
      Al Viro 提交于
      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: NAl Viro <viro@zeniv.linux.org.uk>
      Cc: Sam Ravnborg <sam@ravnborg.org>
      Cc: Roman Zippel <zippel@linux-m68k.org>
      Cc: Alexey Dobriyan <adobriyan@gmail.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      ce97e13e