Hi, On Sat, Mar 25, 2017 at 12:18 AM, Darren Hart <dvhart@xxxxxxxxxxxxx> wrote: > > The use of $$OUTPUT in the target shell commands resulted in an empty > string followed by an absolute path for which mkdir failed: > > $ make -C tools/testing/selftests/futex > make: Entering directory '/home/dvhart/source/linux/linux-pdx86/tools/testing/selftests/futex' > Makefile:36: warning: overriding recipe for target 'clean' > ../lib.mk:55: warning: ignoring old recipe for target 'clean' > for DIR in functional; do \ > BUILD_TARGET=$OUTPUT/$DIR; \ > mkdir $BUILD_TARGET -p; \ > make OUTPUT=$BUILD_TARGET -C $DIR all;\ > done > mkdir: cannot create directory ‘/functional’: Permission denied > > Replace $$OUTPUT with $(OUTPUT) when referring to the Makefile OUTPUT > variable. The above make command now completes successfully. Test with native and cross-compiler build from selftests/futex or selftests, the results are good. Tested-by: Bamvor Jian Zhang <bamvor.zhangjian@xxxxxxxxxx> Regards Bamvor > > Fixes: a8ba798bc8ec ("selftests: enable O and KBUILD_OUTPUT") > Signed-off-by: Darren Hart (VMware) <dvhart@xxxxxxxxxxxxx> > Cc: linux-kselftest@xxxxxxxxxxxxxxx > Cc: bamvor.zhangjian@xxxxxxxxxx > Cc: Shuah Khan <shuah@xxxxxxxxxx> > Cc: <stable@xxxxxxxxxxxxxxx> # 4.10.x- > --- > tools/testing/selftests/futex/Makefile | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/tools/testing/selftests/futex/Makefile b/tools/testing/selftests/futex/Makefile > index 653c5cd..c8095e6 100644 > --- a/tools/testing/selftests/futex/Makefile > +++ b/tools/testing/selftests/futex/Makefile > @@ -8,7 +8,7 @@ include ../lib.mk > > all: > for DIR in $(SUBDIRS); do \ > - BUILD_TARGET=$$OUTPUT/$$DIR; \ > + BUILD_TARGET=$(OUTPUT)/$$DIR; \ > mkdir $$BUILD_TARGET -p; \ > make OUTPUT=$$BUILD_TARGET -C $$DIR $@;\ > done > @@ -22,7 +22,7 @@ override define INSTALL_RULE > install -t $(INSTALL_PATH) $(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES) > > @for SUBDIR in $(SUBDIRS); do \ > - BUILD_TARGET=$$OUTPUT/$$SUBDIR; \ > + BUILD_TARGET=$(OUTPUT)/$$SUBDIR; \ > mkdir $$BUILD_TARGET -p; \ > $(MAKE) OUTPUT=$$BUILD_TARGET -C $$SUBDIR INSTALL_PATH=$(INSTALL_PATH)/$$SUBDIR install; \ > done; > @@ -34,7 +34,7 @@ endef > > clean: > for DIR in $(SUBDIRS); do \ > - BUILD_TARGET=$$OUTPUT/$$DIR; \ > + BUILD_TARGET=$(OUTPUT)/$$DIR; \ > mkdir $$BUILD_TARGET -p; \ > make OUTPUT=$$BUILD_TARGET -C $$DIR $@;\ > done > -- > 2.9.3 > > > -- > Darren Hart > VMware Open Source Technology Center -- ----------------------------------------- arm64, kernel. opensuse blog: http://aarch64.me -----------------------------------------