mirror of
https://github.com/smaeul/u-boot.git
synced 2025-10-14 04:46:01 +01:00
x86: efi: Set the correct link flags for the 64-bit EFI app
At present some 32-bit settings are used with the 64-bit app. Fix this by separating out the two cases. Be careful not to break the 64-bit payload, which needs to build a 64-bit EFI stub with a 32-bit U-Boot. Signed-off-by: Christian Melki <christian.melki@t2data.com> Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
59e8f36dd9
commit
081dfcf783
@ -20,6 +20,11 @@ IS_32BIT := y
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
EFI_IS_32BIT := $(IS_32BIT)
|
||||||
|
ifdef CONFIG_EFI_STUB_64BIT
|
||||||
|
EFI_IS_32BIT :=
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(IS_32BIT),y)
|
ifeq ($(IS_32BIT),y)
|
||||||
PLATFORM_CPPFLAGS += -march=i386 -m32
|
PLATFORM_CPPFLAGS += -march=i386 -m32
|
||||||
else
|
else
|
||||||
@ -44,8 +49,14 @@ CFLAGS_EFI := -fpic -fshort-wchar
|
|||||||
# Compiler flags to be removed when building UEFI applications
|
# Compiler flags to be removed when building UEFI applications
|
||||||
CFLAGS_NON_EFI := -mregparm=3 -fstack-protector-strong
|
CFLAGS_NON_EFI := -mregparm=3 -fstack-protector-strong
|
||||||
|
|
||||||
ifeq ($(CONFIG_EFI_STUB_64BIT),)
|
ifeq ($(IS_32BIT),y)
|
||||||
|
EFIPAYLOAD_BFDARCH = i386
|
||||||
|
else
|
||||||
CFLAGS_EFI += $(call cc-option, -mno-red-zone)
|
CFLAGS_EFI += $(call cc-option, -mno-red-zone)
|
||||||
|
EFIPAYLOAD_BFDARCH = x86_64
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(EFI_IS_32BIT),y)
|
||||||
EFIARCH = ia32
|
EFIARCH = ia32
|
||||||
EFIPAYLOAD_BFDTARGET = elf32-i386
|
EFIPAYLOAD_BFDTARGET = elf32-i386
|
||||||
else
|
else
|
||||||
@ -53,8 +64,6 @@ EFIARCH = x86_64
|
|||||||
EFIPAYLOAD_BFDTARGET = elf64-x86-64
|
EFIPAYLOAD_BFDTARGET = elf64-x86-64
|
||||||
endif
|
endif
|
||||||
|
|
||||||
EFIPAYLOAD_BFDARCH = i386
|
|
||||||
|
|
||||||
LDSCRIPT_EFI := $(srctree)/arch/x86/lib/elf_$(EFIARCH)_efi.lds
|
LDSCRIPT_EFI := $(srctree)/arch/x86/lib/elf_$(EFIARCH)_efi.lds
|
||||||
EFISTUB := crt0_$(EFIARCH)_efi.o reloc_$(EFIARCH)_efi.o
|
EFISTUB := crt0_$(EFIARCH)_efi.o reloc_$(EFIARCH)_efi.o
|
||||||
OBJCOPYFLAGS_EFI += --target=efi-app-$(EFIARCH)
|
OBJCOPYFLAGS_EFI += --target=efi-app-$(EFIARCH)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user