On 4/19/21 10:26 AM, Coly Li wrote: > On 4/19/21 11:40 PM, Randy Dunlap wrote: >> On 4/19/21 3:23 AM, Stephen Rothwell wrote: >>> Hi all, >>> >>> Changes since 20210416: >>> >> >> on x86_64: >> >> when >> # CONFIG_BLK_DEV is not set >> >> >> WARNING: unmet direct dependencies detected for LIBNVDIMM >> Depends on [n]: PHYS_ADDR_T_64BIT [=y] && HAS_IOMEM [=y] && BLK_DEV [=n] >> Selected by [y]: >> - BCACHE_NVM_PAGES [=y] && MD [=y] && BCACHE [=y] && PHYS_ADDR_T_64BIT [=y] >> >> >> Full randconfig file is attached. >> > > I need hint from kbuild expert. > > My original idea to use "select LIBNVDIMM" is to avoid the > BCACHE_NVM_PAGES option to disappear if LIBNVDIMM is not enabled. > Otherwise if nvdimm driver is not configure, users won't know there is a > BCACHE_NVM_PAGES option unless they read bcache Kconfig file. But why? That's exactly how it should work. Just use depends to set the dependency. > But I see nvdimm's Kconfig, it uses "depends on BLK_DEV", I understand > it is acceptable that LIBNVDIMM option to disappear from "make > menuconfig" if BLK_DEV is not enabled. > > For such condition, which one is the proper way to set the dependence ? > - Change "select LIBNVDIMM" and "select DAX" to "depends on LIBNVDIMM" > and "depends on DAX" in bcache Kconfig > - Or change "depends on BLK_DEV" to "select BLK_DEV" in nvdimm Kconfig. The former. -- Jens Axboe