diff options
author | Leon Woestenberg <leon@sidebranch.com> | 2009-11-10 12:28:31 +0100 |
---|---|---|
committer | Leon Woestenberg <leon@sidebranch.com> | 2009-11-18 19:22:12 +0100 |
commit | 96fa2bacf66afcb30903cea6a8ef3f612dbe2afc (patch) | |
tree | 7d536f4fcd4dc11699b9fa10d1ddd95cdf5adb1b /recipes/linux/linux-2.6.31/0007-Squashfs-Make-unlzma-available-to-non-initramfs-ini.patch | |
parent | d0728eceb609b8c9755d8d7ca795b433b785c15d (diff) |
linux-{,kirkwood-}2.6.31: Add upstream squashfs-4.0 LZMA patches.
Squashfs 4.0 has official LZMA in the works.
"Re: [Squashfs-devel] squashfs 4.0 lzma support"
According to the author "No, I don't anticipate the format
changing. As far as LZMA is concerned, the format is dictated
by the LZMA code in the kernel".
An updated squashfs-tools with LZMA support will be committed
to OpenEmbedded in a seperate commit.
Signed-off-by: Leon Woestenberg <leon@sidebranch.com>
Diffstat (limited to 'recipes/linux/linux-2.6.31/0007-Squashfs-Make-unlzma-available-to-non-initramfs-ini.patch')
-rw-r--r-- | recipes/linux/linux-2.6.31/0007-Squashfs-Make-unlzma-available-to-non-initramfs-ini.patch | 186 |
1 files changed, 186 insertions, 0 deletions
diff --git a/recipes/linux/linux-2.6.31/0007-Squashfs-Make-unlzma-available-to-non-initramfs-ini.patch b/recipes/linux/linux-2.6.31/0007-Squashfs-Make-unlzma-available-to-non-initramfs-ini.patch new file mode 100644 index 0000000000..2d6fc3af7e --- /dev/null +++ b/recipes/linux/linux-2.6.31/0007-Squashfs-Make-unlzma-available-to-non-initramfs-ini.patch @@ -0,0 +1,186 @@ +From fdf23ed283bc6ef5c25076ce2065f892120ff556 Mon Sep 17 00:00:00 2001 +From: Phillip Lougher <phillip@lougher.demon.co.uk> +Date: Thu, 22 Oct 2009 04:57:38 +0100 +Subject: [PATCH] Squashfs: Make unlzma available to non initramfs/initrd code + +Add a config option DECOMPRESS_LZMA_NEEDED which allows subsystems to +specify they need the unlzma code. Normally decompress_unlzma.c is +compiled with __init and unlzma is not exported to modules. + +Signed-off-by: Phillip Lougher <phillip@lougher.demon.co.uk> +--- + fs/squashfs/Kconfig | 1 + + include/linux/decompress/bunzip2_mm.h | 12 ++++++++++++ + include/linux/decompress/inflate_mm.h | 12 ++++++++++++ + include/linux/decompress/mm.h | 3 --- + include/linux/decompress/unlzma_mm.h | 20 ++++++++++++++++++++ + lib/Kconfig | 3 +++ + lib/decompress_bunzip2.c | 1 + + lib/decompress_inflate.c | 1 + + lib/decompress_unlzma.c | 5 ++++- + 9 files changed, 54 insertions(+), 4 deletions(-) + +diff --git a/fs/squashfs/Kconfig b/fs/squashfs/Kconfig +index 0294aa2..7ec5d7e 100644 +--- a/fs/squashfs/Kconfig ++++ b/fs/squashfs/Kconfig +@@ -30,6 +30,7 @@ config SQUASHFS_LZMA + bool "Include support for LZMA compressed file systems" + depends on SQUASHFS + select DECOMPRESS_LZMA ++ select DECOMPRESS_LZMA_NEEDED + + config SQUASHFS_EMBEDDED + +diff --git a/include/linux/decompress/bunzip2_mm.h b/include/linux/decompress/bunzip2_mm.h +new file mode 100644 +index 0000000..cac6fef +--- /dev/null ++++ b/include/linux/decompress/bunzip2_mm.h +@@ -0,0 +1,12 @@ ++#ifndef BUNZIP2_MM_H ++#define BUNZIP2_MM_H ++ ++#ifdef STATIC ++/* Code active when included from pre-boot environment: */ ++#define INIT ++#else ++/* Compile for initramfs/initrd code only */ ++#define INIT __init ++#endif ++ ++#endif +diff --git a/include/linux/decompress/inflate_mm.h b/include/linux/decompress/inflate_mm.h +new file mode 100644 +index 0000000..ca4a2ae +--- /dev/null ++++ b/include/linux/decompress/inflate_mm.h +@@ -0,0 +1,12 @@ ++#ifndef INFLATE_MM_H ++#define INFLATE_MM_H ++ ++#ifdef STATIC ++/* Code active when included from pre-boot environment: */ ++#define INIT ++#else ++/* Compile for initramfs/initrd code only */ ++#define INIT __init ++#endif ++ ++#endif +diff --git a/include/linux/decompress/mm.h b/include/linux/decompress/mm.h +index 12ff8c3..80f5ba4 100644 +--- a/include/linux/decompress/mm.h ++++ b/include/linux/decompress/mm.h +@@ -53,8 +53,6 @@ static void free(void *where) + + #define set_error_fn(x) + +-#define INIT +- + #else /* STATIC */ + + /* Code active when compiled standalone for use when loading ramdisk: */ +@@ -77,7 +75,6 @@ static void free(void *where) + static void(*error)(char *m); + #define set_error_fn(x) error = x; + +-#define INIT __init + #define STATIC + + #include <linux/init.h> +diff --git a/include/linux/decompress/unlzma_mm.h b/include/linux/decompress/unlzma_mm.h +new file mode 100644 +index 0000000..859287e +--- /dev/null ++++ b/include/linux/decompress/unlzma_mm.h +@@ -0,0 +1,20 @@ ++#ifndef UNLZMA_MM_H ++#define UNLZMA_MM_H ++ ++#ifdef STATIC ++ ++/* Code active when included from pre-boot environment: */ ++#define INIT ++ ++#elif defined(CONFIG_DECOMPRESS_LZMA_NEEDED) ++ ++/* Make it available to non initramfs/initrd code */ ++#define INIT ++#include <linux/module.h> ++#else ++ ++/* Compile for initramfs/initrd code only */ ++#define INIT __init ++#endif ++ ++#endif +diff --git a/lib/Kconfig b/lib/Kconfig +index bb1326d..25e7f28 100644 +--- a/lib/Kconfig ++++ b/lib/Kconfig +@@ -117,6 +117,9 @@ config DECOMPRESS_BZIP2 + config DECOMPRESS_LZMA + tristate + ++config DECOMPRESS_LZMA_NEEDED ++ boolean ++ + # + # Generic allocator support is selected if needed + # +diff --git a/lib/decompress_bunzip2.c b/lib/decompress_bunzip2.c +index 600f473..6eb6433 100644 +--- a/lib/decompress_bunzip2.c ++++ b/lib/decompress_bunzip2.c +@@ -52,6 +52,7 @@ + #include <linux/slab.h> + #endif /* STATIC */ + ++#include <linux/decompress/bunzip2_mm.h> + #include <linux/decompress/mm.h> + + #ifndef INT_MAX +diff --git a/lib/decompress_inflate.c b/lib/decompress_inflate.c +index fc686c7..cb6bcab 100644 +--- a/lib/decompress_inflate.c ++++ b/lib/decompress_inflate.c +@@ -23,6 +23,7 @@ + + #endif /* STATIC */ + ++#include <linux/decompress/inflate_mm.h> + #include <linux/decompress/mm.h> + + #define GZIP_IOBUF_SIZE (16*1024) +diff --git a/lib/decompress_unlzma.c b/lib/decompress_unlzma.c +index ca82fde..b2fd927 100644 +--- a/lib/decompress_unlzma.c ++++ b/lib/decompress_unlzma.c +@@ -36,6 +36,7 @@ + #include <linux/slab.h> + #endif /* STATIC */ + ++#include <linux/decompress/unlzma_mm.h> + #include <linux/decompress/mm.h> + + #define MIN(a, b) (((a) < (b)) ? (a) : (b)) +@@ -531,7 +532,7 @@ static inline void INIT process_bit1(struct writer *wr, struct rc *rc, + + + +-STATIC inline int INIT unlzma(unsigned char *buf, int in_len, ++STATIC int INIT unlzma(unsigned char *buf, int in_len, + int(*fill)(void*, unsigned int), + int(*flush)(void*, unsigned int), + unsigned char *output, +@@ -664,4 +665,6 @@ STATIC int INIT decompress(unsigned char *buf, int in_len, + { + return unlzma(buf, in_len - 4, fill, flush, output, posp, error_fn); + } ++#elif defined(CONFIG_DECOMPRESS_LZMA_NEEDED) ++EXPORT_SYMBOL(unlzma); + #endif +-- +1.5.2.5 + |