diff options
| author | Denis Mukhin <[email protected]> | 2026-07-22 17:52:03 -0700 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2026-07-29 14:45:03 -0600 |
| commit | f6a37207b84342441ed8af4226cd85048931cc61 (patch) | |
| tree | 573eeaaef0baf570f004d185f642a4d65563ad17 | |
| parent | 9e596aee6855edc7e786b90db07e24a4f263daed (diff) | |
x86: add support for CONFIG_REMAKE_ELF
x86 builds with CONFIG_REMAKE_ELF fail as the following:
...
u-boot-elf.o: file not recognized: file format not recognized
...
Fix objcopy/ld parameters for x86 to enable CONFIG_REMAKE_ELF
configurations in both SPL and U-Boot proper builds.
Add a new 'PLATFORM_ELFLDFLAGS' make variable for injecting
proper linker arguments when u-boot.elf is requested.
Signed-off-by: Denis Mukhin <[email protected]>
Reviewed-by: Simon Glass <[email protected]>
| -rw-r--r-- | Makefile | 2 | ||||
| -rw-r--r-- | arch/x86/config.mk | 3 |
2 files changed, 5 insertions, 0 deletions
@@ -2004,6 +2004,7 @@ u-boot-with-spl-pbl.bin: spl/u-boot-spl.pbl $(UBOOT_BINLOAD) FORCE quiet_cmd_u-boot-elf ?= LD $@ cmd_u-boot-elf ?= $(LD) u-boot-elf.o -o $@ \ $(if $(CONFIG_SYS_BIG_ENDIAN),-EB,-EL) \ + $(PLATFORM_ELFLDFLAGS) \ -T u-boot-elf.lds --defsym=$(CONFIG_PLATFORM_ELFENTRY)=$(CONFIG_TEXT_BASE) \ -Ttext=$(CONFIG_TEXT_BASE) u-boot.elf: u-boot.bin u-boot-elf.lds FORCE @@ -2013,6 +2014,7 @@ u-boot.elf: u-boot.bin u-boot-elf.lds FORCE quiet_cmd_u-boot-spl-elf ?= LD $@ cmd_u-boot-spl-elf ?= $(LD) spl/u-boot-spl-elf.o -o $@ \ $(if $(CONFIG_SYS_BIG_ENDIAN),-EB,-EL) \ + $(PLATFORM_ELFLDFLAGS) \ -T u-boot-elf.lds --defsym=$(CONFIG_PLATFORM_ELFENTRY)=$(CONFIG_SPL_TEXT_BASE) \ -Ttext=$(CONFIG_SPL_TEXT_BASE) spl/u-boot-spl.elf: spl/u-boot-spl.bin u-boot-elf.lds diff --git a/arch/x86/config.mk b/arch/x86/config.mk index c2bb5549b7c..a62015e1a64 100644 --- a/arch/x86/config.mk +++ b/arch/x86/config.mk @@ -25,8 +25,10 @@ endif ifeq ($(IS_32BIT),y) PLATFORM_CPPFLAGS += -march=i386 -m32 +PLATFORM_ELFFLAGS += -O elf32-i386 -B i386 else PLATFORM_CPPFLAGS += $(if $(CONFIG_XPL_BUILD),,-fpic) -fno-common -march=core2 -m64 +PLATFORM_ELFFLAGS += -O elf64-x86-64 -B i386:x86-64 ifndef CONFIG_X86_HARDFP PLATFORM_CPPFLAGS += -mno-mmx -mno-sse @@ -38,6 +40,7 @@ PLATFORM_RELFLAGS += -fdata-sections -ffunction-sections -fvisibility=hidden KBUILD_LDFLAGS += -Bsymbolic -Bsymbolic-functions KBUILD_LDFLAGS += -m $(if $(IS_32BIT),elf_i386,elf_x86_64) +PLATFORM_ELFLDFLAGS += -m $(if $(IS_32BIT),elf_i386,elf_x86_64) # This is used in the top-level Makefile which does not include # KBUILD_LDFLAGS |
