Re: [PATCH 06/10] selftests: landlock: Add the uapi headers include variable

From: Mickaël Salaün
Date: Tue Jan 18 2022 - 07:36:08 EST



On 18/01/2022 12:29, Muhammad Usama Anjum wrote:
Out of tree build of this test fails if relative path of the output
directory is specified. Remove the un-needed include paths and use
KHDR_INCLUDES to correctly reach the headers.

Signed-off-by: Muhammad Usama Anjum <usama.anjum@xxxxxxxxxxxxx>
---
tools/testing/selftests/landlock/Makefile | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/tools/testing/selftests/landlock/Makefile b/tools/testing/selftests/landlock/Makefile
index a99596ca9882..44c724b38a37 100644
--- a/tools/testing/selftests/landlock/Makefile
+++ b/tools/testing/selftests/landlock/Makefile
@@ -1,6 +1,6 @@
# SPDX-License-Identifier: GPL-2.0
-CFLAGS += -Wall -O2
+CFLAGS += -Wall -O2 $(KHDR_INCLUDES)
src_test := $(wildcard *_test.c)
@@ -12,13 +12,8 @@ KSFT_KHDR_INSTALL := 1
OVERRIDE_TARGETS := 1
include ../lib.mk
-khdr_dir = $(top_srcdir)/usr/include

This should be updated to:
khdr_dir = ${abs_srctree}/usr/include

Using a global KHDR_DIR instead of khdr_dir could be useful for others too.

-
-$(khdr_dir)/linux/landlock.h: khdr
- @:

This should be kept as is, otherwise we loose this check to rebuild the headers if linux/landlock.h is updated, which is handy for development.
KVM lost a similar behavior with this patch series.

-
$(OUTPUT)/true: true.c
$(LINK.c) $< $(LDLIBS) -o $@ -static
-$(OUTPUT)/%_test: %_test.c $(khdr_dir)/linux/landlock.h ../kselftest_harness.h common.h

This should not be changed.

- $(LINK.c) $< $(LDLIBS) -o $@ -lcap -I$(khdr_dir)
+$(OUTPUT)/%_test: %_test.c ../kselftest_harness.h common.h
+ $(LINK.c) $< $(LDLIBS) -o $@ -lcap

This doesn't work when building in the local directory because $abs_srctree and $KHDR_INCLUDES are empty:
cd tools/testing/selftests/landlock && make