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

From: Muhammad Usama Anjum
Date: Mon Feb 07 2022 - 16:00:19 EST


On 2/8/22 12:22 AM, Andrii Nakryiko wrote:
> 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
This patch is fixing one type of build error which occurs if output
directory's path is relative.

> patch applied, all the feature detection doesn't work, and I get
> reallocarray redefinition failure when bpftool is being built as part
> of selftest.
There may be more problems in BPF tests. Those needs to be looked at
separately.

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