10 Dec, 2015

1 commit


09 Apr, 2015

1 commit


10 Jun, 2014

1 commit


25 Jun, 2013

1 commit

  • Because of choice-in-a-choice constructs, it can happen that not all
    symbols are assigned a value during randconfig, leading in rare cases
    to this situation:

    ---8 2. B (B)
    3. C (C)
    choice[1-3]: 2
    E/F
    > 1. E (E) (NEW)
    2. F (F) (NEW)
    choice[1-2]: aborted!

    Console input/output is redirected. Run 'make oldconfig' to update
    configuration.

    Fix this by looping in randconfig for as long as some symbol gets assigned
    a value.

    Note: this was spotted with the USB EHCI Debug Device Gadget (USB_G_DBGP),
    which uses this choice-in-a-choice construct, and exhibits this problem.
    The example above is just a stripped-down minimalist test-case.

    Signed-off-by: "Yann E. MORIN"

    Yann E. MORIN
     

19 Jun, 2013

2 commits


25 Apr, 2013

1 commit

  • For reproducibility, it can be useful to be able to specify the
    seed to use to seed the RNG.

    Add a new KCONFIG_SEED environment variable which can be set to
    the seed to use:
    $ make KCONFIG_SEED=42 randconfig
    $ sha1sum .config
    70a128c8dcc61303069e1be352cce64114dfcbca .config
    $ make KCONFIG_SEED=42 randconfig
    $ sha1sum .config
    70a128c8dcc61303069e1be352cce64114dfcbca .config

    It's very usefull for eg. debugging the kconfig parser.

    Signed-off-by: "Yann E. MORIN"

    Yann E. MORIN
     

19 Feb, 2013

1 commit

  • According to Documentation/kbuild/kconfig.txt, the commands:

    yes "" | make oldconfig >conf.new
    grep "(NEW)" conf.new

    should list the new config symbols with their default values.
    However, currently there is no line break after each new symbol. When
    kconfig is interactive the user will type a new-line at this point,
    but when non-interactive kconfig must print it.

    Signed-off-by: Ben Hutchings
    Reference: http://bugs.debian.org/636029
    [regid23@nt1.in: Adjusted Ben's work to apply cleanly to this tree]
    Reported-and-tested-by: Regid Ichira
    Reviewed-by: Jonathan Nieder
    Signed-off-by: Michal Marek

    Ben Hutchings
     

28 Sep, 2012

1 commit

  • As 67d34a6a391369269a2e5dba8a5f42cc4cd50231 said, 'oldnoconfig' doesn't
    set new symbols to 'n', but instead sets it to their default values.

    So, this patch replaces 'oldnoconfig' with 'olddefconfig', stop making
    people confused, and keep the old name 'oldnoconfig' as an alias,
    because people already are dependent on its behavior with the
    counter-intuitive name.

    Signed-off-by: Adam Lee
    Signed-off-by: Michal Marek

    Adam Lee
     

31 Aug, 2012

1 commit

  • As 67d34a6a391369269a2e5dba8a5f42cc4cd50231 said, the make target
    'oldnoconfig' is a misnomer. It doesn't set new symbols to 'n', but
    instead sets it to their default values.

    This patch fixes the document in conf.c, and will submit another patch
    to replace 'oldnoconfig' to 'olddefconfig'

    Signed-off-by: Adam Lee
    Signed-off-by: Michal Marek

    Adam Lee
     

08 May, 2012

1 commit

  • Prevent subtle surprises to both people working on the kconfig code
    and people using make allnoconfig allyesconfig allmoconfig and
    randconfig by only attempting to read a config file if
    KCONFIG_ALLCONFIG is set.

    Common sense suggests attempting to read the extra config files does
    not make sense unless requested. The documentation says the code
    won't attempt to read the extra config files unless requested.
    Current usage does not appear to include people depending on the code
    reading the config files without the variable being set So do the
    simple thing and stop reading config files when passed
    all{no,yes,mod,def,rand}config unless KCONFIG_ALLCONFIG environment
    variable is set.

    Signed-off-by: Eric W. Biederman
    Reported-by: Stephen Rothwell
    Signed-off-by: Michal Marek

    Eric W. Biederman
     

05 May, 2012

1 commit

  • - Only try to read the file specified if KCONFIG_ALL_CONFIG is set to
    something other than the empty string or "1".

    - Don't use stat to check the name passed to conf_read_simple so that
    zconf_fopen can find the file in the current directory or in SRCTREE
    removing a extremely source of confusing failure, where KCONFIG_ALL_CONFIG
    was not interpreted with respect to the directory make was called in.

    - If conf_read_simple fails complain clearly and stop processing.
    Allowing the simple debugging of typos.

    - Clearly document the behavior so it is clear to users which
    values are treated as flags and which values are treated as
    filenames.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: Michal Marek

    Eric W. Biederman
     

02 Jul, 2011

3 commits


07 Jun, 2011

2 commits


24 Apr, 2011

1 commit

  • Commit 40aee729b350 ('kconfig: fix default value for choice input')
    fixed some cases where kconfig would select the wrong option from a
    choice with a single valid option and thus enter an infinite loop.

    However, this broke the test for user input of the form 'N?', because
    when kconfig selects the single valid option the input is zero-length
    and the test will read the byte before the input buffer. If this
    happens to contain '?' (as it will in a mips build on Debian unstable
    today) then kconfig again enters an infinite loop.

    Signed-off-by: Ben Hutchings
    Cc: stable@kernel.org [2.6.17+]
    Signed-off-by: Linus Torvalds

    Ben Hutchings
     

15 Dec, 2010

1 commit


12 Oct, 2010

1 commit


10 Oct, 2010

1 commit

  • Commit 861b4ea4 broke oldnoconfig when removed the oldnoconfig checks on
    if (input_mode == nonint_oldconfig ||
    input_mode == oldnoconfig) {
    if (input_mode == nonint_oldconfig &&
    sym->name &&
    !sym_is_choice_value(sym)) {
    to avoid oldnoconfig chugging through the else stanza.

    Fix that to restore expected behaviour (which I've confirmed in the
    Fedora kernel build that the configs end up looking the same.)

    Signed-off-by: Kyle McMartin
    Acked-by: Sam Ravnborg
    Signed-off-by: Michal Marek

    Kyle McMartin
     

20 Sep, 2010

2 commits


08 Sep, 2010

1 commit

  • Commit 861b4ea4 broke oldnoconfig when removed the oldnoconfig checks on
    if (input_mode == nonint_oldconfig ||
    input_mode == oldnoconfig) {
    if (input_mode == nonint_oldconfig &&
    sym->name &&
    !sym_is_choice_value(sym)) {
    to avoid oldnoconfig chugging through the else stanza.

    Fix that to restore expected behaviour (which I've confirmed in the
    Fedora kernel build that the configs end up looking the same.)

    Signed-off-by: Kyle McMartin
    Acked-by: Sam Ravnborg
    Signed-off-by: Michal Marek

    Kyle McMartin
     

31 Aug, 2010

1 commit


14 Aug, 2010

1 commit


13 Aug, 2010

1 commit


07 Aug, 2010

1 commit

  • Linus wrote:
    This seems to make "make oldconfig" a _lot_ more verbose than it
    used to be. In a very annoying way.

    I just did a quick git bisect. It's introduced by commit 4062f1a4c030
    ("kconfig: use long options in conf") by Sam Ravnborg. Apparently that
    thing is totally buggy, and doesn't just change the option names, but
    actively breaks them.

    The old behaviour (from years ago) were reintroduced by accident. Fix
    this so we are back to the version that are silent if there is nothing
    to ask about.

    Reported-by: Linus Torvalds
    Signed-off-by: Sam Ravnborg
    Reviewed-by: Michal Marek
    Signed-off-by: Linus Torvalds

    Sam Ravnborg
     

03 Aug, 2010

5 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
     
  • alldefconfig create a configuration with all values set
    to their default value (form the Kconfig files).

    This may be useful when we try to use more sensible default
    values and may also be used in combination with
    the minimal defconfigs.

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

    Sam Ravnborg
     
  • Rename to a name that better match the other kconfig targets.

    listnewconfig shall read as:

    - list new options compared to current configuration

    New options are now written to stdout so one can redirect the output.

    Do not exit with an error code if there is new options.

    These are feature changes compared to the original
    nonint_oldconfig - but as this feature has not yet been in a
    released kernel it should not matter.

    It is still possible to do:

    make listnewconfig
    lookup new config options in Kconfig*
    edit .config

    Signed-off-by: Sam Ravnborg
    Cc: Aristeu Rozanski
    Acked-by: Aristeu Rozanski
    Signed-off-by: Michal Marek

    Sam Ravnborg
     
  • Rename target to something that fall more in line
    with the other kconfig targets.

    oldnoconfig shall read as:

    - read the old configuration and set all new options to no

    Signed-off-by: Sam Ravnborg
    Cc: Aristeu Rozanski
    Signed-off-by: Michal Marek

    Sam Ravnborg
     
  • The list of options supported by conf is growing
    and their abbreviation did not resemble anything usefull.

    So drop the single letter options in favour of long options.

    The long options are named equal to what we know from
    the make target.
    The internal implmentation was changed to match this,
    resulting in much more readable code.

    Support for short options is dropped - no one is supposed
    to call this program direct anyway.

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

    Sam Ravnborg
     

12 Jun, 2010

1 commit

  • Not sure if this is correct or not, but with
    make menuconfig
    HOSTCC scripts/kconfig/conf.o
    scripts/kconfig/conf.c: In function 'conf_sym':
    scripts/kconfig/conf.c:159:6: warning: variable 'type' set but not used
    scripts/kconfig/conf.c: In function 'conf_choice':
    scripts/kconfig/conf.c:231:6: warning: variable 'type' set but not used
    HOSTLD scripts/kconfig/mconf

    I get this using gcc 4.6.0 the below change fixes this form me.

    Signed-off-by: Justin P. Mattock
    Signed-off-by: Michal Marek

    Justin P. Mattock
     

02 Jun, 2010

1 commit

  • This patch has been around for a long time in Fedora and Red Hat Enterprise
    Linux kernels and it may be useful for others. The nonint_oldconfig target
    will fail and print the unset config options while loose_nonint_oldconfig will
    simply let the config option unset. They're useful in distro kernel packages
    where the config files are built using a combination of smaller config files.

    Arjan van de Ven wrote the initial nonint_config and Roland McGrath added the
    loose_nonint_oldconfig.

    Signed-off-by: Arjan van de Ven [defunct email]
    Whatevered-by: Kyle McMartin
    Acked-by: Arjan van de Ven
    Acked-by: Randy Dunlap
    Signed-off-by: Aristeu Rozanski
    [mmarek: whitespace fixes]
    Signed-off-by: Michal Marek

    Aristeu Rozanski
     

20 Sep, 2009

2 commits


10 Jun, 2009

1 commit

  • Rather than hardcoding ".config" use conf_get_configname(), which also
    respects the environment variable KCONFIG_CONFIG.

    This fixes "make silentoldconfig" when KCONFIG_CONFIG is used and also
    suggests the given filename for "Load" and "Save as" in qconf.

    Signed-off-by: Markus Heidelberg
    Signed-off-by: Sam Ravnborg

    Markus Heidelberg
     

16 Mar, 2009

1 commit

  • 'make randconfig' uses glibc's rand function, and the seed of
    that PRNG is set via:

    srand(time(NULL));

    But 'time()' only increases once every second - freezing the
    randconfig result within a single second.

    My Nehalem testbox does randconfig much faster than 1 second
    and i have a few scripts that do 'randconfig until condition X'
    loops.

    Those scripts currently waste a lot of CPU time due to randconfig
    changing its seed only once per second currently.

    Change the seed to be micrseconds based. (I checked the statistical
    spread of the seed - the now.tv_sec*now.tv_usec multiplication
    there further improves it.)

    Signed-off-by: Ingo Molnar
    Cc: Roman Zippel
    [sam: fix for systems where usec is zero - noticed by Geert Uytterhoeven]
    Signed-off-by: Sam Ravnborg

    Ingo Molnar
     

29 Sep, 2008

1 commit

  • Recent changes to oldconfig have mixed up the silentoldconfig handling,
    so this fixes that by clearly separating that special mode, e.g.
    KCONFIG_NOSILENTUPDATE is only relevant here, the .config is written as
    needed.

    This will also properly close Bug 11230.

    Signed-off-by: Roman Zippel
    Signed-off-by: Linus Torvalds

    zippel@linux-m68k.org