On 02/08/2022 15:29, Shuah Khan wrote: > On 8/2/22 3:51 AM, Mickaël Salaün wrote: >> Hi, >> >> This change breaks the Landlock test build when performed on the tools/testing/selftests/landlock directory because the (non-system/up-to-date) kernel headers aren't found. Looking at the use of top_srcdir and HDR_PATH, it seems that multiple subsystems are using this feature. I consider this change a regression. >> > > I did a build test from the top level before sending the pull request > and didn't catch this breakage as a result. This breaks when build is > run from the test directory. > > We have had several problems related to khdr_dir and target and decided > to move away from it with this change. > >> It also removes the check on up-to-date kernel headers (thanks to the Makefile's target timestamp). >> >> I wasn't CCed for this change impacting Landlock [1]. Please keep in mind to add at least maintainers and related mailing-lists for changes on related subsystems. >> > > That is the usual practice and if I notice missing maintainers, I add > them. We missed this one. > >> The following patch almost revert commit a917dd94b832 ("selftests/landlock: drop deprecated headers dependency") and partially fixes commit 49de12ba06ef ("selftests: drop KSFT_KHDR_INSTALL make target"): >> > > Guillaume, > > Will you be able to look at this and send a patch on top? I will > send another pull request before merge window closes? Sure, I'll take a look today. Also I'll see if we can add some extra build tests in KernelCI for the kselftest tree to catch issues like these automatically. Best wishes, Guillaume >> --- a/tools/testing/selftests/landlock/Makefile >> +++ b/tools/testing/selftests/landlock/Makefile >> @@ -9,10 +9,13 @@ TEST_GEN_PROGS := $(src_test:.c=) >> TEST_GEN_PROGS_EXTENDED := true >> >> OVERRIDE_TARGETS := 1 >> +top_srcdir = ../../../.. >> include ../lib.mk >> >> +khdr_dir = $(top_srcdir)/usr/include >> + >> $(OUTPUT)/true: true.c >> $(LINK.c) $< $(LDLIBS) -o $@ -static >> >> -$(OUTPUT)/%_test: %_test.c ../kselftest_harness.h common.h >> - $(LINK.c) $< $(LDLIBS) -o $@ -lcap >> +$(OUTPUT)/%_test: %_test.c $(khdr_dir)/linux/landlock.h ../kselftest_harness.h common.h >> + $(LINK.c) $< $(LDLIBS) -o $@ -lcap -I$(khdr_dir) >> >> >> This doesn't fix the header timestamp check though. >> > > thanks, > -- Shuah