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.

Fixes: a8ba798bc8ec ("selftests: enable O and KBUILD_OUTPUT")
Signed-off-by: Darren Hart (VMware) <dvh...@infradead.org>
Cc: linux-kselft...@vger.kernel.org
Cc: bamvor.zhangj...@huawei.com
Cc: Shuah Khan <sh...@kernel.org>
Cc: <sta...@vger.kernel.org> # 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

Reply via email to