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

