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

From: Andrii Nakryiko
Date: Mon Feb 07 2022 - 14:27:02 EST


On Fri, Feb 4, 2022 at 2:59 PM Muhammad Usama Anjum
<usama.anjum@xxxxxxxxxxxxx> 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.
>
> The fix is same as mentioned in commit 150a27328b68 ("bpf, preload: Fix
> build when $(O) points to a relative path").
>

I don't think it actually helps building BPF selftest. Even with this
patch applied, all the feature detection doesn't work, and I get
reallocarray redefinition failure when bpftool is being built as part
of selftest.

> Signed-off-by: Muhammad Usama Anjum <usama.anjum@xxxxxxxxxxxxx>
> ---
> tools/testing/selftests/Makefile | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/tools/testing/selftests/Makefile b/tools/testing/selftests/Makefile
> index 4eda7c7c15694..aa0faf132c35a 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:
> --
> 2.30.2
>