Reproducibility issue due to use of uname

Heinrich Schuchardt xypron.glpk at gmx.de
Fri Jun 10 14:33:46 CEST 2022


On 6/9/22 18:06, Vagrant Cascadian wrote:
> It looks like u-boot 2022.07-rc1 introduced a reproducibility issue that
> is dependent on the running kernel.
>
> I believe the commit that triggered this issue is:
>
>    f7691a6d736bec7915c227ac14076f9993a27367 sandbox: allow cross-compiling sandbox

Thanks for reporting the issue.

Said patch does not change the value of MK_ARCH for CROSS_COMPILE="".
So this is not the relevant patch.

>
> While the use of uname in the Makefile goes back well before this
> commit, previously it had no apparent effect on the builds...
>
> When building natively (e.g. CROSS_COMPILE is not set) with a 32-bit
> userland toolchain, but running a 64-bit kernel, 32-bit arm targets end up
> with BOOTAA64.EFI embedded in the binaries:
>
>    https://tests.reproducible-builds.org/debian/rb-pkg/experimental/armhf/diffoscope-results/u-boot.html

The EFI boot manager can boot according to boot options define as UEFI
variables BOOTxxxx. We recently introduced support for booting via these
variables if they only point to a block device without a filename. In
this case we need to provide the name of the EFI binary. Only for the
sandbox this should depend on host architecture.

I need to correct include/efi_default_filename.h to only use variable
HOST_ARCH for the sandbox.

Best regards

Heinrich

>
>    /EFI/BOOT/BOOTARM.EFI
>    vs.
>    /EFI/BOOT/BOOTAA64.EFI
>
>
> live well,
>    vagrant



More information about the U-Boot mailing list