On Sun, Apr 19, 2020 at 04:00:43AM +0900, Masahiro Yamada wrote: > People would wonder, "what 'uses FOO' means?", > then they would find the explanation in kconfig-language.rst: > > "Equivalent to: depends on symbol || !symbol > Semantically it means, if FOO is enabled (y/m) and has the option: > uses BAR, make sure it can reach/use BAR when possible." > > To understand this correctly, people must study > the arithmetic of (symbol || !symbol) anyway. I think people will just cargo-cult copy it and not think too hard about how kconfig works. The descriptions in kconfig-language.rst can be improved to better guide C people using kconfig without entirely understanding it. Something like: BAR depends on FOO // BAR selects FOO: BAR requires functionality from FOO BAR uses FOO: BAR optionally consumes functionality from FOO using IS_ENABLED BAR implies FOO: BAR optionally consumes functionality from FOO using IS_REACHABLE Now someone adding IS_ENABLED or IS_REACHABLE checks to C code knows exactly what to put in the kconfig. Jason