1. 25 1月, 2018 1 次提交
    • P
      kconfig: make "Selected by:" and "Implied by:" readable · 1ccb2714
      Petr Vorel 提交于
      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: NPaul Bolle <pebolle@tiscali.nl>
      Signed-off-by: NPetr Vorel <petr.vorel@gmail.com>
      Signed-off-by: NMasahiro Yamada <yamada.masahiro@socionext.com>
      1ccb2714
  2. 21 1月, 2018 2 次提交
  3. 21 10月, 2015 1 次提交
  4. 15 6月, 2015 1 次提交
    • J
      kconfig: allow use of relations other than (in)equality · 31847b67
      Jan Beulich 提交于
      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: NJan Beulich <jbeulich@suse.com>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      31847b67
  5. 25 5月, 2015 1 次提交
    • M
      Kconfig: Remove bad inference rules expr_eliminate_dups2() · e9115030
      Martin Walch 提交于
      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: NMartin Walch <walch.martin@web.de>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      e9115030
  6. 25 2月, 2015 2 次提交
  7. 20 11月, 2012 1 次提交
  8. 02 7月, 2011 1 次提交
  9. 07 6月, 2011 1 次提交
  10. 22 12月, 2010 2 次提交
    • M
      kconfig: Make expr_copy() take a const argument · 17742dc7
      Michal Marek 提交于
      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: NMichal Marek <mmarek@suse.cz>
      17742dc7
    • A
      kconfig: simplify select-with-unmet-direct-dependency warning · 1137c56b
      Arnaud Lacombe 提交于
      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 <catalin.marinas@arm.com>
      Signed-off-by: NArnaud Lacombe <lacombar@gmail.com>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      1137c56b
  11. 13 8月, 2010 1 次提交
  12. 02 6月, 2010 1 次提交
  13. 02 2月, 2010 1 次提交
    • V
      menuconfig: wrap long help lines · da60fbbc
      Vadim Bendebury (вб) 提交于
      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: NVadim Bendebury <vbendeb@google.com>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      da60fbbc
  14. 20 9月, 2009 2 次提交
    • T
      kbuild: add static to prototypes · 4356f489
      Trevor Keith 提交于
      Warnings found via gcc -Wmissing-prototypes.
      Signed-off-by: NTrevor Keith <tsrk@tsrk.net>
      Acked-by: NWANG Cong <xiyou.wangcong@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      4356f489
    • C
      kconfig: add symbol value to help find the real depend · 544e433a
      Cheng Renquan 提交于
      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: NCheng Renquan <crquan@gmail.com>
      Cc: Roman Zippel <zippel@linux-m68k.org>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      544e433a
  15. 29 1月, 2008 3 次提交
  16. 09 6月, 2006 2 次提交
  17. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      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!
      1da177e4