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 <dmukhin@ford.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Denis Mukhin
2026-07-29 14:45:03 -06:00
committed by Tom Rini
parent 9e596aee68
commit f6a37207b8
2 changed files with 5 additions and 0 deletions
+2
View File
@@ -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
+3
View File
@@ -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