On Tue, Oct 25, 2016 at 8:52 AM, Arnd Bergmann <[email protected]> wrote:
> A bugfix just tried to address a randconfig build problem and introduced
> a variant of the same problem: with CONFIG_LIBNVDIMM=y and
> CONFIG_NVDIMM_DAX=m, the nvdimm module now fails to link:
>
> drivers/nvdimm/built-in.o: In function `to_nd_device_type':
> bus.c:(.text+0x1b5d): undefined reference to `is_nd_dax'
> drivers/nvdimm/built-in.o: In function 
> `nd_region_notify_driver_action.constprop.2':
> region_devs.c:(.text+0x6b6c): undefined reference to `is_nd_dax'
> region_devs.c:(.text+0x6b8c): undefined reference to `to_nd_dax'
> drivers/nvdimm/built-in.o: In function `nd_region_probe':
> region.c:(.text+0x70f3): undefined reference to `nd_dax_create'
> drivers/nvdimm/built-in.o: In function `mode_show':
> namespace_devs.c:(.text+0xa196): undefined reference to `is_nd_dax'
> drivers/nvdimm/built-in.o: In function `nvdimm_namespace_common_probe':
> (.text+0xa55f): undefined reference to `is_nd_dax'
> drivers/nvdimm/built-in.o: In function `nvdimm_namespace_common_probe':
> (.text+0xa56e): undefined reference to `to_nd_dax'
>
> This reverts the earlier fix, making NVDIMM_DAX a 'bool' option again
> as it should be (it gets linked into the libnvdimm module). To fix
> the original problem, I'm adding a dependency on LIBNVDIMM to
> DEV_DAX_PMEM, which ensures we can't have that one built-in if the
> rest is a module.
>
> Fixes: 4e65e9381c7a ("/dev/dax: fix Kconfig dependency build breakage")
> Signed-off-by: Arnd Bergmann <[email protected]>

Thanks, applied.  I had originally thought that we should add a
LIBNVDIMM dependency to the NVDIMM_PFN dependency, but this should
behave like header includes.  If you use the symbol include the
header, don't assume another header will include the one you want.

Reply via email to