Hello, The following series aim to remove the presence of any write and execute section in the PE Xen image. This is required to support the NX compatible flag in the PE header. By the end of the series the resulting PE image has no relocations that apply to text sections, as text sections are strictly mapped read-execute only. Xen itself attempting to apply relocations to text would result in page-faults.
A smoke test is added to Gitlab to ensure the PE NX support doesn't regress. Only patches 5 and 10 are carried over from v1, the rest are new. Thanks, Roger. Roger Pau Monne (11): automation/dockers: add to README how to rebuild all containers x86/mkreloc: fix obtaining PE image base address x86/mkreloc: use the string table to get names x86/mkreloc: print the linear address of relocations to read-only sections xen: remove -N from the linker command line x86/efi: discard .text.header for PE binary x86/efi: discard multiboot related entry code for PE binary x86/boot: place trampoline code in a non-execute section x86/efi: avoid a relocation in efi_arch_post_exit_boot() x86/efi: do not merge all .init sections automation/x86: add a xen.efi test with a strict NX OVMF build automation/build/README.md | 7 ++ automation/build/fedora/41-x86_64.dockerfile | 5 ++ automation/gitlab-ci/test.yaml | 9 +++ automation/scripts/qemu-smoke-x86-64-efi.sh | 22 +++++- xen/arch/arm/Makefile | 6 +- xen/arch/ppc/Makefile | 6 +- xen/arch/riscv/Makefile | 6 +- xen/arch/x86/Makefile | 12 +-- xen/arch/x86/boot/head.S | 3 +- xen/arch/x86/efi/efi-boot.h | 7 +- xen/arch/x86/efi/mkreloc.c | 77 +++++++++++++++++--- xen/arch/x86/xen.lds.S | 20 +++-- 12 files changed, 138 insertions(+), 42 deletions(-) -- 2.48.1