On Mon, Aug 15, 2016 at 6:41 PM, Fengguang Wu <fengguang...@intel.com> wrote: > On Mon, Aug 15, 2016 at 06:30:48PM -0700, Dan Williams wrote: >> >> On Mon, Aug 15, 2016 at 6:26 PM, Fengguang Wu <fengguang...@intel.com> >> wrote: >>> >>> On Mon, Aug 15, 2016 at 05:58:36PM -0700, Dan Williams wrote: >>>> >>>> >>>> On Mon, Aug 15, 2016 at 3:03 AM, kbuild test robot >>>> <fengguang...@intel.com> wrote: >>>>> >>>>> >>>>> tree: >>>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git >>>>> master >>>>> head: 694d0d0bb2030d2e36df73e2d23d5770511dbc8d >>>>> commit: ab68f26221366f92611650e8470e6a926801c7d4 /dev/dax, pmem: direct >>>>> access to persistent memory >>>>> date: 3 months ago >>>>> config: i386-randconfig-i1-201633 (attached as .config) >>>>> compiler: gcc-4.8 (Debian 4.8.4-1) 4.8.4 >>>>> reproduce: >>>>> git checkout ab68f26221366f92611650e8470e6a926801c7d4 >>>>> # save the attached .config to linux build tree >>>>> make ARCH=i386 >>>>> >>>>> All errors (new ones prefixed by >>): >>>>> >>>>>>> make[2]: *** No rule to make target >>>>>>> 'tools/testing/nvdimm//config_check.o', needed by >>>>>>> 'tools/testing/nvdimm//dax.o'. >>>>> >>>>> >>>>> make[2]: Target '__build' not remade because of errors. >>>> >>>> >>>> >>>> I think this is an invalid build test. tools/testing/nvdimm/ uses a >>>> external module Kbuild environment, not Kconfig. So, there's nothing >>>> I can do to prevent this compile error, unless there's some other way >>>> 0-day could determine the configuration dependencies? >>> >>> >>> >>> Yeah if you can offer a concrete rule for the dependency, we'll add >>> it to 0-day. >> >> >> Sounds good. The config_check.c file itself lists the dependencies: >> >> void check(void) >> { >> /* >> * These kconfig symbols must be set to "m" for nfit_test to > > > If "y" is not a valid option, we'll need to adjust 0-day's dependency > specification for ndctl test:
Unfortunately, "y" is not valid because the unit tests use the "--wrap=" linker feature to redirect calls to exported symbols to mock versions provided by the nfit_test.ko module. When the code is compiled with "y" instead of "m" the linker will use the real symbol rather than the mock/test version. > wfg /c/lkp-tests% cat include/ndctl > need_kconfig: > - CONFIG_HAVE_DMA_CONTIGUOUS=y > - CONFIG_CMA=y > - CONFIG_DMA_CMA=y > - CONFIG_CMA_SIZE_MBYTES=200 I recently, last week in the 4.8 merge window, removed the dependency on CMA. The ndctl README.md for version 54 notes the change. > - CONFIG_LIBNVDIMM > - CONFIG_BLK_DEV_PMEM > - CONFIG_ND_BLK > - CONFIG_BTT=y > - CONFIG_NVDIMM_PFN=y > - CONFIG_NVDIMM_DAX=y > - CONFIG_ZONE_DEVICE=y > > In the above list, a bare "CONFIG_BLK_DEV_PMEM" means "y" or "m" are > both acceptable. ...only "m".