Re: [GIT PULL] Kselftest update for Linux 5.20-rc1

From: Shuah Khan
Date: Tue Aug 02 2022 - 10:29:46 EST


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?

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