• 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
kconfig-macro-language.txt 7.98 KB