kconfig-language.rst (893ab00439a45513cae55781fc8e3b7108ee1cda) kconfig-language.rst (14bee1674ac59d0267f8c660972edc8da49d314d)
1================
2Kconfig Language
3================
4
5Introduction
6------------
7
8The configuration database is a collection of configuration options

--- 526 unchanged lines hidden (view full) ---

535 config STACKPROTECTOR
536 bool "Stack Protector buffer overflow detection"
537 depends on $(cc-option,-fstack-protector)
538 ...
539
540If you need to expose a compiler capability to makefiles and/or C source files,
541`CC_HAS_` is the recommended prefix for the config option::
542
1================
2Kconfig Language
3================
4
5Introduction
6------------
7
8The configuration database is a collection of configuration options

--- 526 unchanged lines hidden (view full) ---

535 config STACKPROTECTOR
536 bool "Stack Protector buffer overflow detection"
537 depends on $(cc-option,-fstack-protector)
538 ...
539
540If you need to expose a compiler capability to makefiles and/or C source files,
541`CC_HAS_` is the recommended prefix for the config option::
542
543 config CC_HAS_ASM_GOTO
544 def_bool $(success,$(srctree)/scripts/gcc-goto.sh $(CC))
543 config CC_HAS_STACKPROTECTOR_NONE
544 def_bool $(cc-option,-fno-stack-protector)
545
546Build as module only
547~~~~~~~~~~~~~~~~~~~~
548To restrict a component build to module-only, qualify its config symbol
549with "depends on m". E.g.::
550
551 config FOO
552 depends on BAR && m

--- 123 unchanged lines hidden (view full) ---

676
677Having well defined semantics can be useful for tools for practical
678evaluation of dependencies, for instance one such case was work to
679express in boolean abstraction of the inferred semantics of Kconfig to
680translate Kconfig logic into boolean formulas and run a SAT solver on this to
681find dead code / features (always inactive), 114 dead features were found in
682Linux using this methodology [1]_ (Section 8: Threats to validity).
683
545
546Build as module only
547~~~~~~~~~~~~~~~~~~~~
548To restrict a component build to module-only, qualify its config symbol
549with "depends on m". E.g.::
550
551 config FOO
552 depends on BAR && m

--- 123 unchanged lines hidden (view full) ---

676
677Having well defined semantics can be useful for tools for practical
678evaluation of dependencies, for instance one such case was work to
679express in boolean abstraction of the inferred semantics of Kconfig to
680translate Kconfig logic into boolean formulas and run a SAT solver on this to
681find dead code / features (always inactive), 114 dead features were found in
682Linux using this methodology [1]_ (Section 8: Threats to validity).
683
684Confirming this could prove useful as Kconfig stands as one of the the leading
684Confirming this could prove useful as Kconfig stands as one of the leading
685industrial variability modeling languages [1]_ [2]_. Its study would help
686evaluate practical uses of such languages, their use was only theoretical
687and real world requirements were not well understood. As it stands though
688only reverse engineering techniques have been used to deduce semantics from
689variability modeling languages such as Kconfig [3]_.
690
691.. [0] http://www.eng.uwaterloo.ca/~shshe/kconfig_semantics.pdf
692.. [1] http://gsd.uwaterloo.ca/sites/default/files/vm-2013-berger.pdf

--- 28 unchanged lines hidden ---
685industrial variability modeling languages [1]_ [2]_. Its study would help
686evaluate practical uses of such languages, their use was only theoretical
687and real world requirements were not well understood. As it stands though
688only reverse engineering techniques have been used to deduce semantics from
689variability modeling languages such as Kconfig [3]_.
690
691.. [0] http://www.eng.uwaterloo.ca/~shshe/kconfig_semantics.pdf
692.. [1] http://gsd.uwaterloo.ca/sites/default/files/vm-2013-berger.pdf

--- 28 unchanged lines hidden ---