I suspect it is commit 40726f16a8d7 ("ld script expression parsing") which broke the hypervisor build, by no longer accepting section names with a dash in them inside ADDR() (and perhaps other script directives expecting just a section name, not an expression): .note.gnu.build-id is such a section.
Quoting all section names passed to ADDR() via DECL_SECTION() works around the regression. Signed-off-by: Jan Beulich <jbeul...@suse.com> --- a/xen/arch/x86/xen.lds.S +++ b/xen/arch/x86/xen.lds.S @@ -18,7 +18,7 @@ ENTRY(efi_start) #else /* !EFI */ #define FORMAT "elf64-x86-64" -#define DECL_SECTION(x) x : AT(ADDR(x) - __XEN_VIRT_START) +#define DECL_SECTION(x) x : AT(ADDR(#x) - __XEN_VIRT_START) ENTRY(start_pa)