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 --- |