[U-Boot] [BUG] efi_loader: self-tests fail on qemu-x86_defconfig when compiled with GCC 8.3 and CONFIG_CC_OPTIMIZE_FOR_SIZE=y

Debian has recently (march 8th) upgraded GCC from 8.2 to 8.3.
When I compile qemu-x86_defconfig with CONFIG_CC_OPTIMIZE_FOR_SIZE=y some of the UEFI selftests (bootefi selftest) fail. It looks to me like ebx is not conserved.
With CONFIG_CC_OPTIMIZE_FOR_SIZE=n everything is fine.
Best regards
Heinrich

HI Heinrich,
On Mon, Mar 11, 2019 at 10:11 AM Heinrich Schuchardt xypron.glpk@gmx.de wrote:
Debian has recently (march 8th) upgraded GCC from 8.2 to 8.3.
When I compile qemu-x86_defconfig with CONFIG_CC_OPTIMIZE_FOR_SIZE=y some of the UEFI selftests (bootefi selftest) fail. It looks to me like ebx is not conserved.
With CONFIG_CC_OPTIMIZE_FOR_SIZE=n everything is fine.
Thanks for testing. Could you do some debugging to identify whether there is a bug in U-Boot, or a regression in GCC?
Regards, Bin

On 3/11/19 4:17 AM, Bin Meng wrote:
HI Heinrich,
On Mon, Mar 11, 2019 at 10:11 AM Heinrich Schuchardt xypron.glpk@gmx.de wrote:
Debian has recently (march 8th) upgraded GCC from 8.2 to 8.3.
When I compile qemu-x86_defconfig with CONFIG_CC_OPTIMIZE_FOR_SIZE=y some of the UEFI selftests (bootefi selftest) fail. It looks to me like ebx is not conserved.
With CONFIG_CC_OPTIMIZE_FOR_SIZE=n everything is fine.
Thanks for testing. Could you do some debugging to identify whether there is a bug in U-Boot, or a regression in GCC?
Regards, Bin
Hello Bin,
we pass a pointer to a 32bit address in efi_allocate_pool() where a pointer to a 64bit address is expected. Cf.
[PATCH 1/1] efi_loader: correct parameter size in efi_allocate_pool https://lists.denx.de/pipermail/u-boot/2019-March/362128.html
Best regards
Heinrich
participants (2)
-
Bin Meng
-
Heinrich Schuchardt