24 Aug, 2018

1 commit

  • [ Upstream commit b2d00d7c61c84edd150310af3f556f8a3c6e2e67 ]

    The line numers for if-entries in the menu tree are off by one or more
    lines which is confusing when debugging for correctness of unrelated changes.

    According to the git log, commit a02f0570ae201c49 (kconfig: improve
    error handling in the parser) was the last one that changed that part
    of the parser and replaced

    "if_entry: T_IF expr T_EOL"
    by
    "if_entry: T_IF expr nl"

    but the commit message does not state why this has been done.

    When reverting that part of the commit, only the line numers are
    corrected (checked with cdebug = DEBUG_PARSE in zconf.y), otherwise
    the menu tree remains unchanged (checked with zconfdump() enabled in
    conf.c).

    An example for the corrected line numbers:

    drivers/soc/Kconfig:15:source drivers/soc/tegra/Kconfig
    drivers/soc/tegra/Kconfig:4:if
    drivers/soc/tegra/Kconfig:6:if

    changes to:

    drivers/soc/Kconfig:15:source drivers/soc/tegra/Kconfig
    drivers/soc/tegra/Kconfig:1:if
    drivers/soc/tegra/Kconfig:4:if

    Signed-off-by: Dirk Gouders
    Signed-off-by: Masahiro Yamada
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Dirk Gouders
     

12 Jun, 2018

1 commit

  • commit 2ae89c7a82ea9d81a19b4fc2df23bef4b112f24e upstream.

    In file included from scripts/kconfig/zconf.tab.c:2485:
    scripts/kconfig/confdata.c: In function ‘conf_write’:
    scripts/kconfig/confdata.c:773:22: warning: ‘%s’ directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
    sprintf(newname, "%s%s", dirname, basename);
    ^~
    scripts/kconfig/confdata.c:773:19: note: assuming directive output of 7 bytes
    sprintf(newname, "%s%s", dirname, basename);
    ^~~~~~
    scripts/kconfig/confdata.c:773:2: note: ‘sprintf’ output 1 or more bytes (assuming 4104) into a destination of size 4097
    sprintf(newname, "%s%s", dirname, basename);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    scripts/kconfig/confdata.c:776:23: warning: ‘.tmpconfig.’ directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
    sprintf(tmpname, "%s.tmpconfig.%d", dirname, (int)getpid());
    ^~~~~~~~~~~
    scripts/kconfig/confdata.c:776:3: note: ‘sprintf’ output between 13 and 4119 bytes into a destination of size 4097
    sprintf(tmpname, "%s.tmpconfig.%d", dirname, (int)getpid());
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Increase the size of tmpname and newname to make GCC happy.

    Signed-off-by: Nathan Chancellor
    Signed-off-by: Masahiro Yamada
    Signed-off-by: Greg Kroah-Hartman

    Nathan Chancellor
     

26 Apr, 2018

3 commits

  • [ Upstream commit 5b1374b3b3c2fc4f63a398adfa446fb8eff791a4 ]

    Only the E_NOT operand and not the E_NOT node itself was freed, due to
    accidentally returning too early in expr_free(). Outline of leak:

    switch (e->type) {
    ...
    case E_NOT:
    expr_free(e->left.expr);
    return;
    ...
    }
    *Never reached, 'e' leaked*
    free(e);

    Fix by changing the 'return' to a 'break'.

    Summary from Valgrind on 'menuconfig' (ARCH=x86) before the fix:

    LEAK SUMMARY:
    definitely lost: 44,448 bytes in 1,852 blocks
    ...

    Summary after the fix:

    LEAK SUMMARY:
    definitely lost: 1,608 bytes in 67 blocks
    ...

    Signed-off-by: Ulf Magnusson
    Signed-off-by: Masahiro Yamada
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Ulf Magnusson
     
  • [ Upstream commit ae7440ef0c8013d68c00dad6900e7cce5311bb1c ]

    expr_trans_compare() always allocates and returns a new expression,
    giving the following leak outline:

    ...
    *Allocate*
    basedep = expr_trans_compare(basedep, E_UNEQUAL, &symbol_no);
    ...
    for (menu = parent->next; menu; menu = menu->next) {
    ...
    *Copy*
    dep2 = expr_copy(basedep);
    ...
    *Free copy*
    expr_free(dep2);
    }
    *basedep lost!*

    Fix by freeing 'basedep' after the loop.

    Summary from Valgrind on 'menuconfig' (ARCH=x86) before the fix:

    LEAK SUMMARY:
    definitely lost: 344,376 bytes in 14,349 blocks
    ...

    Summary after the fix:

    LEAK SUMMARY:
    definitely lost: 44,448 bytes in 1,852 blocks
    ...

    Signed-off-by: Ulf Magnusson
    Signed-off-by: Masahiro Yamada
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Ulf Magnusson
     
  • [ Upstream commit 0724a7c32a54e3e50d28e19e30c59014f61d4e2c ]

    If a 'mainmenu' entry appeared in the Kconfig files, two things would
    leak:

    - The 'struct property' allocated for the default "Linux Kernel
    Configuration" prompt.

    - The string for the T_WORD/T_WORD_QUOTE prompt after the
    T_MAINMENU token, allocated on the heap in zconf.l.

    To fix it, introduce a new 'no_mainmenu_stmt' nonterminal that matches
    if there's no 'mainmenu' and adds the default prompt. That means the
    prompt only gets allocated once regardless of whether there's a
    'mainmenu' statement or not, and managing it becomes simple.

    Summary from Valgrind on 'menuconfig' (ARCH=x86) before the fix:

    LEAK SUMMARY:
    definitely lost: 344,568 bytes in 14,352 blocks
    ...

    Summary after the fix:

    LEAK SUMMARY:
    definitely lost: 344,440 bytes in 14,350 blocks
    ...

    Signed-off-by: Ulf Magnusson
    Signed-off-by: Masahiro Yamada
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Ulf Magnusson
     

02 Nov, 2017

1 commit

  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

20 Aug, 2017

1 commit

  • It turns out that gperf-3.1 changed types in the generated code in ways
    that aren't even trivially detectable without having to generate a test-file.

    It's just not worth using tools and libraries from clowns that don't
    understand or care about compatibility. So get rid of gperf.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

08 Jul, 2017

1 commit

  • …asahiroy/linux-kbuild

    Pull misc Kbuild updates from Masahiro Yamada:

    - Use more portable shebang for Perl scripts

    - Remove trailing spaces from GCC version in kernel log

    - Make initramfs generation deterministic

    * tag 'kbuild-misc-v4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
    kbuild: create deterministic initramfs directory listings
    scripts/mkcompile_h: Remove trailing spaces from compiler version
    scripts: Switch to more portable Perl shebang

    Linus Torvalds
     

23 Jun, 2017

1 commit

  • Fix sparse warnings in scripts/kconfig/nconf* ('make nconfig'):

    ../scripts/kconfig/nconf.c:1071:32: warning: Using plain integer as NULL pointer
    ../scripts/kconfig/nconf.c:1238:30: warning: Using plain integer as NULL pointer
    ../scripts/kconfig/nconf.c:511:51: warning: Using plain integer as NULL pointer
    ../scripts/kconfig/nconf.c:1460:6: warning: symbol 'setup_windows' was not declared. Should it be static?
    ../scripts/kconfig/nconf.c:274:12: warning: symbol 'current_instructions' was not declared. Should it be static?
    ../scripts/kconfig/nconf.c:308:22: warning: symbol 'function_keys' was not declared. Should it be static?
    ../scripts/kconfig/nconf.gui.c:132:17: warning: non-ANSI function declaration of function 'set_colors'
    ../scripts/kconfig/nconf.gui.c:195:24: warning: Using plain integer as NULL pointer

    nconf.gui.o before/after files are the same.
    nconf.o before/after files are the same until the 'static' function
    declarations are added.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Masahiro Yamada

    Randy Dunlap
     

10 Jun, 2017

1 commit

  • There is a check and a nice user-friendly message when the curses
    library is not present on the system and the user wants to do "make
    menuconfig". It doesn't get issued, though. Instead, we fail the build
    when mconf.c doesn't find the curses.h header:

    HOSTCC scripts/kconfig/mconf.o
    In file included from scripts/kconfig/mconf.c:23:0:
    scripts/kconfig/lxdialog/dialog.h:38:20: fatal error: curses.h: No such file or directory
    #include CURSES_LOC
    ^
    compilation terminated.

    Make that check a prerequisite to mconf so that the user sees the error
    message instead:

    $ make menuconfig
    *** Unable to find the ncurses libraries or the
    *** required header files.
    *** 'make menuconfig' requires the ncurses libraries.
    ***
    *** Install ncurses (ncurses-devel) and try again.
    ***
    scripts/kconfig/Makefile:203: recipe for target 'scripts/kconfig/dochecklxdialog' failed
    make[1]: *** [scripts/kconfig/dochecklxdialog] Error 1
    Makefile:548: recipe for target 'menuconfig' failed
    make: *** [menuconfig] Error 2

    Signed-off-by: Borislav Petkov
    Signed-off-by: Masahiro Yamada

    Borislav Petkov
     

14 May, 2017

1 commit

  • The default NetBSD package manager is pkgsrc and it installs Perl
    along other third party programs under custom and configurable prefix.
    The default prefix for binary prebuilt packages is /usr/pkg, and the
    Perl executable lands in /usr/pkg/bin/perl.

    This change switches "/usr/bin/perl" to "/usr/bin/env perl" as it's
    the most portable solution that should work for almost everybody.
    Perl's executable is detected automatically.

    This change switches -w option passed to the executable with more
    modern "use warnings;" approach. There is no functional change to the
    default behavior.

    While there, drop "require 5" from scripts/namespace.pl (Perl from 1994?).

    Signed-off-by: Kamil Rytarowski
    Signed-off-by: Masahiro Yamada

    Kamil Rytarowski
     

22 Mar, 2017

1 commit

  • When building the kernel with clang, the compiler complains about the
    presence of a condition inside two pairs of parentheses:

    scripts/kconfig/gconf.c:917:19: error: equality comparison with
    extraneous parentheses [-Werror,-Wparentheses-equality]
    } else if ((col == COL_OPTION)) {
    ~~~~^~~~~~~~~~~~~
    scripts/kconfig/gconf.c:917:19: note: remove extraneous parentheses
    around the comparison to silence this warning
    } else if ((col == COL_OPTION)) {
    ~ ^ ~
    scripts/kconfig/gconf.c:917:19: note: use '=' to turn this equality
    comparison into an assignment
    } else if ((col == COL_OPTION)) {
    ^~
    =

    Silence this warning by removing a level of parentheses.

    Signed-off-by: Nicolas Iooss
    Signed-off-by: Masahiro Yamada

    Nicolas Iooss
     

18 Dec, 2016

1 commit

  • Pull kconfig updates from Michal Marek:

    - 'make xconfig' gui fixes

    - 'make nconfig' fix for options with long prompts

    - fix 'make nconfig' warning when pkg-config forces -D_GNU_SOURCE

    * 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    xconfig: fix missing suboption and help panels on first run
    xconfig: fix 'Show Debug' functionality
    kconfig/nconf: Fix hang when editing symbol with a long prompt
    Scripts: kconfig: nconf: fix _GNU_SOURCE redefined warning

    Linus Torvalds
     

13 Dec, 2016

1 commit

  • Pull timer updates from Thomas Gleixner:
    "The time/timekeeping/timer folks deliver with this update:

    - Fix a reintroduced signed/unsigned issue and cleanup the whole
    signed/unsigned mess in the timekeeping core so this wont happen
    accidentaly again.

    - Add a new trace clock based on boot time

    - Prevent injection of random sleep times when PM tracing abuses the
    RTC for storage

    - Make posix timers configurable for real tiny systems

    - Add tracepoints for the alarm timer subsystem so timer based
    suspend wakeups can be instrumented

    - The usual pile of fixes and updates to core and drivers"

    * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (23 commits)
    timekeeping: Use mul_u64_u32_shr() instead of open coding it
    timekeeping: Get rid of pointless typecasts
    timekeeping: Make the conversion call chain consistently unsigned
    timekeeping_Force_unsigned_clocksource_to_nanoseconds_conversion
    alarmtimer: Add tracepoints for alarm timers
    trace: Update documentation for mono, mono_raw and boot clock
    trace: Add an option for boot clock as trace clock
    timekeeping: Add a fast and NMI safe boot clock
    timekeeping/clocksource_cyc2ns: Document intended range limitation
    timekeeping: Ignore the bogus sleep time if pm_trace is enabled
    selftests/timers: Fix spelling mistake "Asyncrhonous" -> "Asynchronous"
    clocksource/drivers/bcm2835_timer: Unmap region obtained by of_iomap
    clocksource/drivers/arm_arch_timer: Map frame with of_io_request_and_map()
    arm64: dts: rockchip: Arch counter doesn't tick in system suspend
    clocksource/drivers/arm_arch_timer: Don't assume clock runs in suspend
    posix-timers: Make them configurable
    posix_cpu_timers: Move the add_device_randomness() call to a proper place
    timer: Move sys_alarm from timer.c to itimer.c
    ptp_clock: Allow for it to be optional
    Kconfig: Regenerate *.c_shipped files after previous changes
    ...

    Linus Torvalds
     

12 Dec, 2016

2 commits

  • qconfig initial slider sizes fix.

    On first `make xconfig`, suboption and help panels were hidden.
    Now we properly detect the first run, and show those panels.

    Reported-by: Jason Vas Dias
    Signed-off-by: Boris Barbulovski
    Signed-off-by: Randy Dunlap
    Tested-by: Randy Dunlap
    Signed-off-by: Michal Marek

    Boris Barbulovski
     
  • xconfig - Fix missing 'Show Debug' functionality.

    xconfig Help mentions 'Show Debug Info' but it was missing from any
    menu.

    * Add 'Show debug' menu to the main menu.
    * Properly load showDebug settings.

    Reported-by: Jason Vas Dias
    Signed-off-by: Boris Barbulovski
    Signed-off-by: Randy Dunlap
    Tested-by: Randy Dunlap
    Signed-off-by: Michal Marek

    Boris Barbulovski
     

11 Dec, 2016

1 commit

  • 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().

    Cc: stable
    Fixes: 692d97c380c6 ("kconfig: new configuration interface (nconfig)")
    Signed-off-by: Ben Hutchings

    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
     

29 Nov, 2016

1 commit


16 Nov, 2016

2 commits

  • Signed-off-by: Nicolas Pitre
    Cc: Paul Bolle
    Cc: linux-kbuild@vger.kernel.org
    Cc: netdev@vger.kernel.org
    Cc: Richard Cochran
    Cc: Josh Triplett
    Cc: Michal Marek
    Cc: John Stultz
    Cc: Edward Cree
    Link: http://lkml.kernel.org/r/1478841010-28605-3-git-send-email-nicolas.pitre@linaro.org
    Signed-off-by: Thomas Gleixner

    Nicolas Pitre
     
  • The "imply" keyword is a weak version of "select" where the target
    config symbol can still be turned off, avoiding those pitfalls that come
    with the "select" keyword.

    This is useful e.g. with multiple drivers that want to indicate their
    ability to hook into a secondary subsystem while allowing the user to
    configure that subsystem out without also having to unset these drivers.

    Currently, the same effect can almost be achieved with:

    config DRIVER_A
    tristate

    config DRIVER_B
    tristate

    config DRIVER_C
    tristate

    config DRIVER_D
    tristate

    [...]

    config SUBSYSTEM_X
    tristate
    default DRIVER_A || DRIVER_B || DRIVER_C || DRIVER_D || [...]

    This is unwieldy to maintain especially with a large number of drivers.
    Furthermore, there is no easy way to restrict the choice for SUBSYSTEM_X
    to y or n, excluding m, when some drivers are built-in. The "select"
    keyword allows for excluding m, but it excludes n as well. Hence
    this "imply" keyword. The above becomes:

    config DRIVER_A
    tristate
    imply SUBSYSTEM_X

    config DRIVER_B
    tristate
    imply SUBSYSTEM_X

    [...]

    config SUBSYSTEM_X
    tristate

    This is much cleaner, and way more flexible than "select". SUBSYSTEM_X
    can still be configured out, and it can be set as a module when none of
    the drivers are configured in or all of them are modular.

    Signed-off-by: Nicolas Pitre
    Acked-by: Richard Cochran
    Acked-by: Thomas Gleixner
    Acked-by: John Stultz
    Reviewed-by: Josh Triplett
    Cc: Paul Bolle
    Cc: linux-kbuild@vger.kernel.org
    Cc: netdev@vger.kernel.org
    Cc: Michal Marek
    Cc: Edward Cree
    Link: http://lkml.kernel.org/r/1478841010-28605-2-git-send-email-nicolas.pitre@linaro.org
    Signed-off-by: Thomas Gleixner

    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