
On 10.12.17 23:20, Florian Fainelli wrote:
On 12/09/2017 10:40 PM, Heinrich Schuchardt wrote:
On 12/10/2017 12:09 AM, Florian Fainelli wrote:
On 11/26/2017 05:05 AM, Heinrich Schuchardt wrote:
We need to test if we pass a valid image handle when loading and EFI application. This cannot be done in efi_selftest as it is not loaded as an image.
So let's enhance helloworld a bit.
Reviewed-by: Simon Glass sjg@chromium.org Signed-off-by: Heinrich Schuchardt xypron.glpk@gmx.de
This particular patch/commit bbf75dd9345d0b1a7ec7a50016547eb7c759b7af ("efi_loader: output load options in helloworld") was bisected and causes the Lamobo_R1_defconfig build using the toolchain at [1] to fail with:
/home/fainelli/work/toolchains/stbgcc-6.3-1.1/bin/arm-linux-ld.bfd: error: required section '.got' not found in the linker script /home/fainelli/work/toolchains/stbgcc-6.3-1.1/bin/arm-linux-ld.bfd: final link failed: Invalid operation scripts/Makefile.lib:409: recipe for target 'lib/efi_loader/helloworld_efi.so' failed make[2]: *** [lib/efi_loader/helloworld_efi.so] Error 1 rm lib/efi_loader/helloworld.o scripts/Makefile.build:425: recipe for target 'lib/efi_loader' failed make[1]: *** [lib/efi_loader] Error 2
Isn't this fixed by http://git.denx.de/?p=u-boot.git;a=commit;h=3bb74f9800cdc4cf10a87f2725242c25...
"efi_loader helloworld.efi: Fix building with -Os" ?
Nope, my tree is at v2018.01-rc1-115-g335f7b1290ce which contains that commit already.
Yeah, but the issue is the same :(
$ nm lib/efi_loader/helloworld.o 00000000 T efi_main U memcpy
Gcc simply optimizes the loaded_image_guid assignment into a memcpy() and I can't find any way to prohibit it from doing that.
I guess the easiest way out of that mess is to just not do a dynamic struct assignment but instead put loaded_image_guid explicitly into the .rodata section.
I'll send a patch.
Alex