• Masahiro Yamada's avatar
    Documentation: kconfig: document a new Kconfig macro language · 316d55d5
    Masahiro Yamada authored
    Add a document for the macro language introduced to Kconfig.
    
    The motivation of this work is to move the compiler option tests to
    Kconfig from Makefile.  A number of kernel features require the
    compiler support.  Enabling such features blindly in Kconfig ends up
    with a lot of nasty build-time testing in Makefiles.  If a chosen
    feature turns out unsupported by the compiler, what the build system
    can do is either to disable it (silently!) or to forcibly break the
    build, despite Kconfig has let the user to enable it.  By moving the
    compiler capability tests to Kconfig, features unsupported by the
    compiler will be hidden automatically.
    
    This change was strongly prompted by Linus Torvalds.  You can find
    his suggestions [1] [2] in ML.  The original idea was to add a new
    attribute with 'option shell=...', but I found more generalized text
    expansion would make Kconfig more powerful and lovely.  The basic
    ideas are from Make, but there are some differences.
    
    [1]: https://lkml.org/lkml/2016/12/9/577
    [2]: https://lkml.org/lkml/2018/2/7/527Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
    Reviewed-by: default avatarKees Cook <keescook@chromium.org>
    Reviewed-by: default avatarRandy Dunlap <rdunlap@infradead.org>
    316d55d5
Name
Last commit
Last update
Documentation Loading commit data...
LICENSES Loading commit data...
arch Loading commit data...
block Loading commit data...
certs Loading commit data...
crypto Loading commit data...
drivers Loading commit data...
firmware Loading commit data...
fs Loading commit data...
include Loading commit data...
init Loading commit data...
ipc Loading commit data...
kernel Loading commit data...
lib Loading commit data...
mm Loading commit data...
net Loading commit data...
samples Loading commit data...
scripts Loading commit data...
security Loading commit data...
sound Loading commit data...
tools Loading commit data...
usr Loading commit data...
virt Loading commit data...
.clang-format Loading commit data...
.cocciconfig Loading commit data...
.get_maintainer.ignore Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.mailmap Loading commit data...
COPYING Loading commit data...
CREDITS Loading commit data...
Kbuild Loading commit data...
Kconfig Loading commit data...
MAINTAINERS Loading commit data...
Makefile Loading commit data...
README Loading commit data...