diff mbox series

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

Message ID 20220118112909.1885705-7-usama.anjum@collabora.com (mailing list archive)
State New
Headers show
Series selftests: Fix separate output directory builds | expand

Commit Message

Muhammad Usama Anjum Jan. 18, 2022, 11:29 a.m. UTC
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@collabora.com>
---
 tools/testing/selftests/landlock/Makefile | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

Comments

Mickaël Salaün Jan. 18, 2022, 12:35 p.m. UTC | #1
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@collabora.com>
> ---
>   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
Muhammad Usama Anjum Jan. 18, 2022, 1:18 p.m. UTC | #2
On 1/18/22 5:35 PM, Mickaël Salaün wrote:
> 
> 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@collabora.com>
>> ---
>>   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
Hi,

Thank you. I'll update this path and the kvm one. I'll send a V2.

Thanks,
Usama
diff mbox series

Patch

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
-
-$(khdr_dir)/linux/landlock.h: khdr
-	@:
-
 $(OUTPUT)/true: true.c
 	$(LINK.c) $< $(LDLIBS) -o $@ -static
 
-$(OUTPUT)/%_test: %_test.c $(khdr_dir)/linux/landlock.h ../kselftest_harness.h common.h
-	$(LINK.c) $< $(LDLIBS) -o $@ -lcap -I$(khdr_dir)
+$(OUTPUT)/%_test: %_test.c ../kselftest_harness.h common.h
+	$(LINK.c) $< $(LDLIBS) -o $@ -lcap