[PATCH v1] selftests/landlock: Fix out-of-tree builds

Mickaël Salaün mic at digikod.net
Mon Sep 12 19:48:17 UTC 2022


Shuah, could you please merge this patch (and the USERCFLAGS/USERLDFLAGS 
one if that's OK) to -next? This is fixing an issue in the current 6.0-rc5 .

Anders, can you please check that this fixes your issue? 
https://lore.kernel.org/r/CADYN=9JM1nnjC9LypHqrz7JJjbZLpm8rArDUy4zgYYrajErBnA@mail.gmail.com


On 09/09/2022 12:34, Mickaël Salaün wrote:
> These changes simplify the Makefile and handle these 5 ways to build
> Landlock tests:
> - make -C tools/testing/selftests/landlock
> - make -C tools/testing/selftests TARGETS=landlock gen_tar
> - make TARGETS=landlock kselftest-gen_tar
> - make TARGETS=landlock O=build kselftest-gen_tar
> - make -C /tmp/linux TARGETS=landlock O=/tmp/build kselftest-gen_tar
> 
> This also makes $(KHDR_INCLUDES) available to other test collections
> when building in their directory.
> 
> Fixes: f1227dc7d041 ("selftests/landlock: fix broken include of linux/landlock.h")
> Fixes: 3bb267a36185 ("selftests: drop khdr make target")
> Cc: Anders Roxell <anders.roxell at linaro.org>
> Cc: Guillaume Tucker <guillaume.tucker at collabora.com>
> Cc: Mark Brown <broonie at kernel.org>
> Cc: Shuah Khan <skhan at linuxfoundation.org>
> Signed-off-by: Mickaël Salaün <mic at digikod.net>
> Link: https://lore.kernel.org/r/20220909103402.1501802-1-mic@digikod.net
> ---
>   tools/testing/selftests/landlock/Makefile | 19 ++++++++++---------
>   tools/testing/selftests/lib.mk            |  4 ++++
>   2 files changed, 14 insertions(+), 9 deletions(-)
> 
> diff --git a/tools/testing/selftests/landlock/Makefile b/tools/testing/selftests/landlock/Makefile
> index 02868ac3bc71..6632bfff486b 100644
> --- a/tools/testing/selftests/landlock/Makefile
> +++ b/tools/testing/selftests/landlock/Makefile
> @@ -1,6 +1,11 @@
>   # SPDX-License-Identifier: GPL-2.0
> +#
> +# First run: make -C ../../../.. headers_install
>   
>   CFLAGS += -Wall -O2 $(KHDR_INCLUDES)
> +LDLIBS += -lcap
> +
> +LOCAL_HDRS += common.h
>   
>   src_test := $(wildcard *_test.c)
>   
> @@ -8,14 +13,10 @@ 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
> +# Static linking for short targets:
> +$(TEST_GEN_PROGS_EXTENDED): LDFLAGS += -static
>   
> -$(OUTPUT)/true: true.c
> -	$(LINK.c) $< $(LDLIBS) -o $@ -static
> +include ../lib.mk
>   
> -$(OUTPUT)/%_test: %_test.c $(khdr_dir)/linux/landlock.h ../kselftest_harness.h common.h
> -	$(LINK.c) $< $(LDLIBS) -o $@ -lcap -I$(khdr_dir)
> +# Static linking for targets with $(OUTPUT)/ prefix:
> +$(TEST_GEN_PROGS_EXTENDED): LDFLAGS += -static
> diff --git a/tools/testing/selftests/lib.mk b/tools/testing/selftests/lib.mk
> index d44c72b3abe3..9d4cb94cf437 100644
> --- a/tools/testing/selftests/lib.mk
> +++ b/tools/testing/selftests/lib.mk
> @@ -42,6 +42,10 @@ endif
>   selfdir = $(realpath $(dir $(filter %/lib.mk,$(MAKEFILE_LIST))))
>   top_srcdir = $(selfdir)/../../..
>   
> +ifeq ($(KHDR_INCLUDES),)
> +KHDR_INCLUDES := -isystem $(top_srcdir)/usr/include
> +endif
> +
>   # The following are built by lib.mk common compile rules.
>   # TEST_CUSTOM_PROGS should be used by tests that require
>   # custom build rule and prevent common build rule use.
> 
> base-commit: 7e18e42e4b280c85b76967a9106a13ca61c16179



More information about the Linux-security-module-archive mailing list