[U-Boot] [BUG] U-Boot generates unusable x86_64 EFI binaries

Heinrich Schuchardt xypron.glpk at gmx.de
Mon Sep 24 19:40:48 UTC 2018


Hello

neither the helloworld.efi of qemu-x86_64_defconfig nor the
u-boot-payload.efi of efi-x86_payload64_defconfig can be started from
the firmware of my Thinkpad 585 while grubx64.efi works fine.

Looking at the generated PE header I found the following abnormality:

coff.PointerToSymbolTable != 0
coff.NumberOfSymbols != 0

(using https://github.com/xypron/efi_analyzer)

According to the Microsoft Portable Executable and Common Object File
Format Specification - rev 11 - 2017-01-17 these fields should be 0.

The U-Boot executables have these sections which do not exist in
grubx64.efi, the EFI shell, and the Windows loader:

Section[3] .dynamic
Section[4] .dynsym

So I think we have to change something in the linking to get usable EFI
binaries.

Best regards

Heinrich




More information about the U-Boot mailing list