On Thu, 13 Feb 2020 at 22:12, Daniel Baluta daniel.baluta@gmail.com wrote:
Visible symbols usually should not be selected. The same with symbols with dependencies. The docs have this rule mentioned.
You mean if module X depends on module Y, we shouldn't use select? But this exactly what this patch does :).
There are two different cases (hints against using select): 1. select A, if A is a user-visible (possible to select) option, 2. select only A if A depends on B (and B is kind of independent).
These cases are discouraged.
The problem here is that when X depends on Y, and X=y and Y=m when we try to compile X if get an error because we cannot find a symbol from Y.
I think if X depends on Y, and X is forced to "y" then also Y should be forced on "y".
If X is bool, then depends should be =y. If X is tristate, then probably you need something like: depends (Y!=m || m)
There is also solution like: config CEPH_FSCACHE depends on CEPH_FS=m && FSCACHE || CEPH_FS=y && FSCACHE=y but it works if the upper-level option (CEPH_FS) is a tristate.
Best regards, Krzysztof