diff mbox series

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

Message ID 20220909103402.1501802-1-mic@digikod.net (mailing list archive)
State Handled Elsewhere
Headers show
Series [v1] selftests/landlock: Fix out-of-tree builds | expand

Commit Message

Mickaël Salaün Sept. 9, 2022, 10:34 a.m. UTC
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@linaro.org>
Cc: Guillaume Tucker <guillaume.tucker@collabora.com>
Cc: Mark Brown <broonie@kernel.org>
Cc: Shuah Khan <skhan@linuxfoundation.org>
Signed-off-by: Mickaël Salaün <mic@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(-)


base-commit: 7e18e42e4b280c85b76967a9106a13ca61c16179

Comments

Mickaël Salaün Sept. 12, 2022, 7:48 p.m. UTC | #1
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@linaro.org>
> Cc: Guillaume Tucker <guillaume.tucker@collabora.com>
> Cc: Mark Brown <broonie@kernel.org>
> Cc: Shuah Khan <skhan@linuxfoundation.org>
> Signed-off-by: Mickaël Salaün <mic@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
Mickaël Salaün Sept. 14, 2022, 2:43 p.m. UTC | #2
I took the liberty to pushed it in -next with my tree: 
https://git.kernel.org/mic/c/a52540522c9541bfa3e499d2edba7bc0ca73a4ca

Please let me know when you can take it in your tree to include it in 
the next -rc.

Regards,
  Mickaël

On 12/09/2022 21:48, Mickaël Salaün wrote:
> 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@linaro.org>
>> Cc: Guillaume Tucker <guillaume.tucker@collabora.com>
>> Cc: Mark Brown <broonie@kernel.org>
>> Cc: Shuah Khan <skhan@linuxfoundation.org>
>> Signed-off-by: Mickaël Salaün <mic@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
Mickaël Salaün Sept. 22, 2022, 9:18 a.m. UTC | #3
I plan to push it to Linus tomorrow, I'd like to get some feedback by 
then though.


On 14/09/2022 16:43, Mickaël Salaün wrote:
> I took the liberty to pushed it in -next with my tree:
> https://git.kernel.org/mic/c/a52540522c9541bfa3e499d2edba7bc0ca73a4ca
> 
> Please let me know when you can take it in your tree to include it in
> the next -rc.
> 
> Regards,
>    Mickaël
> 
> On 12/09/2022 21:48, Mickaël Salaün wrote:
>> 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@linaro.org>
>>> Cc: Guillaume Tucker <guillaume.tucker@collabora.com>
>>> Cc: Mark Brown <broonie@kernel.org>
>>> Cc: Shuah Khan <skhan@linuxfoundation.org>
>>> Signed-off-by: Mickaël Salaün <mic@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
Shuah Khan Sept. 23, 2022, 2:31 p.m. UTC | #4
On 9/22/22 03:18, Mickaël Salaün wrote:
> I plan to push it to Linus tomorrow, I'd like to get some feedback by then though.
> 
> 
> On 14/09/2022 16:43, Mickaël Salaün wrote:
>> I took the liberty to pushed it in -next with my tree:
>> https://git.kernel.org/mic/c/a52540522c9541bfa3e499d2edba7bc0ca73a4ca
>>
>> Please let me know when you can take it in your tree to include it in
>> the next -rc.
>>
>> Regards,
>>    Mickaël
>>

Looks good to me. Thanks for doing this. Linux Plumbers travel and
subsequent being under the weather caused the delay in a response
to this patch.

I also saw your pull request to Linus.

thanks,
-- Shuah
diff mbox series

Patch

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.