07 Jan, 2020

1 commit

  • Kconfig makes a distinction between dependencies (defined by "depends
    on" expressions and enclosing "if" blocks) and visibility (which
    includes all dependencies, but also includes inline "if" expressions of
    individual properties as well as, for prompts, "visible if" expressions
    of enclosing menus).

    Before commit bcdedcc1afd6 ("menuconfig: print more info for symbol
    without prompts"), the "Depends on" lines of a symbol's help text
    indicated the visibility of the prompt property they appeared under.
    After bcdedcc1afd, there was always only a single "Depends on" line,
    which indicated the visibility of the first P_SYMBOL property of the
    symbol. Since P_SYMBOLs never have inline if expressions, this was in
    effect the same as the dependencies of the menu item that the P_SYMBOL
    was attached to.

    Neither of these situations accurately conveyed the dependencies of a
    symbol--the first because it was actually the visibility, and the second
    because it only showed the dependencies from a single definition.

    With this series, we are back to printing separate dependencies for each
    definition, but we print the actual dependencies (rather than the
    visibility) in the "Depends on" line. However, it can still be useful to
    know the visibility of a prompt, so this patch adds a "Visible if" line
    that shows the visibility only if the visibility is different from the
    dependencies (which it isn't for most prompts in Linux).

    Before:

    Symbol: THUMB2_KERNEL [=n]
    Type : bool
    Defined at arch/arm/Kconfig:1417
    Prompt: Compile the kernel in Thumb-2 mode
    Depends on: (CPU_V7 [=y] || CPU_V7M [=n]) && !CPU_V6 [=n] && !CPU_V6K [=n]
    Location:
    -> Kernel Features
    Selects: ARM_UNWIND [=n]

    After:

    Symbol: THUMB2_KERNEL [=n]
    Type : bool
    Defined at arch/arm/Kconfig:1417
    Prompt: Compile the kernel in Thumb-2 mode
    Depends on: (CPU_V7 [=y] || CPU_V7M [=n]) && !CPU_V6 [=n] && !CPU_V6K [=n]
    Visible if: (CPU_V7 [=y] || CPU_V7M [=n]) && !CPU_V6 [=n] && !CPU_V6K [=n] && !CPU_THUMBONLY [=n]
    Location:
    -> Kernel Features
    Selects: ARM_UNWIND [=n]

    Signed-off-by: Thomas Hebb
    Signed-off-by: Masahiro Yamada

    Thomas Hebb
     

17 Dec, 2019

1 commit


28 Dec, 2018

2 commits

  • I want to compile each C file independently instead of including all
    of them from zconf.y.

    Split out confdata.c, expr.c, symbol.c, and preprocess.c .
    These are low-hanging fruits.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • All files in lxdialog/ are licensed under GPL-2.0+, and the rest are
    under GPL-2.0. I added GPL-2.0 tags to test scripts in tests/.

    Documentation/process/license-rules.rst does not suggest anything
    about the flex/bison files. Because flex does not accept the C++
    comment style at the very top of a file, I used the C style for
    zconf.l, and so for zconf.y for consistency.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

08 Dec, 2018

1 commit


26 Mar, 2018

3 commits

  • Currently, the unmet dependency warnings end up with endlessly long
    expressions, most of which are false positives.

    Here is test code to demonstrate how it currently works.

    [Test Case]

    config DEP1
    def_bool y

    config DEP2
    bool "DEP2"

    config A
    bool "A"
    select E

    config B
    bool "B"
    depends on DEP2
    select E

    config C
    bool "C"
    depends on DEP1 && DEP2
    select E

    config D
    def_bool n
    select E

    config E
    bool
    depends on DEP1 && DEP2

    [Result]

    $ make config
    scripts/kconfig/conf --oldaskconfig Kconfig
    *
    * Linux Kernel Configuration
    *
    DEP2 (DEP2) [N/y/?] (NEW) n
    A (A) [N/y/?] (NEW) y
    warning: (A && B && D) selects E which has unmet direct
    dependencies (DEP1 && DEP2)

    Here, I see some points to be improved.

    First, '(A || B || D)' would make more sense than '(A && B && D)'.
    I am not sure if this is intentional, but expr_simplify_unmet_dep()
    turns OR expressions into AND, like follows:

    case E_OR:
    return expr_alloc_and(

    Second, we see false positives. 'A' is a real unmet dependency.
    'B' is false positive because 'DEP1' is fixed to 'y', and 'B' depends
    on 'DEP2'. 'C' was correctly dropped by expr_simplify_unmet_dep().
    'D' is also false positive because it has no chance to be enabled.
    Current expr_simplify_unmet_dep() cannot avoid those false positives.

    After all, I decided to use the same helpers as used for printing
    reverse dependencies in the help.

    With this commit, unreadable warnings (most of the reported symbols are
    false positives) in the real world:

    $ make ARCH=score allyesconfig
    scripts/kconfig/conf --allyesconfig Kconfig
    warning: (HWSPINLOCK_QCOM && AHCI_MTK && STMMAC_PLATFORM &&
    DWMAC_IPQ806X && DWMAC_LPC18XX && DWMAC_OXNAS && DWMAC_ROCKCHIP &&
    DWMAC_SOCFPGA && DWMAC_STI && TI_CPSW && PINCTRL_GEMINI &&
    PINCTRL_OXNAS && PINCTRL_ROCKCHIP && PINCTRL_DOVE &&
    PINCTRL_ARMADA_37XX && PINCTRL_STM32 && S3C2410_WATCHDOG &&
    VIDEO_OMAP3 && VIDEO_S5P_FIMC && USB_XHCI_MTK && RTC_DRV_AT91SAM9 &&
    LPC18XX_DMAMUX && VIDEO_OMAP4 && COMMON_CLK_GEMINI &&
    COMMON_CLK_ASPEED && COMMON_CLK_NXP && COMMON_CLK_OXNAS &&
    COMMON_CLK_BOSTON && QCOM_ADSP_PIL && QCOM_Q6V5_PIL && QCOM_GSBI &&
    ATMEL_EBI && ST_IRQCHIP && RESET_IMX7 && PHY_HI6220_USB &&
    PHY_RALINK_USB && PHY_ROCKCHIP_PCIE && PHY_DA8XX_USB) selects
    MFD_SYSCON which has unmet direct dependencies (HAS_IOMEM)
    warning: (PINCTRL_AT91 && PINCTRL_AT91PIO4 && PINCTRL_OXNAS &&
    PINCTRL_PISTACHIO && PINCTRL_PIC32 && PINCTRL_MESON &&
    PINCTRL_NOMADIK && PINCTRL_MTK && PINCTRL_MT7622 && GPIO_TB10X)
    selects OF_GPIO which has unmet direct dependencies (GPIOLIB && OF &&
    HAS_IOMEM)
    warning: (FAULT_INJECTION_STACKTRACE_FILTER && LATENCYTOP && LOCKDEP)
    selects FRAME_POINTER which has unmet direct dependencies
    (DEBUG_KERNEL && (CRIS || M68K || FRV || UML || SUPERH || BLACKFIN ||
    MN10300 || METAG) || ARCH_WANT_FRAME_POINTERS)

    will be turned into:

    $ make ARCH=score allyesconfig
    scripts/kconfig/conf --allyesconfig Kconfig

    WARNING: unmet direct dependencies detected for MFD_SYSCON
    Depends on [n]: HAS_IOMEM [=n]
    Selected by [y]:
    - PINCTRL_STM32 [=y] && PINCTRL [=y] && (ARCH_STM32 ||
    COMPILE_TEST [=y]) && OF [=y]
    - RTC_DRV_AT91SAM9 [=y] && RTC_CLASS [=y] && (ARCH_AT91 ||
    COMPILE_TEST [=y])
    - RESET_IMX7 [=y] && RESET_CONTROLLER [=y]
    - PHY_HI6220_USB [=y] && (ARCH_HISI && ARM64 ||
    COMPILE_TEST [=y])
    - PHY_RALINK_USB [=y] && (RALINK || COMPILE_TEST [=y])
    - PHY_ROCKCHIP_PCIE [=y] && (ARCH_ROCKCHIP && OF [=y] ||
    COMPILE_TEST [=y])

    WARNING: unmet direct dependencies detected for OF_GPIO
    Depends on [n]: GPIOLIB [=y] && OF [=y] && HAS_IOMEM [=n]
    Selected by [y]:
    - PINCTRL_MTK [=y] && PINCTRL [=y] && (ARCH_MEDIATEK ||
    COMPILE_TEST [=y]) && OF [=y]
    - PINCTRL_MT7622 [=y] && PINCTRL [=y] && (ARCH_MEDIATEK ||
    COMPILE_TEST [=y]) && OF [=y] && (ARM64 || COMPILE_TEST [=y])

    WARNING: unmet direct dependencies detected for FRAME_POINTER
    Depends on [n]: DEBUG_KERNEL [=y] && (CRIS || M68K || FRV || UML ||
    SUPERH || BLACKFIN || MN10300 || METAG) || ARCH_WANT_FRAME_POINTERS [=n]
    Selected by [y]:
    - LATENCYTOP [=y] && DEBUG_KERNEL [=y] && STACKTRACE_SUPPORT [=y] &&
    PROC_FS [=y] && !MIPS && !PPC && !S390 && !MICROBLAZE && !ARM_UNWIND &&
    !ARC && !X86

    Signed-off-by: Masahiro Yamada
    Reviewed-by: Petr Vorel

    Masahiro Yamada
     
  • Surprisingly or not, disabling a CONFIG option (which is assumed to
    be unneeded) may be not so trivial. Especially it is not trivial, when
    this CONFIG option is selected by a dozen of other configs. Before the
    moment commit 1ccb27143360 ("kconfig: make "Selected by:" and
    "Implied by:" readable") popped up in v4.16-rc1, it was an absolute pain
    to break down the "Selected by" reverse dependency expression in order
    to identify all those configs which select (IOW *do not allow
    disabling*) a certain feature (assumed to be not needed).

    This patch tries to make one step further by putting at users'
    fingertips the revdep top level OR sub-expressions grouped/clustered by
    the tristate value they evaluate to. This should allow the users to
    directly concentrate on and tackle the _active_ reverse dependencies.

    To give some numbers and quantify the complexity of certain reverse
    dependencies, assuming commit 617aebe6a97e ("Merge tag
    'usercopy-v4.16-rc1' of
    git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux"), ARCH=arm64
    and vanilla arm64 defconfig, here is the top 10 CONFIG options with
    the highest amount of top level "||" sub-expressions/tokens that make
    up the final "Selected by" reverse dependency expression.

    | Config | All revdep | Active revdep |
    |-------------------|------------|---------------|
    | REGMAP_I2C | 212 | 9 |
    | CRC32 | 167 | 25 |
    | FW_LOADER | 128 | 5 |
    | MFD_CORE | 124 | 9 |
    | FB_CFB_IMAGEBLIT | 114 | 2 |
    | FB_CFB_COPYAREA | 111 | 2 |
    | FB_CFB_FILLRECT | 110 | 2 |
    | SND_PCM | 103 | 2 |
    | CRYPTO_HASH | 87 | 19 |
    | WATCHDOG_CORE | 86 | 6 |

    The story behind the above is that users need to visually
    review/evaluate 212 expressions which *potentially* select REGMAP_I2C
    in order to identify the expressions which *actually* select REGMAP_I2C,
    for a particular ARCH and for a particular defconfig used.

    To make this experience smoother, change the way reverse dependencies
    are displayed to the user from [1] to [2].

    [1] Old representation of DMA_ENGINE_RAID:
    Selected by:
    - AMCC_PPC440SPE_ADMA [=n] && DMADEVICES [=y] && (440SPe || 440SP)
    - BCM_SBA_RAID [=m] && DMADEVICES [=y] && (ARM64 [=y] || ...
    - FSL_RAID [=n] && DMADEVICES [=y] && FSL_SOC && ...
    - INTEL_IOATDMA [=n] && DMADEVICES [=y] && PCI [=y] && X86_64
    - MV_XOR [=n] && DMADEVICES [=y] && (PLAT_ORION || ARCH_MVEBU [=y] ...
    - MV_XOR_V2 [=y] && DMADEVICES [=y] && ARM64 [=y]
    - XGENE_DMA [=n] && DMADEVICES [=y] && (ARCH_XGENE [=y] || ...
    - DMATEST [=n] && DMADEVICES [=y] && DMA_ENGINE [=y]

    [2] New representation of DMA_ENGINE_RAID:
    Selected by [y]:
    - MV_XOR_V2 [=y] && DMADEVICES [=y] && ARM64 [=y]
    Selected by [m]:
    - BCM_SBA_RAID [=m] && DMADEVICES [=y] && (ARM64 [=y] || ...
    Selected by [n]:
    - AMCC_PPC440SPE_ADMA [=n] && DMADEVICES [=y] && (440SPe || ...
    - FSL_RAID [=n] && DMADEVICES [=y] && FSL_SOC && ...
    - INTEL_IOATDMA [=n] && DMADEVICES [=y] && PCI [=y] && X86_64
    - MV_XOR [=n] && DMADEVICES [=y] && (PLAT_ORION || ARCH_MVEBU [=y] ...
    - XGENE_DMA [=n] && DMADEVICES [=y] && (ARCH_XGENE [=y] || ...
    - DMATEST [=n] && DMADEVICES [=y] && DMA_ENGINE [=y]

    Suggested-by: Masahiro Yamada
    Signed-off-by: Eugeniu Rosca
    Reviewed-by: Petr Vorel
    Reviewed-by: Ulf Magnusson
    Signed-off-by: Masahiro Yamada

    Eugeniu Rosca
     
  • This commit splits out the special E_OR handling ('-' instead of '||')
    into a dedicated helper expr_print_revdev().

    Restore the original expr_print() prior to commit 1ccb27143360
    ("kconfig: make "Selected by:" and "Implied by:" readable").

    This makes sense because:

    - We need to chop those expressions only when printing the reverse
    dependency, and only when E_OR is encountered

    - Otherwise, it should be printed as before, so fall back to
    expr_print()

    This also improves the behavior; for a single line, it was previously
    displayed in the same line as "Selected by", like this:

    Selected by: A [=n] && B [=n]

    This will be displayed in a new line, consistently:

    Selected by:
    - A [=n] && B [=n]

    Signed-off-by: Masahiro Yamada
    Reviewed-by: Petr Vorel

    Masahiro Yamada
     

09 Feb, 2018

1 commit


02 Feb, 2018

1 commit

  • Pull Kconfig updates from Masahiro Yamada:
    "A pretty big batch of Kconfig updates.

    I have to mention the lexer and parser of Kconfig are now built from
    real .l and .y sources. So, flex and bison are the requirement for
    building the kernel. Both of them (unlike gperf) have been stable for
    a long time. This change has been tested several weeks in linux-next,
    and I did not receive any problem report about this.

    Summary:

    - add checks for mistakes, like the choice default is not in choice,
    help is doubled

    - document data structure and complex code

    - fix various memory leaks

    - change Makefile to build lexer and parser instead of using
    pre-generated C files

    - drop 'boolean' keyword, which is equivalent to 'bool'

    - use default 'yy' prefix and remove unneeded Make variables

    - fix gettext() check for xconfig

    - announce that oldnoconfig will be finally removed

    - make 'Selected by:' and 'Implied by' readable in help and search
    result

    - hide silentoldconfig from 'make help' to stop confusing people

    - fix misc things and cleanups"

    * tag 'kconfig-v4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (37 commits)
    kconfig: Remove silentoldconfig from help and docs; fix kconfig/conf's help
    kconfig: make "Selected by:" and "Implied by:" readable
    kconfig: announce removal of oldnoconfig if used
    kconfig: fix make xconfig when gettext is missing
    kconfig: Clarify menu and 'if' dependency propagation
    kconfig: Document 'if' flattening logic
    kconfig: Clarify choice dependency propagation
    kconfig: Document SYMBOL_OPTIONAL logic
    kbuild: remove unnecessary LEX_PREFIX and YACC_PREFIX
    kconfig: use default 'yy' prefix for lexer and parser
    kconfig: make conf_unsaved a local variable of conf_read()
    kconfig: make xfgets() really static
    kconfig: make input_mode static
    kconfig: Warn if there is more than one help text
    kconfig: drop 'boolean' keyword
    kconfig: use bool instead of boolean for type definition attributes, again
    kconfig: Remove menu_end_entry()
    kconfig: Document important expression functions
    kconfig: Document automatic submenu creation code
    kconfig: Fix choice symbol expression leak
    ...

    Linus Torvalds
     

25 Jan, 2018

1 commit

  • Reverse dependency expressions can get rather unwieldy, especially if
    a symbol is selected by more than a handful of other symbols. I.e. it's
    possible to have near endless expressions like:
    A && B && !C || D || F && (G || H) || [...]

    Chop these expressions into actually readable chunks:
    - A && B && !C
    - D
    - F && (G || H)
    - [...]

    I.e. transform the top level OR tokens into newlines and prepend each
    line with a minus. This makes the "Selected by:" and "Implied by:" blurb
    much easier to read. This is done only if there is more than one top
    level OR. "Depends on:" and "Range :" were deliberately left as they are.

    Based on idea from Paul Bolle.

    Suggested-by: Paul Bolle
    Signed-off-by: Petr Vorel
    Signed-off-by: Masahiro Yamada

    Petr Vorel
     

21 Jan, 2018

2 commits

  • Many of these functions are quite the head scratchers if you don't know
    what they're trying to do. Document them.

    Also make it clear which functions rewrite expressions in-place and
    which return new expressions. This prevents memory errors.

    No functional changes. Only comments added.

    Signed-off-by: Ulf Magnusson
    Signed-off-by: Masahiro Yamada

    Ulf Magnusson
     
  • 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

    Ulf Magnusson
     

06 Jan, 2018

1 commit

  • Since commit 31847b67bec0 ("kconfig: allow use of relations other than
    (in)equality") it is possible to use relational operators in Kconfig
    statements. However, those operators give unexpected results when
    applied to bool/tristate values:

    (n < y) = y (correct)
    (m < y) = y (correct)
    (n < m) = n (wrong)

    This happens because relational operators process bool and tristate
    symbols as strings and m sorts before n. It makes little sense to do a
    lexicographical compare on bool and tristate values though.

    Documentation/kbuild/kconfig-language.txt states that expression can have
    a value of 'n', 'm' or 'y' (or 0, 1, 2 respectively for calculations).
    Let's make it so for relational comparisons with bool/tristate
    expressions as well and document them. If at least one symbol is an
    actual string then the lexicographical compare works just as before.

    Signed-off-by: Nicolas Pitre
    Acked-by: Randy Dunlap
    Tested-by: Randy Dunlap
    Signed-off-by: Masahiro Yamada

    Nicolas Pitre
     

21 Oct, 2015

1 commit


15 Jun, 2015

1 commit

  • Over the years I found it desirable to be able to use all sorts of
    relations, not just (in)equality. And apparently I'm not the only one,
    as there's at least one example in the tree where the programmer
    assumed this would work (see DEBUG_UART_8250_WORD in
    arch/arm/Kconfig.debug). Another possible use would e.g. be to fold the
    two SMP/NR_CPUS prompts into one: SMP could be promptless, simply
    depending on NR_CPUS > 1.

    A (desirable) side effect of this change - resulting from numeric
    values now necessarily being compared as numbers rather than as
    strings - is that comparing hex values now works as expected: Other
    than int ones (which aren't allowed to have leading zeroes), zeroes
    following the 0x prefix made them compare unequal even if their values
    were equal.

    Signed-off-by: Jan Beulich
    Signed-off-by: Michal Marek

    Jan Beulich
     

25 May, 2015

1 commit

  • expr_eliminate_dups2() in scripts/kconfig/expr.c applies two invalid
    inference rules:

    (FOO || BAR) && (!FOO && !BAR) -> n
    (FOO && BAR) || (!FOO || !BAR) -> y

    They would be correct in propositional logic, but this is a three-valued
    logic, and here it is wrong in that it changes semantics. It becomes
    immediately visible when assigning the value 1 to both, FOO and BAR:

    (FOO || BAR) && (!FOO && !BAR)
    -> min(max(1, 1), min(2-1, 2-1)) = min(1, 1) = 1

    while n evaluates to 0 and

    (FOO && BAR) || (!FOO || !BAR)
    -> max(min(1, 1), max(2-1, 2-1)) = max(1, 1) = 1

    with y evaluating to 2.

    Fix it by removing expr_eliminate_dups2() and the functions that have no
    use anywhere else: expr_extract_eq_and(), expr_extract_eq_or(),
    and expr_extract_eq() from scripts/kconfig/expr.c

    Currently the bug is not triggered in mainline, so this patch does not
    modify the configuration space there. To observe the bug consider this
    example:

    config MODULES
    def_bool y
    option modules

    config FOO
    def_tristate m

    config BAR
    def_tristate m

    config TEST1
    def_tristate y
    depends on (FOO || BAR) && (!FOO && !BAR)

    if TEST1 = n
    comment "TEST1 broken"
    endif

    config TEST2
    def_tristate y
    depends on (FOO && BAR) || (!FOO || !BAR)

    if TEST2 = y
    comment "TEST2 broken"
    endif

    config TEST3
    def_tristate y
    depends on m && !m

    if TEST3 = n
    comment "TEST3 broken"
    endif

    TEST1, TEST2 and TEST3 should all evaluate to m, but without the patch,
    none of them does. It is probably not obvious that TEST3 is the same bug,
    but it becomes clear when considering what happens internally to the
    expression
    m && !m":
    First it expands to
    (m && MODULES) && !(m && MODULES),
    then it is transformed into
    (m && MODULES) && (!m || !MODULES),
    and finally due to the bug it is replaced with n.

    As a side effect, this patch reduces code size in expr.c by roughly 10%
    and slightly improves startup time for all configuration frontends.

    Signed-off-by: Martin Walch
    Signed-off-by: Michal Marek

    Martin Walch
     

25 Feb, 2015

2 commits


20 Nov, 2012

1 commit


02 Jul, 2011

1 commit


07 Jun, 2011

1 commit


22 Dec, 2010

2 commits

  • Fixes
    scripts/kconfig/expr.c: In function ‘expr_get_leftmost_symbol’:
    scripts/kconfig/expr.c:1026:2: warning: passing argument 1 of ‘expr_copy’ discards qualifiers from pointer target type
    scripts/kconfig/expr.c:67:14: note: expected ‘struct expr *’ but argument is of type ‘const struct expr *’

    Signed-off-by: Michal Marek

    Michal Marek
     
  • This is an attempt to simplify the expressing printed by kconfig when a
    symbol is selected but still has direct unmet dependency.

    First, the symbol reverse dependency is split in sub-expression. Then,
    each sub-expression is checked to ensure that it does not contains the
    unmet dependency. This removes the false-positive symbols and fixed symbol
    which already have the correct dependency. Finally, only the symbol
    responsible of the "select" is printed, instead of its full dependency tree.

    CC: Catalin Marinas
    Signed-off-by: Arnaud Lacombe
    Signed-off-by: Michal Marek

    Arnaud Lacombe
     

13 Aug, 2010

1 commit


02 Jun, 2010

1 commit

  • Without this patch, one has to refer to the Kconfig file to find
    out the range of an integer/hex symbol.

    │ Symbol: NR_CPUS [=4]
    │ Type : integer
    │ Range : [2 8]
    │ Prompt: Maximum number of CPUs
    │ Defined at arch/x86/Kconfig:761
    │ Depends on: SMP [=y] && !MAXSMP [=n]
    │ Location:
    │ -> Processor type and features

    Signed-off-by: Li Zefan
    Signed-off-by: Michal Marek

    Li Zefan
     

02 Feb, 2010

1 commit

  • Help text for certain config options is very extensive (the text
    includes the names of all other options the option in question depends
    on). Long lines are not wrapped, making it impossible to see the list
    without scrolling horizontally.

    This patch adds some logic which wraps help screen lines at word
    boundaries to prevent truncating.

    Tested by running

    ARCH=powerpc make menuconfig O=/tmp/build

    which shows that the long lines are now wrapped, and

    ARCH=powerpc make xconfig O=/tmp/build

    to demonstrate that it still compiles and operates as expected.

    Signed-off-by: Vadim Bendebury
    Signed-off-by: Michal Marek

    Vadim Bendebury (вб)
     

20 Sep, 2009

2 commits

  • Warnings found via gcc -Wmissing-prototypes.

    Signed-off-by: Trevor Keith
    Acked-by: WANG Cong
    Signed-off-by: Andrew Morton
    Signed-off-by: Sam Ravnborg

    Trevor Keith
     
  • Sometimes when configuring need to disable some unused item, but the item is
    selected by many other items, it's hard to find the real dependency which
    selected it, This patch add every symbol's value accompanied to make it
    possible to find the real dependency easily.

    An example is CONFIG_RFKILL,

    ---------------------- RF switch subsystem support ----------------------
    | CONFIG_RFKILL: |
    | |
    | Say Y here if you want to have control over RF switches |
    | found on many WiFi and Bluetooth cards. |
    | |
    | To compile this driver as a module, choose M here: the |
    | module will be called rfkill. |
    | |
    | Symbol: RFKILL [=m] |
    | Prompt: RF switch subsystem support |
    | Defined at net/rfkill/Kconfig:4 |
    | Depends on: NET [=y] |
    | Location: |
    | -> Networking support (NET [=y]) |
    | Selected by: IWLCORE [=n] && NETDEVICES [=y] && !S390 [=S390] && PC |
    | |
    ----------------------------------------------------------------( 99%)---

    Signed-off-by: Cheng Renquan
    Cc: Roman Zippel
    Signed-off-by: Sam Ravnborg

    Cheng Renquan
     

29 Jan, 2008

3 commits

  • Change kconfig behavior so that mixing bool and tristate config
    settings in a choice is possible and has the desired effect of offering
    just the tristate options individually if the choice gets set to M, and
    a normal boolean selection if the choice gets set to Y.

    Also fix scripts/kconfig/conf's handling of children of choice values -
    there may be more than one immediate child, and all of them need to be
    processed.

    Signed-off-by: Jan Beulich
    Cc: "Roman Zippel"
    Signed-off-by: Sam Ravnborg

    Jan Beulich
     
  • Rename E_CHOICE to E_LIST to explicitly add support for expression
    lists. Add a helper macro expr_list_for_each_sym to more easily iterate
    over the list.

    Signed-off-by: Roman Zippel
    Signed-off-by: Sam Ravnborg

    Roman Zippel
     
  • We had macros named the same as a set of enumeration values.
    It is legal code but very confusing to read - so rename
    the macros from E_* to EXPR_*

    Signed-off-by: Sam Ravnborg
    Cc: Roman Zippel

    Sam Ravnborg
     

09 Jun, 2006

2 commits


17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds