No description
  • C 97%
  • Assembly 1%
  • Shell 0.6%
  • Rust 0.5%
  • Python 0.4%
  • Other 0.3%
Find a file
Masahiro Yamada 3a9dd3ecb2 kconfig: make 'imply' obey the direct dependency
The 'imply' statement may create unmet direct dependency when the
implied symbol depends on m.

[Test Code]

  config FOO
          tristate "foo"
          imply BAZ

  config BAZ
          tristate "baz"
          depends on BAR

  config BAR
          def_tristate m

  config MODULES
          def_bool y
          option modules

If you set FOO=y, BAZ is also promoted to y, which results in the
following .config file:

  CONFIG_FOO=y
  CONFIG_BAZ=y
  CONFIG_BAR=m
  CONFIG_MODULES=y

This does not meet the dependency 'BAZ depends on BAR'.

Unlike 'select', what is worse, Kconfig never shows the
'WARNING: unmet direct dependencies detected for ...' for this case.

Because 'imply' is considered to be weaker than 'depends on', Kconfig
should take the direct dependency into account.

For clarification, describe this case in kconfig-language.rst too.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Acked-by: Nicolas Pitre <nico@fluxnic.net>
Tested-by: Geert Uytterhoeven <geert@linux-m68k.org>
2020-03-13 10:05:34 +09:00
arch kbuild: use KBUILD_DEFCONFIG as the fallback for DEFCONFIG_LIST 2020-03-03 20:49:21 +09:00
block blk-mq: Remove some unused function arguments 2020-02-26 10:34:41 -07:00
certs
crypto
Documentation kconfig: make 'imply' obey the direct dependency 2020-03-13 10:05:34 +09:00
drivers Merge branch 'i2c/for-current-fixed' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2020-02-29 19:16:46 -06:00
fs Two more bug fixes (including a regression) for 5.6 2020-03-01 16:35:08 -06:00
include net: drop_monitor: use IS_REACHABLE() to guard net_dm_hw_report() 2020-03-13 10:04:45 +09:00
init kbuild: allow symbol whitelisting with TRIM_UNUSED_KSYMS 2020-03-03 20:49:21 +09:00
ipc
kernel block-5.6-2020-02-28 2020-02-28 11:43:30 -08:00
lib kbuild: remove cc-option switch from -Wframe-larger-than= 2020-03-02 21:18:19 +09:00
LICENSES
mm Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2020-02-24 11:32:15 -08:00
net vsock: fix potential deadlock in transport->release() 2020-02-27 12:03:56 -08:00
samples
scripts kconfig: make 'imply' obey the direct dependency 2020-03-13 10:05:34 +09:00
security
sound
tools Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-02-27 16:34:41 -08:00
usr
virt KVM/arm fixes for 5.6, take #1 2020-02-28 11:50:06 +01:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS MAINTAINERS: Hand MIPS over to Thomas 2020-02-24 22:43:18 -08:00
Kbuild
Kconfig
MAINTAINERS Documentation/llvm: add documentation on building w/ Clang/LLVM 2020-03-03 20:49:21 +09:00
Makefile kbuild: allow to run dt_binding_check without kernel configuration 2020-03-13 10:04:36 +09:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.