Fix separate output directory build of kselftests

Build of kselftests fail if kernel’s top most Makefile is used for
running or building kselftests with separate output directory. The
absolute path is needed to reference other files during this kind of
build. Set KBUILD_ABS_SRCTREE to use absolute path during the build. It
fixes the following different types of errors:

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

Signed-off-by: Muhammad Usama Anjum <>

I’ve tested this patch on top of next-20220217. The latest next-20220222
have missing patches.

Makefile | 4 ++–
1 file changed, 2 insertions(+), 2 deletions(-)

diff –git a/Makefile b/Makefile
index 86f633c2809ea..62b3eb8a102ab 100644
— a/Makefile
+++ b/Makefile
@@ -1411,10 +1411,10 @@ tools/%: FORCE

PHONY += kselftest
– $(Q)$(MAKE) -C $(srctree)/tools/testing/selftests run_tests
+ $(Q)$(MAKE) -C $(srctree)/tools/testing/selftests KBUILD_ABS_SRCTREE=1 run_tests

kselftest-%: FORCE
– $(Q)$(MAKE) -C $(srctree)/tools/testing/selftests $*
+ $(Q)$(MAKE) -C $(srctree)/tools/testing/selftests KBUILD_ABS_SRCTREE=1 $*

PHONY += kselftest-merge


Read more here: Source link