coreboot/payloads
Julius Werner df0221e62a libpayload: Protect against trying to use weak symbols in the wrong way
Weak symbols don't work as expected when you try to override them from
within the same static library. Static libraries are just archives of
individual objects, and when the linker tries to resolve a symbol
against it it simply uses the implementation from the first object that
has one, weak or not. It does not search through all remaining objects
to see if there's also a strong implementation.

We've had multiple cases in libpayload where builds were incorrectly
using the default implementation rather than an optimized arch-specific
implementation for years due to this issue. To prevent it from
recurring, this patch adds some postprocessing script to the Makefile
that checks for this situation and makes the build fail if it creeps in
again.

Change-Id: I9fcbc9b873901d126322b12954c349c08300369f
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87777
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-05-26 18:40:51 +00:00
..
coreinfo libpayload: Set reasonable arch defaults 2024-08-27 09:06:58 +00:00
external payloads/external/edk2/Makefile: Set OemId Pcd 2025-05-14 18:08:54 +00:00
libpayload libpayload: Protect against trying to use weak symbols in the wrong way 2025-05-26 18:40:51 +00:00
linuxcheck treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
nvramcui libpayload: Set reasonable arch defaults 2024-08-27 09:06:58 +00:00
Kconfig payloads/Kconfig: Fix dependencies of PAYLOAD_FIT_SUPPORT 2024-08-27 11:32:05 +00:00
Makefile.mk payloads: Add leanefi payload 2024-06-04 00:26:14 +00:00