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: Thu Aug 25 2016 - 00:49:33 EST


On Wed, Aug 24, 2016 at 07:59:05AM -0700, Dan Williams wrote:
On Tue, Aug 23, 2016 at 7:47 PM, Fengguang Wu <fengguang.wu@xxxxxxxxx> wrote:
On Tue, Aug 23, 2016 at 04:42:15PM -0700, Dan Williams wrote:
I was not able to reproduce this, I tried on Fedora 23 and Fedora 24
and both attempts succeeded.


Hi Dan, it looks the error only happens with separated obj dir, when
KBUILD_OUTPUT or "-C .. O=.." is used in make command line.

The following worked for me, what am I missing?

$ make -j 64 O=$HOME/git/obj 2>out; make -j 64 O=$HOME/git/obj
M=tools/testing/nvdimm 2>>out;

In 0day builds, $PWD is the obj dir and so we used "-C" too:

wfg@inn ~/linux/obj-compiletest% ls -l source
lrwxrwxrwx 1 wfg wfg 2 Aug 24 10:40 source -> ..

wfg@inn ~/linux/obj-compiletest% make M=tools/testing/nvdimm/
==> /usr/bin/make -C source O=/home/wfg/linux/obj-compiletest ARCH=x86_64 -j32 M=tools/testing/nvdimm/
make: Entering directory '/c/wfg/linux'
make[1]: Entering directory '/c/wfg/linux/obj-compiletest'
make[2]: *** No rule to make target 'tools/testing/nvdimm//config_check.o', needed by 'tools/testing/nvdimm//libnvdimm.o'. Stop.
/c/wfg/linux/Makefile:1478: recipe for target '_module_tools/testing/nvdimm/' failed
make[1]: *** [_module_tools/testing/nvdimm/] Error 2
make[1]: Leaving directory '/c/wfg/linux/obj-compiletest'
Makefile:150: recipe for target 'sub-make' failed
make: *** [sub-make] Error 2
make: Leaving directory '/c/wfg/linux'

Thanks,
Fengguang