From f4cf153a487486428a061b5d866fe2f68653b2f8 Mon Sep 17 00:00:00 2001 From: Heinrich Schuchardt Date: Fri, 6 Apr 2018 15:36:31 +0200 Subject: [PATCH] efi_loader: correctly set the machine type in the PE header The portable executable header has a field describing the machine type. The machine type should match the binary. So on i386 we should use IMAGE_FILE_MACHINE_I386 and on x86_64 we should use IMAGE_FILE_MACHINE_AMD64. The actual value is issued by the objcopy command invoked in scripts/Makefile.lib in depdendence of the value of EFI_TARGET. The value is used both for EFI_STUB and for EFI_LOADER. Signed-off-by: Heinrich Schuchardt Signed-off-by: Alexander Graf --- arch/x86/config.mk | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/arch/x86/config.mk b/arch/x86/config.mk index 472ada5..69074f4 100644 --- a/arch/x86/config.mk +++ b/arch/x86/config.mk @@ -94,12 +94,16 @@ ifneq ($(CONFIG_EFI_STUB_64BIT),) EFI_LDS := elf_x86_64_efi.lds EFI_CRT0 := crt0_x86_64_efi.o EFI_RELOC := reloc_x86_64_efi.o -EFI_TARGET := --target=efi-app-ia32 else EFI_LDS := elf_ia32_efi.lds EFI_CRT0 := crt0_ia32_efi.o EFI_RELOC := reloc_ia32_efi.o +endif + +ifdef CONFIG_X86_64 EFI_TARGET := --target=efi-app-x86_64 +else +EFI_TARGET := --target=efi-app-ia32 endif endif -- 2.7.4