On 12/19/25 00:30, Tom Rini wrote:
Currently, our LZMA library has an option for optimizing for size,
rather than speed. It is a minimal savings today, and has not been worth
enabling. As this will change in the near future, add options now to
allow disabling it in full U-Boot or in SPL, and enable these on
gardena-smart-gateway-mt7688 which is very close to the size limit
today.

Signed-off-by: Tom Rini <[email protected]>
---
Cc: Stefan Roese <[email protected]>

Reviewed-by: Stefan Roese <[email protected]>

Thanks,
Stefan

---
  configs/gardena-smart-gateway-mt7688_defconfig |  2 ++
  lib/Kconfig                                    | 14 ++++++++++++++
  lib/lzma/Makefile                              |  1 +
  3 files changed, 17 insertions(+)

diff --git a/configs/gardena-smart-gateway-mt7688_defconfig 
b/configs/gardena-smart-gateway-mt7688_defconfig
index 3c2bcc6a3c44..aba8a2ffd1de 100644
--- a/configs/gardena-smart-gateway-mt7688_defconfig
+++ b/configs/gardena-smart-gateway-mt7688_defconfig
@@ -101,4 +101,6 @@ CONFIG_MT7621_SPI=y
  CONFIG_WDT=y
  CONFIG_WDT_MT7621=y
  CONFIG_LZMA=y
+CONFIG_LZMA_SIZE_OPTIMIZATION=y
  CONFIG_SPL_LZMA=y
+CONFIG_SPL_LZMA_SIZE_OPTIMIZATION=y
diff --git a/lib/Kconfig b/lib/Kconfig
index fe0b878a206b..96032eaddf95 100644
--- a/lib/Kconfig
+++ b/lib/Kconfig
@@ -838,6 +838,13 @@ config LZMA
          ratio and fairly fast decompression speed. See also
          CONFIG_CMD_LZMADEC which provides a decode command.
+config LZMA_SIZE_OPTIMIZATION
+       bool "Optimize the LZMA algorithm for smaller binary size"
+       help
+         This enables building the LZMA library optimized for size, rather
+         than performance. This can be a loss of 15-20% in decompression
+         speed, but a savings of close to two kilobytes in many cases.
+
  config LZO
        bool "Enable LZO decompression support"
        help
@@ -932,6 +939,13 @@ config SPL_LZMA
        help
          This enables support for LZMA compression algorithm for SPL boot.
+config SPL_LZMA_SIZE_OPTIMIZATION
+       bool "Optimize the LZMA algorithm for smaller binary size in SPL"
+       help
+         This enables building the LZMA library optimized for size, rather
+         than performance. This can be a loss of 15-20% in decompression
+         speed, but a savings of close to two kilobytes in many cases.
+
  config TPL_LZMA
        bool "Enable LZMA decompression support for TPL build"
        depends on TPL
diff --git a/lib/lzma/Makefile b/lib/lzma/Makefile
index c2fd3e494541..b8ad570ab1c2 100644
--- a/lib/lzma/Makefile
+++ b/lib/lzma/Makefile
@@ -7,5 +7,6 @@
  # Wolfgang Denk, DENX Software Engineering, [email protected].
ccflags-y += -D_LZMA_PROB32
+ccflags-$(CONFIG_$(PHASE_)LZMA_SIZE_OPTIMIZATION) += -D_LZMA_SIZE_OPT
obj-y += LzmaDec.o LzmaTools.o

Reply via email to