Re: [PATCH v1] kbuild: fix sub directory output build of kselftests

From: Shuah Khan
Date: Mon Jun 27 2022 - 15:51:12 EST


On 6/27/22 11:45 AM, Masahiro Yamada wrote:
On Tue, Jun 28, 2022 at 1:54 AM Shuah Khan <skhan@xxxxxxxxxxxxxxxxxxx> wrote:

On 6/27/22 1:02 AM, Muhammad Usama Anjum wrote:
Build of kselftests fail if kernel's top most Makefile is used for
running or building kselftests with separate output directory which is
sub-directory. srctree is set to .. erroneously.

make kselftest-all O=/linux_mainline/build
Makefile:1080: ../scripts/Makefile.extrawarn: No such file or directory

make kselftest-all O=build
Makefile:1080: ../scripts/Makefile.extrawarn: No such file or directory

Fix this by comparing abs_srctree with CURDIR instead of abs_objtree.
CURDIR changes based on from where the command has been run and it sets
the srctree correctly.

Fixes: 25b146c5b8cee("kbuild: allow Kbuild to start from any directory")
Signed-off-by: Muhammad Usama Anjum <usama.anjum@xxxxxxxxxxxxx>
---
Changes in V2:
- Correct the bugfix instead of workaround

V1: https://lore.kernel.org/lkml/20220223191016.1658728-1-usama.anjum@xxxxxxxxxxxxx/
---
Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index e66358b64ede..4090d7afcda4 100644
--- a/Makefile
+++ b/Makefile
@@ -238,12 +238,12 @@ ifeq ($(need-sub-make),)
# so that IDEs/editors are able to understand relative filenames.
MAKEFLAGS += --no-print-directory

-ifeq ($(abs_srctree),$(abs_objtree))
+ifeq ($(abs_srctree),$(CURDIR))
# building in the source tree
srctree := .
building_out_of_srctree :=
else
- ifeq ($(abs_srctree)/,$(dir $(abs_objtree)))
+ ifeq ($(abs_srctree)/,$(dir $(CURDIR)))
# building in a subdirectory of the source tree
srctree := ..
else


Please resend cc'ing linux-kselftest

thanks,
-- Shuah


Please do not send this any more.
This part is good as is.


+ linux-kselftest@xxxxxxxxxxxxxxx

The reason I suggested resending cc'ing linux-kselftest is because
this fixes a kselftest problem.

I am assuming this patch will go through kbuild

Acked-by: Shuah Khan <skhan@xxxxxxxxxxxxxxxxxxx>

thanks,
-- Shuah