From 32b63424e4e4d0da3ebfb0b8cb702a735247453d Mon Sep 17 00:00:00 2001 From: Andrew Cooper Date: Thu, 5 Jun 2025 11:47:57 +0100 Subject: [PATCH] x86/EFI: Fix detection of buildid MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The format of the buildid is a property of the binary, not a property of how it was loaded. This fixes buildid recognition when starting xen.efi from it's MB2 entrypoint. Suggested-by: Ross Lagerwall Signed-off-by: Andrew Cooper Reviewed-by: Frediano Ziglio Reviewed-by: Roger Pau Monné Acked-by: Marek Marczykowski-Górecki Acked-by: Daniel P. Smith --- xen/common/version.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/xen/common/version.c b/xen/common/version.c index 5474b8e385..56b51c81d2 100644 --- a/xen/common/version.c +++ b/xen/common/version.c @@ -203,8 +203,11 @@ void __init xen_build_init(void) rc = xen_build_id_check(n, sz, &build_id_p, &build_id_len); #ifdef CONFIG_X86 - /* Alternatively we may have a CodeView record from an EFI build. */ - if ( rc && efi_enabled(EFI_LOADER) ) + /* + * xen.efi built with a new enough toolchain will have a CodeView record, + * not an ELF note. + */ + if ( rc ) { const struct pe_external_debug_directory *dir = (const void *)n;