bzip2/lzma: proper Kconfig dependencies for the ramdisk options
H. Peter Anvin [Mon, 5 Jan 2009 21:48:31 +0000 (13:48 -0800)]
Impact: Partial resolution of build failure

Make all the compression algorithms properly configurable, and make
sure the ramdisk options pull in the proper compression algorithms, as
they should.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>

drivers/block/Kconfig
lib/Kconfig
lib/Makefile

index 7955944..cc9fa69 100644 (file)
@@ -358,10 +358,20 @@ config BLK_DEV_XIP
          will prevent RAM block device backing store memory from being
          allocated from highmem (only a problem for highmem systems).
 
+config RD_GZIP
+       bool "Initial ramdisk compressed using gzip"
+       default y
+       depends on BLK_DEV_INITRD=y
+       select DECOMPRESS_GZIP
+       help
+         Support loading of a gzip encoded initial ramdisk or cpio buffer.
+         If unsure, say Y.
+
 config RD_BZIP2
        bool "Initial ramdisk compressed using bzip2"
        default n
        depends on BLK_DEV_INITRD=y
+       select DECOMPRESS_BZIP2
        help
          Support loading of a bzip2 encoded initial ramdisk or cpio buffer
          If unsure, say N.
@@ -370,19 +380,11 @@ config RD_LZMA
        bool "Initial ramdisk compressed using lzma"
        default n
        depends on BLK_DEV_INITRD=y
+       select DECOMPRESS_LZMA
        help
          Support loading of a lzma encoded initial ramdisk or cpio buffer
          If unsure, say N.
 
-config RD_GZIP
-       bool "Initial ramdisk compressed using gzip"
-       default y
-       depends on BLK_DEV_INITRD=y
-       select ZLIB_INFLATE
-       help
-         Support loading of a gzip encoded initial ramdisk or cpio buffer.
-         If unsure, say Y.
-
 config CDROM_PKTCDVD
        tristate "Packet writing on CD/DVD media"
        depends on !UML
index 03c2c24..e37f061 100644 (file)
@@ -98,6 +98,19 @@ config LZO_DECOMPRESS
        tristate
 
 #
+# These all provide a common interface (hence the apparent duplication with
+# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
+#
+config DECOMPRESS_GZIP
+       tristate
+
+config DECOMPRESS_BZIP2
+       tristate
+
+config DECOMPRESS_LZMA
+       tristate
+
+#
 # Generic allocator support is selected if needed
 #
 config GENERIC_ALLOCATOR
index e2a21d5..d9ac5a4 100644 (file)
@@ -11,8 +11,7 @@ lib-y := ctype.o string.o vsprintf.o cmdline.o \
         rbtree.o radix-tree.o dump_stack.o \
         idr.o int_sqrt.o extable.o prio_tree.o \
         sha1.o irq_regs.o reciprocal_div.o argv_split.o \
-        proportions.o prio_heap.o ratelimit.o show_mem.o is_single_threaded.o \
-        decompress_inflate.o decompress_bunzip2.o decompress_unlzma.o
+        proportions.o prio_heap.o ratelimit.o show_mem.o is_single_threaded.o
 
 lib-$(CONFIG_MMU) += ioremap.o
 lib-$(CONFIG_SMP) += cpumask.o
@@ -66,6 +65,10 @@ obj-$(CONFIG_REED_SOLOMON) += reed_solomon/
 obj-$(CONFIG_LZO_COMPRESS) += lzo/
 obj-$(CONFIG_LZO_DECOMPRESS) += lzo/
 
+obj-$(CONFIG_DECOMPRESS_GZIP) += decompress_inflate.o
+obj-$(CONFIG_DECOMPRESS_BZIP2) += decompress_bunzip2.o
+obj-$(CONFIG_DECOMPRESS_LZMA) += decompress_unlzma.o
+
 obj-$(CONFIG_TEXTSEARCH) += textsearch.o
 obj-$(CONFIG_TEXTSEARCH_KMP) += ts_kmp.o
 obj-$(CONFIG_TEXTSEARCH_BM) += ts_bm.o