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