[U-Boot] [PATCH v4 2/4] u-boot.elf: allow overriding entry symbol

Álvaro Fernández Rojas noltari at gmail.com
Thu Apr 20 18:36:26 UTC 2017


LD gives the following warning when trying to process u-boot-elf.o
warning: cannot find entry symbol __start; defaulting to 0000000080010000
According to gnu-libc the entry symbol for mips is __start and not _start:
https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/mips/dl-machine.h;h=ed47513ccc1d23d23d32ee640053d2f351f3990b;hb=HEAD#l258

Signed-off-by: Álvaro Fernández Rojas <noltari at gmail.com>
---
 v4: Introduce changes suggested by Tom Rini:
  - __start is the standard for MIPS, not ARM.
 v3: Introduce changes suggested by Daniel Schwierzeck:
  - Split patches.
 v2: Introduce changes suggested by Daniel Schwierzeck:
  - Fix _start vs __start symbol.

 Makefile | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index 8730550..6cf2568 100644
--- a/Makefile
+++ b/Makefile
@@ -1184,10 +1184,13 @@ u-boot-img-spl-at-end.bin: u-boot.img spl/u-boot-spl.bin FORCE
 	$(call if_changed,pad_cat)
 
 # Create a new ELF from a raw binary file.
+ifndef PLATFORM_ELFENTRY
+  PLATFORM_ELFENTRY = "_start"
+endif
 u-boot.elf: u-boot.bin
 	@$(OBJCOPY) -I binary $(PLATFORM_ELFFLAGS) $< u-boot-elf.o
 	@$(LD) u-boot-elf.o -o $@ \
-		--defsym=_start=$(CONFIG_SYS_TEXT_BASE) \
+		--defsym=$(PLATFORM_ELFENTRY)=$(CONFIG_SYS_TEXT_BASE) \
 		-Ttext=$(CONFIG_SYS_TEXT_BASE)
 
 # Rule to link u-boot
-- 
2.1.4



More information about the U-Boot mailing list