HomeFreeBSD

Fix EFI loader reproducibility with lld

Description

Fix EFI loader reproducibility with lld

When the various loaders under stand/efi are built, the resulting
binaries differ over multiple runs, even if WITH_REPRODUCIBLE_BUILD is
used. This is caused by lld multithreading and the custom linker scripts
for the loaders, and affects the following binaries:

  • loader_4th.efi
  • loader_4th.sym
  • loader_4th.sym.full
  • loader_lua.efi
  • loader_lua.sym
  • loader_lua.sym.full
  • loader_simp.efi
  • loader_simp.sym
  • loader_simp.sym.full

Work around this by disabling lld threading for these binaries.

Reviewed by: emaste
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D46271

(cherry picked from commit f5ce3f4ef562ea9fc4d8f9c13c268f48a5bacba7)

Details

Provenance
dimAuthored on Aug 11 2024, 7:48 PM
Reviewer
emaste
Differential Revision
D46271: Fix EFI loader reproducibility with lld
Parents
rG023b97a69969: msun/ld80/e_powl.c: make powl() thread-safe by making static variables thread…
Branches
Unknown
Tags
Unknown