From 5c45204e34bd5179c30958aa47bb3eee150973e1 Mon Sep 17 00:00:00 2001 From: Luigi Leonardi Date: Mon, 9 Mar 2026 09:55:52 +0100 Subject: [PATCH] igvm: fix build when igvm is not installed in a well known path `stubs/igvm.c` includes `igvm-internal.h`, that in turn includes the igvm library. This is required just for the QIgvm declaration and creates an unnecessary dependency on the library. Since igvm is not listed as a dependency of stubs, this results in build failing when the library is not installed in a "well known" path of the system. Add a forward declaration for QIgvm and move the definition of `qigvm_directive_madt` to `igvm.h` so that we can drop `igvm-internal.h` from `stubs/igvm.c`. Fixes: dea1f68a5c ("igvm: Fill MADT IGVM parameter field on x86_64") Suggested-by: Stefano Garzarella Signed-off-by: Luigi Leonardi Message-ID: <20260309-master-v2-1-7e02f07a1096@redhat.com> Signed-off-by: Gerd Hoffmann --- include/qemu/typedefs.h | 1 + include/system/igvm-internal.h | 9 ++------- include/system/igvm.h | 5 +++++ stubs/igvm.c | 1 - 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/include/qemu/typedefs.h b/include/qemu/typedefs.h index 416a8c9ace..cbe6f7f4c7 100644 --- a/include/qemu/typedefs.h +++ b/include/qemu/typedefs.h @@ -102,6 +102,7 @@ typedef struct QEMUSGList QEMUSGList; typedef struct QemuSpin QemuSpin; typedef struct QEMUTimer QEMUTimer; typedef struct QEMUTimerListGroup QEMUTimerListGroup; +typedef struct QIgvm QIgvm; typedef struct QList QList; typedef struct QNull QNull; typedef struct QNum QNum; diff --git a/include/system/igvm-internal.h b/include/system/igvm-internal.h index 38004bd908..76ae1bc3be 100644 --- a/include/system/igvm-internal.h +++ b/include/system/igvm-internal.h @@ -42,7 +42,7 @@ typedef struct QIgvmParameterData { * QIgvm contains the information required during processing of a single IGVM * file. */ -typedef struct QIgvm { +struct QIgvm { IgvmHandle file; MachineState *machine_state; ConfidentialGuestSupportClass *cgsc; @@ -67,16 +67,11 @@ typedef struct QIgvm { unsigned region_start_index; unsigned region_last_index; unsigned region_page_count; -} QIgvm; +}; IgvmHandle qigvm_file_init(char *filename, Error **errp); QIgvmParameterData* qigvm_find_param_entry(QIgvm *igvm, uint32_t parameter_area_index); -/* - * IGVM parameter handlers - */ -int qigvm_directive_madt(QIgvm *ctx, const uint8_t *header_data, Error **errp); - #endif diff --git a/include/system/igvm.h b/include/system/igvm.h index 5573a6111a..f9231f03ec 100644 --- a/include/system/igvm.h +++ b/include/system/igvm.h @@ -27,4 +27,9 @@ int qigvm_x86_get_mem_map_entry(int index, int qigvm_x86_set_vp_context(void *data, int index, Error **errp); +/* + * IGVM parameter handlers + */ +int qigvm_directive_madt(QIgvm *ctx, const uint8_t *header_data, Error **errp); + #endif diff --git a/stubs/igvm.c b/stubs/igvm.c index 47d5130d9d..9e9f683fc9 100644 --- a/stubs/igvm.c +++ b/stubs/igvm.c @@ -12,7 +12,6 @@ #include "qemu/osdep.h" #include "system/igvm.h" -#include "system/igvm-internal.h" int qigvm_x86_get_mem_map_entry(int index, ConfidentialGuestMemoryMapEntry *entry,