Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cc6d3497 authored by Phillip Lougher's avatar Phillip Lougher
Browse files

Squashfs: Make ZLIB compression support optional



Squashfs now supports XZ and LZO compression in addition to ZLIB.
As such it no longer makes sense to always include ZLIB support.
In particular embedded systems may only use LZO or XZ compression, and
the ability to exclude ZLIB support will reduce kernel size.

Signed-off-by: default avatarPhillip Lougher <phillip@squashfs.org.uk>
parent 812753d6
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
config SQUASHFS
	tristate "SquashFS 4.0 - Squashed file system support"
	depends on BLOCK
	select ZLIB_INFLATE
	help
	  Saying Y here includes support for SquashFS 4.0 (a Compressed
	  Read-Only File System).  Squashfs is a highly compressed read-only
@@ -36,6 +35,19 @@ config SQUASHFS_XATTR

	  If unsure, say N.

config SQUASHFS_ZLIB
	bool "Include support for ZLIB compressed file systems"
	depends on SQUASHFS
	select ZLIB_INFLATE
	default y
	help
	  ZLIB compression is the standard compression used by Squashfs
	  file systems.  It offers a good trade-off between compression
	  achieved and the amount of CPU time and memory necessary to
	  compress and decompress.

	  If unsure, say Y.

config SQUASHFS_LZO
	bool "Include support for LZO compressed file systems"
	depends on SQUASHFS
+2 −1
Original line number Diff line number Diff line
@@ -4,7 +4,8 @@

obj-$(CONFIG_SQUASHFS) += squashfs.o
squashfs-y += block.o cache.o dir.o export.o file.o fragment.o id.o inode.o
squashfs-y += namei.o super.o symlink.o zlib_wrapper.o decompressor.o
squashfs-y += namei.o super.o symlink.o decompressor.o
squashfs-$(CONFIG_SQUASHFS_XATTR) += xattr.o xattr_id.o
squashfs-$(CONFIG_SQUASHFS_LZO) += lzo_wrapper.o
squashfs-$(CONFIG_SQUASHFS_XZ) += xz_wrapper.o
squashfs-$(CONFIG_SQUASHFS_ZLIB) += zlib_wrapper.o
+6 −0
Original line number Diff line number Diff line
@@ -52,6 +52,12 @@ static const struct squashfs_decompressor squashfs_xz_comp_ops = {
};
#endif

#ifndef CONFIG_SQUASHFS_ZLIB
static const struct squashfs_decompressor squashfs_zlib_comp_ops = {
	NULL, NULL, NULL, ZLIB_COMPRESSION, "zlib", 0
};
#endif

static const struct squashfs_decompressor squashfs_unknown_comp_ops = {
	NULL, NULL, NULL, 0, "unknown", 0
};
+4 −0
Original line number Diff line number Diff line
@@ -56,4 +56,8 @@ extern const struct squashfs_decompressor squashfs_xz_comp_ops;
extern const struct squashfs_decompressor squashfs_lzo_comp_ops;
#endif

#ifdef CONFIG_SQUASHFS_ZLIB
extern const struct squashfs_decompressor squashfs_zlib_comp_ops;
#endif

#endif
+0 −3
Original line number Diff line number Diff line
@@ -97,6 +97,3 @@ extern const struct inode_operations squashfs_symlink_inode_ops;

/* xattr.c */
extern const struct xattr_handler *squashfs_xattr_handlers[];

/* zlib_wrapper.c */
extern const struct squashfs_decompressor squashfs_zlib_comp_ops;