[PATCHv1 1/3] lzma: Add Kconfig options to optimize for size

Stefan Roese stefan.roese at mailbox.org
Mon Dec 22 09:42:36 CET 2025


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 <trini at konsulko.com>
> ---
> Cc: Stefan Roese <stefan.roese at mailbox.org>

Reviewed-by: Stefan Roese <stefan.roese at mailbox.org>

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, wd at denx.de.
>   
>   ccflags-y += -D_LZMA_PROB32
> +ccflags-$(CONFIG_$(PHASE_)LZMA_SIZE_OPTIMIZATION) += -D_LZMA_SIZE_OPT
>   
>   obj-y += LzmaDec.o LzmaTools.o



More information about the U-Boot mailing list