Shuah Khan skhan@linuxfoundation.org writes:
make kselftest-all O=objdir builds create generated objects in objdir. This clutters the top level directory with kselftest objects. Fix it to create sub-directory under objdir for kselftest objects.
Signed-off-by: Shuah Khan skhan@linuxfoundation.org
Only somewhat related to this patch, another problem that wasn't in your doci is that the current O= support doesn't support relative paths.
For example, using O=/tmp/build-arm64 works, but O=build-arm64 doesn't. Try this:
$ make ARCH=arm64 HOSTCC=gcc CROSS_COMPILE=aarch64-linux-gnu- O=build-arm64 defconfig $ make ARCH=arm64 HOSTCC=gcc CROSS_COMPILE=aarch64-linux-gnu- O=build-arm64 kselftest-all make[1]: Entering directory '/work/kernel/linux/build-arm64' make --no-builtin-rules INSTALL_HDR_PATH=$BUILD/usr \ ARCH=arm64 -C ../../.. headers_install make[4]: ../scripts/Makefile.build: No such file or directory make[4]: *** No rule to make target '../scripts/Makefile.build'. Stop. Makefile:500: recipe for target 'scripts_basic' failed make[3]: *** [scripts_basic] Error 2 Makefile:151: recipe for target 'khdr' failed make[2]: *** [khdr] Error 2 /work/kernel/linux/Makefile:1220: recipe for target 'kselftest-all' failed make[1]: *** [kselftest-all] Error 2 make[1]: Leaving directory '/work/kernel/linux/build-arm64' Makefile:179: recipe for target 'sub-make' failed make: *** [sub-make] Error 2
Kevin
tools/testing/selftests/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/Makefile b/tools/testing/selftests/Makefile index 6ec503912bea..cd77df3e6bb8 100644 --- a/tools/testing/selftests/Makefile +++ b/tools/testing/selftests/Makefile @@ -91,7 +91,7 @@ override LDFLAGS = override MAKEFLAGS = endif -# Append kselftest to KBUILD_OUTPUT to avoid cluttering +# Append kselftest to KBUILD_OUTPUT and O to avoid cluttering # KBUILD_OUTPUT with selftest objects and headers installed # by selftests Makefile or lib.mk. ifdef building_out_of_srctree @@ -99,7 +99,7 @@ override LDFLAGS = endif ifneq ($(O),)
- BUILD := $(O)
- BUILD := $(O)/kselftest
else ifneq ($(KBUILD_OUTPUT),) BUILD := $(KBUILD_OUTPUT)/kselftest -- 2.20.1