spl_load_legacy_lzma() lives in common/spl/spl_legacy.c, which is only
built when CONFIG_$(PHASE_)LEGACY_IMAGE_FORMAT is set, but the call site
in _spl_load() is guarded by CONFIG_SPL_LZMA alone. Enabling LZMA
decompression without the legacy image format therefore fails to link:

  ld: common/spl/spl.o: in function `_spl_load':
  include/spl_load.h:73: undefined reference to `spl_load_legacy_lzma'

CONFIG_SPL_LZMA is also needed to support LZMA-compressed payloads with a
FIT-only SPL, so add the missing condition to avoid including the legacy
image related function call when legacy image support is not built.

Signed-off-by: Alexey Charkov <[email protected]>
---
 include/spl_load.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/spl_load.h b/include/spl_load.h
index 525e0c9e86c6..31ed5651f7bb 100644
--- a/include/spl_load.h
+++ b/include/spl_load.h
@@ -63,6 +63,7 @@ static inline int _spl_load(struct spl_image_info *spl_image,
                return spl_load_imx_container(spl_image, info, offset);
 
        if (IS_ENABLED(CONFIG_SPL_LZMA) &&
+           CONFIG_IS_ENABLED(LEGACY_IMAGE_FORMAT) &&
            image_get_magic(header) == IH_MAGIC &&
            image_get_comp(header) == IH_COMP_LZMA) {
                spl_image->flags |= SPL_COPY_PAYLOAD_ONLY;

---
base-commit: 44f0dcf476140c1077ee3dbe16a80fdb6f8265c4
change-id: 20260730-spl-lzma-link-34a6fe432cfd

Best regards,
--  
Alexey Charkov <[email protected]>

Reply via email to