Re: [PATCH V2] selftests: Fix build when $(O) points to a relative path

From: Muhammad Usama Anjum
Date: Fri Feb 25 2022 - 12:22:46 EST


Any thoughts about it?

On 2/17/22 3:38 AM, Muhammad Usama Anjum wrote:
> Build of bpf and tc-testing selftests fails when the relative path of
> the build directory is specified.
>
> make -C tools/testing/selftests O=build0
> make[1]: Entering directory '/linux_mainline/tools/testing/selftests/bpf'
> ../../../scripts/Makefile.include:4: *** O=build0 does not exist. Stop.
> make[1]: Entering directory '/linux_mainline/tools/testing/selftests/tc-testing'
> ../../../scripts/Makefile.include:4: *** O=build0 does not exist. Stop.
>
> Makefiles of bpf and tc-testing include scripts/Makefile.include file.
> This file has sanity checking inside it which checks the output path.
> The output path is not relative to the bpf or tc-testing. The sanity
> check fails. Expand the output path to get rid of this error. The fix is
> the same as mentioned in commit 150a27328b68 ("bpf, preload: Fix build
> when $(O) points to a relative path").
>
> Signed-off-by: Muhammad Usama Anjum <usama.anjum@xxxxxxxxxxxxx>
> ---
> Changes in V2:
> Add more explaination to the commit message.
> Support make install as well.
> ---
> tools/testing/selftests/Makefile | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/tools/testing/selftests/Makefile b/tools/testing/selftests/Makefile
> index 4eda7c7c15694..6a5c25fcc9cfc 100644
> --- a/tools/testing/selftests/Makefile
> +++ b/tools/testing/selftests/Makefile
> @@ -178,6 +178,7 @@ all: khdr
> BUILD_TARGET=$$BUILD/$$TARGET; \
> mkdir $$BUILD_TARGET -p; \
> $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET \
> + O=$(abs_objtree) \
> $(if $(FORCE_TARGETS),|| exit); \
> ret=$$((ret * $$?)); \
> done; exit $$ret;
> @@ -185,7 +186,8 @@ all: khdr
> run_tests: all
> @for TARGET in $(TARGETS); do \
> BUILD_TARGET=$$BUILD/$$TARGET; \
> - $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET run_tests;\
> + $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET run_tests \
> + O=$(abs_objtree); \
> done;
>
> hotplug:
> @@ -236,6 +238,7 @@ ifdef INSTALL_PATH
> for TARGET in $(TARGETS); do \
> BUILD_TARGET=$$BUILD/$$TARGET; \
> $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET INSTALL_PATH=$(INSTALL_PATH)/$$TARGET install \
> + O=$(abs_objtree) \
> $(if $(FORCE_TARGETS),|| exit); \
> ret=$$((ret * $$?)); \
> done; exit $$ret;