From: Frediano Ziglio <[email protected]> Older binutils versions do not handle correctly PE files. It looks like they could work if they don't produce debug information but they mess the PE file in other way like putting invalid flags in sections. For instance they set IMAGE_SCN_LNK_NRELOC_OVFL flag which should be set only if the number of relocations are more than 64K and not on executable (while xen.efi is an executable). Although some UEFI implementation do not check for these minor flags we should not allow building not working artifacts. Also different tools will complain about the format (like objdump and strip).
Signed-off-by: Frediano Ziglio <[email protected]> Acked-by: Andrew Cooper <[email protected]> --- Changes since v9: - explain one of the broken flags. --- xen/arch/x86/arch.mk | 7 ------- 1 file changed, 7 deletions(-) diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk index 16368a498b..10eb8e4292 100644 --- a/xen/arch/x86/arch.mk +++ b/xen/arch/x86/arch.mk @@ -88,13 +88,6 @@ EFI_LDFLAGS := $(patsubst -m%,-mi386pep,$(LDFLAGS)) --subsystem=10 --enable-long LD_PE_check_cmd = $(call ld-option,$(EFI_LDFLAGS) --image-base=0x100000000 -o $(efi-check).efi $(efi-check).o) XEN_BUILD_PE := $(LD_PE_check_cmd) -# If the above failed, it may be merely because of the linker not dealing well -# with debug info. Try again with stripping it. -ifeq ($(CONFIG_DEBUG_INFO)-$(XEN_BUILD_PE),y-n) -EFI_LDFLAGS += --strip-debug -XEN_BUILD_PE := $(LD_PE_check_cmd) -endif - ifeq ($(XEN_BUILD_PE),y) # Check if the linker produces fixups in PE by default -- 2.43.0
