• Thomas Hebb's avatar
    kconfig: distinguish between dependencies and visibility in help text · 3460d0bc
    Thomas Hebb authored
    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 bcdedcc1 ("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 bcdedcc1, 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: default avatarThomas Hebb <tommyhebb@gmail.com>
    Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
    3460d0bc
expr.h 9.64 KB