09 Jan, 2017

1 commit

  • commit 79e51b5c2deea542b3bb8c66e0d502230b017dde upstream.

    Currently it is impossible to edit the value of a config symbol with a
    prompt longer than (terminal width - 2) characters. dialog_inputbox()
    calculates a negative x-offset for the input window and newwin() fails
    as this is invalid. It also doesn't check for this failure, so it
    busy-loops calling wgetch(NULL) which immediately returns -1.

    The additions in the offset calculations also don't match the intended
    size of the window.

    Limit the window size and calculate the offset similarly to
    show_scroll_win().

    Fixes: 692d97c380c6 ("kconfig: new configuration interface (nconfig)")
    Signed-off-by: Ben Hutchings
    Signed-off-by: Greg Kroah-Hartman

    Ben Hutchings
     

02 Dec, 2016

1 commit

  • Some people are able to trigger a race where autoksyms.h is used before
    its empty version is even created. Let's create it at the same time as
    the directory holding it is created.

    Signed-off-by: Nicolas Pitre
    Tested-by: Prarit Bhargava
    Tested-by: Jarod Wilson
    Signed-off-by: Linus Torvalds

    Nicolas Pitre
     

27 May, 2016

1 commit

  • Pull kconfig update from Michal Marek:

    - fix for behavior of tristate choice items and fix for documentation
    of existing kconfig behavior [Dirk Gouders]

    - more helpful "unexpected data" kconfig warning [Paul Bolle]

    * 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    kconfig/symbol.c: handle choice_values that depend on 'm' symbols
    kconfig-language: elaborate on the type of a choice
    kconfig-language: fix comment on dependency-generated menu structures.
    kconfig: add unexpected data itself to warning

    Linus Torvalds
     

11 May, 2016

1 commit

  • If choices consist of choice_values of type tristate that depend on
    symbols set to 'm', those choice_values are not set to 'n' if the
    choice is changed from 'm' to 'y' (in which case only one active
    choice_value is allowed). Those values are also written to the config
    file causing modules to be built when they should not.

    The following config can be used to reproduce and examine the problem;
    with the frontend of your choice set "Choice 0" and "Choice 1" to 'm',
    then set "Tristate Choice" to 'y' and save the configuration:

    config modules
    boolean modules
    default y
    option modules

    config dependency
    tristate "Dependency"
    default m

    choice
    prompt "Tristate Choice"
    default choice0

    config choice0
    tristate "Choice 0"

    config choice1
    tristate "Choice 1"
    depends on dependency

    endchoice

    This patch sets tristate choice_values' visibility that depend on
    symbols set to 'm' to 'n' if the corresponding choice is set to 'y'.

    This makes them disappear from the choice list and will also cause the
    choice_values' value set to 'n' in sym_calc_value() and as a result
    they are written as "not set" to the resulting .config file.

    Reported-by: Sebastian Andrzej Siewior
    Signed-off-by: Dirk Gouders
    Tested-by: Sebastian Andrzej Siewior
    Tested-by: Roger Quadros
    Signed-off-by: Michal Marek

    Dirk Gouders
     

10 May, 2016

1 commit

  • If the .config parser runs into unexpected data it emits warnings like:
    .config:6911:warning: unexpected data

    Add the unexpected data itself to this warning. That makes it easier to
    discover what is actually going wrong:
    .config:6911:warning: unexpected data: CONFOG_CHARGER_TPS65217=m

    Signed-off-by: Paul Bolle
    Signed-off-by: Michal Marek

    Paul Bolle
     

27 Apr, 2016

2 commits

  • Also recognize standalone "prompt".

    Before this patch we incorrectly identified some symbols as not having a
    prompt and potentially needing to be selected by something else.

    Note that this patch could theoretically change the resulting .config,
    causing it to have fewer symbols turned on. However, given the current set
    of Kconfig files, this situation does not occur because the symbols newly
    added to %prompts are absent from %selects.

    Link: http://lkml.kernel.org/r/1461696998-3953-1-git-send-email-bpoirier@suse.com

    Signed-off-by: Benjamin Poirier
    Signed-off-by: Steven Rostedt

    Benjamin Poirier
     
  • When using `make localmodconfig` and friends, if the input config comes
    from a kernel that was built in a different environment (for example, the
    canonical case of using localmodconfig to trim a distribution kernel
    config) the key files for module signature checking will not be available
    and should be regenerated or omitted. Otherwise, the user will be faced
    with annoying errors when trying to build with the generated .config:

    make[1]: *** No rule to make target 'keyring.crt', needed by 'certs/x509_certificate_list'. Stop.
    Makefile:1576: recipe for target 'certs/' failed

    Link: http://lkml.kernel.org/r/1461696721-3001-1-git-send-email-bpoirier@suse.com

    Signed-off-by: Benjamin Poirier
    Signed-off-by: Steven Rostedt

    Benjamin Poirier
     

26 Apr, 2016

4 commits

  • That is clearly what the original intention was. This does not change the
    output .config but it prevents some useless processing.

    ! eq "m" is changed to the simpler eq "y"; symbols with values other than
    m|y are not included in %orig_configs.

    Link: http://lkml.kernel.org/r/1460333193-16361-3-git-send-email-bpoirier@suse.com

    Signed-off-by: Benjamin Poirier
    Signed-off-by: Steven Rostedt

    Benjamin Poirier
     
  • Help text may start with "help" or "---help---". This patch fixes
    read_kconfig() to recognize the second variant.

    This removes useless junk from %depends and %selects. That junk is due to
    help text that contains the words "selects" and "depends".

    Link: http://lkml.kernel.org/r/1460333193-16361-2-git-send-email-bpoirier@suse.com

    Signed-off-by: Benjamin Poirier
    Signed-off-by: Steven Rostedt

    Benjamin Poirier
     
  • Based on the list in Documentation/kbuild/kconfig-language.txt

    This removes junk from %depends because parsing of a menu entry spilled
    over to another menu entry.

    Link: http://lkml.kernel.org/r/1460333193-16361-1-git-send-email-bpoirier@suse.com

    Signed-off-by: Benjamin Poirier
    Signed-off-by: Steven Rostedt

    Benjamin Poirier
     
  • The parameter of Kconfig "source" statements does not need to be quoted.
    The current regex causes many kconfig files to be skipped and hence,
    dependencies to be missed.

    Also fix the whitespace repeat count.

    Link: http://lkml.kernel.org/r/1459619722-13695-1-git-send-email-bpoirier@suse.com

    Tested-by: Lee, Chun-Yi
    Signed-off-by: Benjamin Poirier
    Signed-off-by: Steven Rostedt

    Benjamin Poirier
     

01 Feb, 2016

2 commits

  • Prior to 3.13 make allmodconfig KCONFIG_ALLCONFIG=/dev/null used
    to be equivalent to make allmodconfig; these days it hardwires MODULES to n.
    In fact, any KCONFIG_ALLCONFIG that doesn't set MODULES explicitly is
    treated as if it set it to n.

    Regression had been introduced by commit cfa98f ("kconfig: do not
    override symbols already set"); what happens is that conf_read_simple()
    does sym_calc_value(modules_sym) on exit, which leaves SYMBOL_VALID set and
    has conf_set_all_new_symbols() skip modules_sym.

    It's pretty easy to fix - simply move that call of sym_calc_value()
    into the callers, except for the ones in KCONFIG_ALLCONFIG handling.
    Objections?

    Signed-off-by: Al Viro
    Fixes: cfa98f2e0ae9 ("kconfig: do not override symbols already set")
    Signed-off-by: Michal Marek

    Al Viro
     
  • Documentation/Changes still lists this as the minimal required version,
    so it ought to remain usable for the time being.

    Fixes: d2036f30cf ("scripts/kconfig/Makefile: Allow KBUILD_DEFCONFIG to be a target")
    Signed-off-by: Jan Beulich
    Cc: Michael Ellerman
    Signed-off-by: Michal Marek

    Jan Beulich
     

11 Jan, 2016

1 commit

  • On Debian stable (qt-4.8.6) 'make xconfig' intermittently fails due to
    qconf segfaulting at exit time in QXcbEventReader. The cause of this is
    destructors on the heap objects never being called, so fix this by
    properly deleting the heap objects before exit.

    Signed-off-by: Chris Bainbridge
    Signed-off-by: Michal Marek

    Chris Bainbridge
     

05 Jan, 2016

1 commit

  • menu_is_visible() is a bool function and should use boolean return
    values. "no" is a tristate value which happens to also have a value
    of 0, but we should nevertheless use the right symbol for it.

    This is a very minor cleanup with no semantic change.

    Fixes: 86e187ff9 ("kconfig: add an option to determine a menu's visibility")
    Cc: Arnaud Lacombe
    Cc: Mauro Carvalho Chehab
    Signed-off-by: Vegard Nossum
    Signed-off-by: Michal Marek

    Vegard Nossum
     

10 Dec, 2015

1 commit


11 Nov, 2015

1 commit

  • Pull kconfig updates from Michal Marek:

    - 'make xconfig' ported to Qt5, dropping support for Qt3

    - merge_config.sh supports a single-input-file mode and also respects
    $KCONFIG_CONFIG

    - Fix for incorrect display of >= and > in dependency expressions

    * 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: (44 commits)
    Add current selection check.
    Use pkg-config to find Qt 4 and 5 instead of direct qmake
    kconfig: Fix copy&paste error
    kconfig/merge_config.sh: Accept a single file
    kconfig/merge_config.sh: Support KCONFIG_CONFIG
    Update the buildsystem for KConfig finding Qt
    Port xconfig to Qt5 - Update copyright.
    Port xconfig to Qt5 - Fix goParent issue.
    Port xconfig to Qt5 - on Back clicked, deselect old item.
    Port xconfig to Qt5 - Add(back) one click checkbox toggle.
    Port xconfig to Qt5 - Add(back) lineedit editing.
    Port xconfig to Qt5 - Remove some commented code.
    Port xconfig to Qt5 - Source format.
    Port xconfig to Qt5 - Add horizontal scrollbar, and scroll per pixel.
    Port xconfig to Qt5 - Change ConfigItem constructor parent type.
    Port xconfig to Qt5 - Disable ConfigList soring
    Port xconfig to Qt5 - Remove ConfigList::updateMenuList template.
    Port xconfig to Qt5 - Add ConfigList::mode to initializer list.
    Port xconfig to Qt5 - Add ConfigItem::nextItem to initializer list.
    Port xconfig to Qt5 - Tree widget set column titles.
    ...

    Linus Torvalds
     

03 Nov, 2015

2 commits

  • Signed-off-by: Boris Barbulovski
    Signed-off-by: Thiago Macieira
    [mmarek: I missed it in the original Qt5 patch set, which caused a crash]
    Signed-off-by: Michal Marek

    Boris Barbulovski
     
  • The Qt Project recommendation is that there should always be a "qmake"
    binary and it should never be renamed. If it's necessary to handle
    multiple Qt versions, the Qt Project recommends using qtchooser.

    Unfortunately, some distros do not follow the recommendation, so we
    would need to check qmake-qt4, qmake-qt5, etc. So, instead, let's try
    pkg-config.

    Signed-off-by: Thiago Macieira
    Reported-by: Alexey Brodkin
    Acked-by: Alexey Brodkin
    Signed-off-by: Michal Marek

    Thiago Macieira
     

21 Oct, 2015

1 commit


15 Oct, 2015

1 commit

  • My recent commit d2036f30cfe1 ("scripts/kconfig/Makefile: Allow
    KBUILD_DEFCONFIG to be a target"), contained a bug in that when it
    checks if KBUILD_DEFCONFIG is a file it forgets to prepend $(srctree) to
    the path.

    This causes the build to fail when building out of tree (with O=), and
    when the value of KBUILD_DEFCONFIG is 'defconfig'. In that case we will
    fail to find the 'defconfig' file, because we look in the build
    directory not $(srctree), and so we will call Make again with
    'defconfig' as the target. From there we loop infinitely calling 'make
    defconfig' again and again.

    The fix is simple, we need to look for the file under $(srctree).

    Fixes: d2036f30cfe1 ("scripts/kconfig/Makefile: Allow KBUILD_DEFCONFIG to be a target")
    Reported-by: Olof Johansson
    Acked-by: Michal Marek
    Signed-off-by: Michael Ellerman

    Michael Ellerman
     

14 Oct, 2015

19 commits