Hi Heinrich,

On Thu, Sep 27, 2018 at 2:40 AM Heinrich Schuchardt <[email protected]> wrote:
>
> On 09/26/2018 08:03 AM, Bin Meng wrote:
> > Per Microsoft PE Format documentation [1], PointerToSymbolTable and
> > NumberOfSymbols should be zero for an image in the COFF file header.
> > Currently U-Boot is generating *.efi images (eg: helloworld.efi) in
> > which these two members are not zero.
> >
> > This updates the build rules to tell linker to remove the symbol
> > table completely so that we can generate compliant *.efi images.
> >
> > [1] https://docs.microsoft.com/zh-cn/windows/desktop/Debug/pe-format
> >
> > Reported-by: Heinrich Schuchardt <[email protected]>
> > Signed-off-by: Bin Meng <[email protected]>
> > ---
>
>
> With the -s switch
> - PointerToSymbolTable is 0,
> - NumberOfSymbols is 0.
>
> $ objdump -T  lib/efi_loader/helloworld.efi
>
> lib/efi_loader/helloworld.efi:     file format pei-i386
>
> objdump: lib/efi_loader/helloworld.efi: not a dynamic object
> DYNAMIC SYMBOL TABLE:
> no symbols
>
> So the binaries are now conforming the PE standard.
>
> qemu-x86_defconfig lib/efi_loader/helloworld.efi still contains these
> sections:
>
> Section[3] .dynamic
> Section[5] .dynsym
>
> Is this what you expect when you have 0 symbols? Should these sections
> be removed with strip -R? But anyway these empty tables do no harm.
>

As you said, they do no harm so let's leave them there. I indeed
investigated 'strip' before but I used the '-s' switch of the linker
in the end.

> Reviewed-by: Heinrich Schuchardt <[email protected]>
>

Regards,
Bin
_______________________________________________
U-Boot mailing list
[email protected]
https://lists.denx.de/listinfo/u-boot

Reply via email to