On Fri, Aug 14, 2026 at 06:34:42PM +0000, Cole Munz wrote: > Alexey asked which boards actually carry this and what it costs them, so > here is the data. > > Nothing selects ZSTD except fs/btrfs/Kconfig, and nothing selects FS_BTRFS > except CMD_BTRFS in cmd/Kconfig. So a board pays for zstd only if its > defconfig sets CONFIG_ZSTD, CONFIG_FS_BTRFS or CONFIG_CMD_BTRFS, either > directly or through an included .config fragment. Resolving those includes > transitively, that is 41 of 1550 defconfigs:
Note that qconfig.py can do all of this for you. [snip] > Text growth, measured base vs this patch: > > turris_mox +1920 > mvebu_espressobin-88f3720 +1920 > am62x_evm_a53 +2072 > kontron-sl-mx8mm +2072 > imx8mp_dhcom_pdk2 +2072 > sandbox +2888 > > data and bss are unchanged on every one of them. ZSTD_LIB_MINIFY is default y > under ZSTD and none of the affected defconfigs turn it off, so those are the > numbers boards actually ship. The three i.MX8MP/AM62x figures come from the > linked ELF; those builds stop later at binman for want of vendor blobs I do > not have, with no compile errors. > > On a board without zstd there is no change at all. I built qemu_arm64 at the > parent commit and at this patch with SOURCE_DATE_EPOCH pinned: .text and > .text_rest are byte for byte identical. > > It is also not in xPL. SPL_ZSTD is a separate symbol, no defconfig enables it > and nothing selects it, so this only lands in U-Boot proper. > > I did not measure the RISC-V, PowerPC or 32-bit ARM boards in that list, as I > have no toolchain for them here. If you use buildman, you can tell it to fetch the normal cross toolchains from kernel.org. It can also be used with something like: https://git.u-boot-project.org/u-boot/u-boot-extras/-/blob/master/contrib/trini/u-boot-size-test.sh?ref_type=heads to give a more detailed growth report. Thanks for digging in to this, it is a question I had as well. -- Tom
signature.asc
Description: PGP signature
