Re: [kbuild-all] make[2]: *** No rule to make target 'tools/testing/nvdimm//config_check.o', needed by 'tools/testing/nvdimm//dax.o'.

From: Fengguang Wu
Date: Mon Aug 15 2016 - 21:37:11 EST


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.wu@xxxxxxxxx> 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.wu@xxxxxxxxx> 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
* load and operate.
*/
BUILD_BUG_ON(!IS_MODULE(CONFIG_LIBNVDIMM));
BUILD_BUG_ON(!IS_MODULE(CONFIG_BLK_DEV_PMEM));
BUILD_BUG_ON(!IS_MODULE(CONFIG_ND_BTT));
BUILD_BUG_ON(!IS_MODULE(CONFIG_ND_PFN));
BUILD_BUG_ON(!IS_MODULE(CONFIG_ND_BLK));
BUILD_BUG_ON(!IS_MODULE(CONFIG_ACPI_NFIT));
BUILD_BUG_ON(!IS_MODULE(CONFIG_DEV_DAX));
BUILD_BUG_ON(!IS_MODULE(CONFIG_DEV_DAX_PMEM));
}

Great, that looks good and easy rules to follow!

If that list is subject to change in future, we can even grep that
file and use the results to check .config.

Regards,
Fengguang