[PATCH] kexec/zstd: fix static zstd build

Nicholas Sielicki opensource at nslick.com
Sun Jun 22 06:12:53 PDT 2025


60ce9bdf introduced a local reimplementation of ZSTD_isFrame to this
tree, as the definition in libzstd is only available for static linking.
When a static build of libzstd is in-fact available to kexec-tools, this
was previously causing multiple-definition errors at link time.

prefer the ZSTD_isFrame from libzstd, if it's available, by adding
__attribute__((weak)) on the local definition.

Signed-off-by: Nicholas Sielicki <opensource at nslick.com>
---
 kexec/zstd.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/kexec/zstd.c b/kexec/zstd.c
index 79d5bf3..eaa76b9 100644
--- a/kexec/zstd.c
+++ b/kexec/zstd.c
@@ -21,6 +21,7 @@
  * Reimplementation of private function available if zstd is
  * statically linked. Remove when it becomes public.
  */
+__attribute__((weak))
 unsigned ZSTD_isFrame(const void* buffer, size_t size)
 {
 	uint8_t *buf = (uint8_t *)buffer;
-- 
2.48.1




More information about the kexec mailing list