Hi Jason,
On 2025-09-17 12:32:09-0300, Jason Gunthorpe wrote:
On Wed, Feb 26, 2025 at 12:44:55PM +0100, Thomas Weißschuh wrote:
-$(OUTPUT)/vdso_standalone_test_x86: vdso_standalone_test_x86.c parse_vdso.c -$(OUTPUT)/vdso_standalone_test_x86: CFLAGS +=-nostdlib -fno-asynchronous-unwind-tables -fno-stack-protector +$(OUTPUT)/vdso_standalone_test_x86: vdso_standalone_test_x86.c parse_vdso.c | headers +$(OUTPUT)/vdso_standalone_test_x86: CFLAGS:=$(CFLAGS_NOLIBC) $(CFLAGS)
This addition of "| headers" breaks O=build builds. ie this:
$ make O=build-x86 allnoconfig -s -j 14 $ make O=build-x86 -s -j 14 $ make O=build-x86 kselftest-all -s -j 16 &> /dev/null || true $ make O=build-x86 -s -j 14
Fails with:
*** The source tree is not clean, please run 'make mrproper' *** in /home/jgg/oss/wip/kselftests_dirty
Because the build now spews stuff outside the build directory that it should not do.. Bisection points to this patch and removing the "| headers" makes it stop doing that..
Sorry for the breakage and thanks for the report.
Any idea how to fix it?
Care to try this:
diff --git a/tools/testing/selftests/lib.mk b/tools/testing/selftests/lib.mk index 530390033929..a448fae57831 100644 --- a/tools/testing/selftests/lib.mk +++ b/tools/testing/selftests/lib.mk @@ -228,7 +228,10 @@ $(OUTPUT)/%:%.S $(LINK.S) $^ $(LDLIBS) -o $@ endif
+# Extract the expected header directory +khdr_output := $(patsubst %/usr/include,%,$(filter %/usr/include,$(KHDR_INCLUDES))) + headers: - $(Q)$(MAKE) -C $(top_srcdir) headers + $(Q)$(MAKE) -f $(top_srcdir)/Makefile -C $(khdr_output) headers
.PHONY: run_tests all clean install emit_tests gen_mods_dir clean_mods_dir headers
Thomas