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

From: Shuah Khan
Date: Thu Mar 03 2022 - 17:20:01 EST


On 2/26/22 12:32 AM, Muhammad Usama Anjum wrote:
On 2/26/22 2:13 AM, Shuah Khan wrote:
On 2/25/22 11:01 AM, Shuah Khan wrote:
On 2/25/22 10:22 AM, Muhammad Usama Anjum wrote:
Any thoughts about it?


No to post please.

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.


Does the same happen when you use make kselftest-all?
No, this problem doesn't appear when using make kselftest-all.

As separate output directory build was broken in kernel's top most
Makefile i.e., make kselftest-all O=dir. (I've sent separate patch to
fix this:
https://lore.kernel.org/lkml/20220223191016.1658728-1-usama.anjum@xxxxxxxxxxxxx/)
So people must have been using kselftest's internal Makefile directly to
keep object files in separate directory i.e., make -C
tools/testing/selftests O=dir and in this way the build of these tests
(bpf, tc-testing) fail. This patch is fixing those build errors.


I am unable to reproduce what you are seeing?
make -C tools/testing/selftests O=dir should reproduce this problem.


Applied to linux-kselftest next for Linux 5.18-rc1.

thanks,
-- Shuah