diff --git a/fs/squashfs/Config.in b/fs/squashfs/Config.in index 341e50a08c..0e8de2fd3a 100644 --- a/fs/squashfs/Config.in +++ b/fs/squashfs/Config.in @@ -89,4 +89,30 @@ config BR2_TARGET_ROOTFS_SQUASHFS4_ZSTD endchoice +config BR2_TARGET_ROOTFS_SQUASHFS_EXTREME_COMP + bool "extreme compression when available" + default y if BR2_TARGET_ROOTFS_SQUASHFS4_LZ4 # legacy + help + Use options to increase compression ration as much as + possible, like using architecture-specific options, at + the cost of time when assembling the filesystem image. + + For example: + - with gzip and lzo, use -Xcompression-level 9 + - with xz use arch-specific bcj (branch-call-jump) filters + - with zstd use -Xcompression-level 22 + - and more + +config BR2_TARGET_ROOTFS_SQUASHFS_COMP_OPTS + string + default "-Xcompression-level 9" if BR2_TARGET_ROOTFS_SQUASHFS4_GZIP + default "-Xcompression-level 9" if BR2_TARGET_ROOTFS_SQUASHFS4_LZO + default "-Xhc" if BR2_TARGET_ROOTFS_SQUASHFS4_LZ4 + default "-Xbcj arm,armthumb" if BR2_TARGET_ROOTFS_SQUASHFS4_XZ && (BR2_arm || BR_aarch64) + default "-Xbcj powerpc" if BR2_TARGET_ROOTFS_SQUASHFS4_XZ && (BR2_powerpc || BR2_powerpc64) + default "-Xbcj sparc" if BR2_TARGET_ROOTFS_SQUASHFS4_XZ && (BR2_sparc || BR2_sparc64) + default "-Xbcj x86" if BR2_TARGET_ROOTFS_SQUASHFS4_XZ && (BR2_i386 || BR2_x86_64) + default "-Xcompression-level 22" if BR2_TARGET_ROOTFS_SQUASHFS4_ZSTD + depends on BR2_TARGET_ROOTFS_SQUASHFS_EXTREME_COMP + endif diff --git a/fs/squashfs/squashfs.mk b/fs/squashfs/squashfs.mk index 2148bb4494..cf083663c1 100644 --- a/fs/squashfs/squashfs.mk +++ b/fs/squashfs/squashfs.mk @@ -9,14 +9,15 @@ ROOTFS_SQUASHFS_DEPENDENCIES = host-squashfs ROOTFS_SQUASHFS_ARGS = \ -noappend \ -processors $(PARALLEL_JOBS) \ - -b $(call qstrip,$(BR2_TARGET_ROOTFS_SQUASHFS_BS)) + -b $(call qstrip,$(BR2_TARGET_ROOTFS_SQUASHFS_BS)) \ + $(call qstrip,$(BR2_TARGET_ROOTFS_SQUASHFS_COMP_OPTS)) ifeq ($(BR2_TARGET_ROOTFS_SQUASHFS_PAD),) ROOTFS_SQUASHFS_ARGS += -nopad endif ifeq ($(BR2_TARGET_ROOTFS_SQUASHFS4_LZ4),y) -ROOTFS_SQUASHFS_ARGS += -comp lz4 -Xhc +ROOTFS_SQUASHFS_ARGS += -comp lz4 else ifeq ($(BR2_TARGET_ROOTFS_SQUASHFS4_LZO),y) ROOTFS_SQUASHFS_ARGS += -comp lzo else ifeq ($(BR2_TARGET_ROOTFS_SQUASHFS4_LZMA),y)