[PATCH] KVM: selftests: Install sanitised kernel headers before compilation

Like Xu posted 1 patch 2 years, 9 months ago
tools/testing/selftests/kvm/Makefile | 5 +++++
1 file changed, 5 insertions(+)
[PATCH] KVM: selftests: Install sanitised kernel headers before compilation
Posted by Like Xu 2 years, 9 months ago
From: Like Xu <likexu@tencent.com>

On many automated test boxes, selftests in a completely clean src tree
will be compiled independently: "make -j -C tools/testing/selftests/kvm".
Sometimes the compilation will fail and produce a false positive just
due to missing kernel headers (or others hidden behind the complete
kernel compilation or installation).

Optimize this situation by explicitly adding the installation of sanitised
kernel headers before compilation to the Makefile.

Reported-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Like Xu <likexu@tencent.com>
---
 tools/testing/selftests/kvm/Makefile | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/tools/testing/selftests/kvm/Makefile b/tools/testing/selftests/kvm/Makefile
index 947676983da1..a33e2f72d745 100644
--- a/tools/testing/selftests/kvm/Makefile
+++ b/tools/testing/selftests/kvm/Makefile
@@ -202,6 +202,11 @@ TEST_GEN_PROGS_EXTENDED += $(TEST_GEN_PROGS_EXTENDED_$(UNAME_M))
 LIBKVM += $(LIBKVM_$(UNAME_M))
 
 INSTALL_HDR_PATH = $(top_srcdir)/usr
+
+ifeq ($(shell make -j -C ../../../.. headers_install),)
+	$(error "Please install sanitised kernel headers manually.")
+endif
+
 LINUX_HDR_PATH = $(INSTALL_HDR_PATH)/include/
 LINUX_TOOL_INCLUDE = $(top_srcdir)/tools/include
 ifeq ($(ARCH),x86_64)
-- 
2.39.0
Re: [PATCH] KVM: selftests: Install sanitised kernel headers before compilation
Posted by Sean Christopherson 2 years, 9 months ago
On Mon, Dec 19, 2022, Like Xu wrote:
> From: Like Xu <likexu@tencent.com>
> 
> On many automated test boxes, selftests in a completely clean src tree
> will be compiled independently: "make -j -C tools/testing/selftests/kvm".
> Sometimes the compilation will fail and produce a false positive just
> due to missing kernel headers (or others hidden behind the complete
> kernel compilation or installation).
> 
> Optimize this situation by explicitly adding the installation of sanitised
> kernel headers before compilation to the Makefile.
> 
> Reported-by: Sean Christopherson <seanjc@google.com>
> Signed-off-by: Like Xu <likexu@tencent.com>
> ---
>  tools/testing/selftests/kvm/Makefile | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/tools/testing/selftests/kvm/Makefile b/tools/testing/selftests/kvm/Makefile
> index 947676983da1..a33e2f72d745 100644
> --- a/tools/testing/selftests/kvm/Makefile
> +++ b/tools/testing/selftests/kvm/Makefile
> @@ -202,6 +202,11 @@ TEST_GEN_PROGS_EXTENDED += $(TEST_GEN_PROGS_EXTENDED_$(UNAME_M))
>  LIBKVM += $(LIBKVM_$(UNAME_M))
>  
>  INSTALL_HDR_PATH = $(top_srcdir)/usr
> +
> +ifeq ($(shell make -j -C ../../../.. headers_install),)
> +	$(error "Please install sanitised kernel headers manually.")
> +endif

Auto-installation of headers was recently removed[*], presumably whatever problem
existed with KSFT_KHDR_INSTALL also exists with this approach.

FWIW, I also find the need to manually do headers_install annoying, but it's easy
to workaround via bash aliases.

[*] https://lore.kernel.org/lkml/cover.1657296695.git.guillaume.tucker@collabora.com