summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Rini <[email protected]>2025-12-18 17:30:56 -0600
committerTom Rini <[email protected]>2026-01-06 14:44:21 -0600
commite7797f450ad26bca32c12ae55e3d43438b74f910 (patch)
treedb6129eafc55e0867448293171be0ba250ab79f7
parentdd0ad45920a7269c44c306b2764bd7b49c92f179 (diff)
lzma: Add Kconfig options to optimize for size
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. Reviewed-by: Stefan Roese <[email protected]> Signed-off-by: Tom Rini <[email protected]>
-rw-r--r--configs/gardena-smart-gateway-mt7688_defconfig2
-rw-r--r--lib/Kconfig14
-rw-r--r--lib/lzma/Makefile1
3 files changed, 17 insertions, 0 deletions
diff --git a/configs/gardena-smart-gateway-mt7688_defconfig b/configs/gardena-smart-gateway-mt7688_defconfig
index 3c2bcc6a3c4..aba8a2ffd1d 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 fe0b878a206..96032eaddf9 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 c2fd3e49454..b8ad570ab1c 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