Re: [PATCH] selftests/futex: Fix build error with OUTPUT variable

From: Bamvor Zhang
Date: Sun Mar 26 2017 - 09:02:46 EST


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
-----------------------------------------