mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-11-24 00:14:05 +02:00
tools/mtd-utils: update to 1.4.5
This updates mtd-utils in tools: 100-optional_lzo.patch and 101-ubifs-optional_lzo.patch are now uneeded as a WITHOUT_LZO flag is provided by the upstream sources. All remaining patches are refreshed for the new version. 135-mkubifs_optional_lzo.patch was created to respect WITHOUT_LZO also in mkubifs. Signed-off-by: Daniel Golle <dgolle@allnet.de> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30769 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
78859ab57d
commit
ce97090410
@ -6,15 +6,14 @@
|
|||||||
#
|
#
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=mtd
|
PKG_NAME:=mtd-utils
|
||||||
PKG_VERSION:=20101124
|
PKG_VERSION:=1.4.5
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=git://git.infradead.org/mtd-utils.git
|
PKG_SOURCE_URL:=git://git.infradead.org/mtd-utils.git
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_VERSION:=c1a7889da754dfac2f130772daef783980c65d5d
|
PKG_SOURCE_VERSION:=5319b84974fcb71504aed2d1b8285e9c0a4a4bb8
|
||||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
||||||
PKG_MD5SUM:=78e5e74957f458bd808a6d4af0a38071
|
|
||||||
PKG_CAT:=zcat
|
PKG_CAT:=zcat
|
||||||
|
|
||||||
HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/$(PKG_NAME)-$(PKG_VERSION)
|
HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/$(PKG_NAME)-$(PKG_VERSION)
|
||||||
@ -29,7 +28,7 @@ endif
|
|||||||
|
|
||||||
MTD_MAKEOPTS = \
|
MTD_MAKEOPTS = \
|
||||||
CFLAGS="$(CFLAGS)" \
|
CFLAGS="$(CFLAGS)" \
|
||||||
NO_LZO=1 WITHOUT_XATTR=1 \
|
WITHOUT_LZO=1 WITHOUT_XATTR=1 \
|
||||||
SUBDIRS="" \
|
SUBDIRS="" \
|
||||||
BUILDDIR="$(HOST_BUILD_DIR)"
|
BUILDDIR="$(HOST_BUILD_DIR)"
|
||||||
|
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
--- a/Makefile
|
|
||||||
+++ b/Makefile
|
|
||||||
@@ -43,10 +43,15 @@ $(SYMLINKS):
|
|
||||||
ln -sf ../fs/jffs2/$@ $@
|
|
||||||
|
|
||||||
$(BUILDDIR)/mkfs.jffs2: $(addprefix $(BUILDDIR)/,\
|
|
||||||
- compr_rtime.o mkfs.jffs2.o compr_zlib.o compr_lzo.o \
|
|
||||||
+ compr_rtime.o mkfs.jffs2.o compr_zlib.o $(if $(NO_LZO),,compr_lzo.o) \
|
|
||||||
compr.o rbtree.o)
|
|
||||||
-LDFLAGS_mkfs.jffs2 = $(ZLIBLDFLAGS) $(LZOLDFLAGS)
|
|
||||||
-LDLIBS_mkfs.jffs2 = -lz -llzo2
|
|
||||||
+LDFLAGS_mkfs.jffs2 := $(ZLIBLDFLAGS)
|
|
||||||
+LDLIBS_mkfs.jffs2 := -lz
|
|
||||||
+ifndef NO_LZO
|
|
||||||
+LDFLAGS_mkfs.jffs2 += $(LZOLDFLAGS)
|
|
||||||
+LDLIBS_mkfs.jffs2 += -llzo2
|
|
||||||
+CPPFLAGS += -DCONFIG_JFFS2_LZO
|
|
||||||
+endif
|
|
||||||
|
|
||||||
$(BUILDDIR)/jffs2reader: $(BUILDDIR)/jffs2reader.o
|
|
||||||
LDFLAGS_jffs2reader = $(ZLIBLDFLAGS) $(LZOLDFLAGS)
|
|
@ -1,84 +0,0 @@
|
|||||||
--- a/mkfs.ubifs/Makefile
|
|
||||||
+++ b/mkfs.ubifs/Makefile
|
|
||||||
@@ -6,7 +6,7 @@ ALL_SOURCES=*.[ch] hashtable/*.[ch]
|
|
||||||
|
|
||||||
TARGETS = mkfs.ubifs
|
|
||||||
|
|
||||||
-LDLIBS_mkfs.ubifs = -lz -llzo2 -lm -luuid -L$(BUILDDIR)/../ubi-utils/ -lubi
|
|
||||||
+LDLIBS_mkfs.ubifs = -lz $(if,$(NO_LZO),,-llzo2) -lm -luuid -L$(BUILDDIR)/../ubi-utils/ -lubi
|
|
||||||
LDLIBS_mkfs.ubifs += -L$(BUILDDIR)/../lib -lmtd -lcrc32
|
|
||||||
LDLIBS_mkfs.ubifs += $(ZLIBLDFLAGS) $(LZOLDFLAGS)
|
|
||||||
|
|
||||||
--- a/mkfs.ubifs/compr.c
|
|
||||||
+++ b/mkfs.ubifs/compr.c
|
|
||||||
@@ -24,7 +24,9 @@
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdint.h>
|
|
||||||
#include <string.h>
|
|
||||||
+#if CONFIG_UBIFS_LZO
|
|
||||||
#include <lzo/lzo1x.h>
|
|
||||||
+#endif
|
|
||||||
#include <linux/types.h>
|
|
||||||
|
|
||||||
#define crc32 __zlib_crc32
|
|
||||||
@@ -86,6 +88,16 @@ static int zlib_deflate(void *in_buf, si
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
+static int no_compress(void *in_buf, size_t in_len, void *out_buf,
|
|
||||||
+ size_t *out_len)
|
|
||||||
+{
|
|
||||||
+ memcpy(out_buf, in_buf, in_len);
|
|
||||||
+ *out_len = in_len;
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#if CONFIG_UBIFS_LZO
|
|
||||||
+
|
|
||||||
static int lzo_compress(void *in_buf, size_t in_len, void *out_buf,
|
|
||||||
size_t *out_len)
|
|
||||||
{
|
|
||||||
@@ -104,14 +116,16 @@ static int lzo_compress(void *in_buf, si
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
-static int no_compress(void *in_buf, size_t in_len, void *out_buf,
|
|
||||||
- size_t *out_len)
|
|
||||||
+#else
|
|
||||||
+
|
|
||||||
+static int lzo_compress(void *in_buf, size_t in_len, void *out_buf,
|
|
||||||
+ size_t *out_len)
|
|
||||||
{
|
|
||||||
- memcpy(out_buf, in_buf, in_len);
|
|
||||||
- *out_len = in_len;
|
|
||||||
- return 0;
|
|
||||||
+ return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
static char *zlib_buf;
|
|
||||||
|
|
||||||
static int favor_lzo_compress(void *in_buf, size_t in_len, void *out_buf,
|
|
||||||
@@ -198,9 +212,11 @@ int compress_data(void *in_buf, size_t i
|
|
||||||
|
|
||||||
int init_compression(void)
|
|
||||||
{
|
|
||||||
+#ifdef CONFIG_UBIFS_LZO
|
|
||||||
lzo_mem = malloc(LZO1X_999_MEM_COMPRESS);
|
|
||||||
if (!lzo_mem)
|
|
||||||
return -1;
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
zlib_buf = malloc(UBIFS_BLOCK_SIZE * WORST_COMPR_FACTOR);
|
|
||||||
if (!zlib_buf) {
|
|
||||||
@@ -214,7 +230,9 @@ int init_compression(void)
|
|
||||||
void destroy_compression(void)
|
|
||||||
{
|
|
||||||
free(zlib_buf);
|
|
||||||
+#ifdef CONFIG_UBIFS_LZO
|
|
||||||
free(lzo_mem);
|
|
||||||
+#endif
|
|
||||||
if (errcnt)
|
|
||||||
fprintf(stderr, "%llu compression errors occurred\n", errcnt);
|
|
||||||
}
|
|
@ -1,9 +1,9 @@
|
|||||||
--- a/compr_lzo.c
|
--- a/compr_lzo.c
|
||||||
+++ b/compr_lzo.c
|
+++ b/compr_lzo.c
|
||||||
@@ -24,7 +24,6 @@
|
@@ -26,7 +26,6 @@
|
||||||
#include <stdint.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
#ifndef WITHOUT_LZO
|
||||||
-#include <asm/types.h>
|
-#include <asm/types.h>
|
||||||
#include <linux/jffs2.h>
|
#include <linux/jffs2.h>
|
||||||
#include <lzo/lzo1x.h>
|
#include <lzo/lzo1x.h>
|
||||||
@ -67,7 +67,7 @@
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
--- a/mkfs.ubifs/mkfs.ubifs.c
|
--- a/mkfs.ubifs/mkfs.ubifs.c
|
||||||
+++ b/mkfs.ubifs/mkfs.ubifs.c
|
+++ b/mkfs.ubifs/mkfs.ubifs.c
|
||||||
@@ -805,8 +805,8 @@ int write_leb(int lnum, int len, void *b
|
@@ -821,8 +821,8 @@ int write_leb(int lnum, int len, void *b
|
||||||
if (ubi_leb_change_start(ubi, out_fd, lnum, c->leb_size, dtype))
|
if (ubi_leb_change_start(ubi, out_fd, lnum, c->leb_size, dtype))
|
||||||
return sys_err_msg("ubi_leb_change_start failed");
|
return sys_err_msg("ubi_leb_change_start failed");
|
||||||
|
|
||||||
@ -78,7 +78,7 @@
|
|||||||
(long long)pos);
|
(long long)pos);
|
||||||
|
|
||||||
if (write(out_fd, buf, c->leb_size) != c->leb_size)
|
if (write(out_fd, buf, c->leb_size) != c->leb_size)
|
||||||
@@ -1063,6 +1063,7 @@ static int add_inode_with_data(struct st
|
@@ -1079,6 +1079,7 @@ static int add_inode_with_data(struct st
|
||||||
|
|
||||||
if (c->default_compr != UBIFS_COMPR_NONE)
|
if (c->default_compr != UBIFS_COMPR_NONE)
|
||||||
use_flags |= UBIFS_COMPR_FL;
|
use_flags |= UBIFS_COMPR_FL;
|
||||||
@ -86,7 +86,7 @@
|
|||||||
if (flags & FS_COMPR_FL)
|
if (flags & FS_COMPR_FL)
|
||||||
use_flags |= UBIFS_COMPR_FL;
|
use_flags |= UBIFS_COMPR_FL;
|
||||||
if (flags & FS_SYNC_FL)
|
if (flags & FS_SYNC_FL)
|
||||||
@@ -1073,6 +1074,7 @@ static int add_inode_with_data(struct st
|
@@ -1089,6 +1090,7 @@ static int add_inode_with_data(struct st
|
||||||
use_flags |= UBIFS_APPEND_FL;
|
use_flags |= UBIFS_APPEND_FL;
|
||||||
if (flags & FS_DIRSYNC_FL && S_ISDIR(st->st_mode))
|
if (flags & FS_DIRSYNC_FL && S_ISDIR(st->st_mode))
|
||||||
use_flags |= UBIFS_DIRSYNC_FL;
|
use_flags |= UBIFS_DIRSYNC_FL;
|
||||||
@ -94,7 +94,7 @@
|
|||||||
|
|
||||||
memset(ino, 0, UBIFS_INO_NODE_SZ);
|
memset(ino, 0, UBIFS_INO_NODE_SZ);
|
||||||
|
|
||||||
@@ -1142,7 +1144,9 @@ static int add_dir_inode(DIR *dir, ino_t
|
@@ -1158,7 +1160,9 @@ static int add_dir_inode(DIR *dir, ino_t
|
||||||
fd = dirfd(dir);
|
fd = dirfd(dir);
|
||||||
if (fd == -1)
|
if (fd == -1)
|
||||||
return sys_err_msg("dirfd failed");
|
return sys_err_msg("dirfd failed");
|
||||||
@ -104,7 +104,7 @@
|
|||||||
flags = 0;
|
flags = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1327,10 +1331,12 @@ static int add_file(const char *path_nam
|
@@ -1343,10 +1347,12 @@ static int add_file(const char *path_nam
|
||||||
key_write(&key, &dn->key);
|
key_write(&key, &dn->key);
|
||||||
dn->size = cpu_to_le32(bytes_read);
|
dn->size = cpu_to_le32(bytes_read);
|
||||||
out_len = NODE_BUFFER_SIZE - UBIFS_DATA_NODE_SZ;
|
out_len = NODE_BUFFER_SIZE - UBIFS_DATA_NODE_SZ;
|
||||||
@ -117,7 +117,7 @@
|
|||||||
use_compr = c->default_compr;
|
use_compr = c->default_compr;
|
||||||
compr_type = compress_data(buf, bytes_read, &dn->data,
|
compr_type = compress_data(buf, bytes_read, &dn->data,
|
||||||
&out_len, use_compr);
|
&out_len, use_compr);
|
||||||
@@ -1372,7 +1378,9 @@ static int add_non_dir(const char *path_
|
@@ -1388,7 +1394,9 @@ static int add_non_dir(const char *path_
|
||||||
if (fd == -1)
|
if (fd == -1)
|
||||||
return sys_err_msg("failed to open file '%s'",
|
return sys_err_msg("failed to open file '%s'",
|
||||||
path_name);
|
path_name);
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
--- a/Makefile
|
--- a/Makefile
|
||||||
+++ b/Makefile
|
+++ b/Makefile
|
||||||
@@ -7,6 +7,11 @@ ifeq ($(WITHOUT_XATTR), 1)
|
@@ -12,6 +12,11 @@ else
|
||||||
CPPFLAGS += -DWITHOUT_XATTR
|
LZOLDLIBS = -llzo2
|
||||||
endif
|
endif
|
||||||
|
|
||||||
+ifeq ($(shell uname -o),Cygwin)
|
+ifeq ($(shell uname -o),Cygwin)
|
||||||
@ -10,9 +10,9 @@
|
|||||||
+
|
+
|
||||||
+ifneq ($(shell uname -o),Cygwin)
|
+ifneq ($(shell uname -o),Cygwin)
|
||||||
SUBDIRS = lib ubi-utils mkfs.ubifs
|
SUBDIRS = lib ubi-utils mkfs.ubifs
|
||||||
|
TESTS = tests
|
||||||
|
|
||||||
TARGETS = ftl_format flash_erase nanddump doc_loadbios \
|
@@ -23,6 +28,10 @@ TARGETS = ftl_format flash_erase nanddum
|
||||||
@@ -17,6 +22,10 @@ TARGETS = ftl_format flash_erase nanddum
|
|
||||||
rfddump rfdformat \
|
rfddump rfdformat \
|
||||||
serve_image recv_image \
|
serve_image recv_image \
|
||||||
sumtool #jffs2reader
|
sumtool #jffs2reader
|
||||||
@ -373,8 +373,8 @@
|
|||||||
+
|
+
|
||||||
--- a/mkfs.jffs2.c
|
--- a/mkfs.jffs2.c
|
||||||
+++ b/mkfs.jffs2.c
|
+++ b/mkfs.jffs2.c
|
||||||
@@ -76,6 +76,14 @@
|
@@ -77,6 +77,14 @@
|
||||||
|
#include "rbtree.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
+#ifdef __CYGWIN__
|
+#ifdef __CYGWIN__
|
||||||
@ -388,7 +388,7 @@
|
|||||||
/* Do not use the weird XPG version of basename */
|
/* Do not use the weird XPG version of basename */
|
||||||
#undef basename
|
#undef basename
|
||||||
|
|
||||||
@@ -375,7 +383,7 @@ static struct filesystem_entry *recursiv
|
@@ -376,7 +384,7 @@ static struct filesystem_entry *recursiv
|
||||||
the following macros use it if available or use a hacky workaround...
|
the following macros use it if available or use a hacky workaround...
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -397,10 +397,10 @@
|
|||||||
#define SCANF_PREFIX "a"
|
#define SCANF_PREFIX "a"
|
||||||
#define SCANF_STRING(s) (&s)
|
#define SCANF_STRING(s) (&s)
|
||||||
#define GETCWD_SIZE 0
|
#define GETCWD_SIZE 0
|
||||||
@@ -458,6 +466,14 @@ static int interpret_table_entry(struct
|
@@ -459,6 +467,14 @@ static int interpret_table_entry(struct
|
||||||
}
|
}
|
||||||
entry = find_filesystem_entry(root, name, mode);
|
entry = find_filesystem_entry(root, name, mode);
|
||||||
if (entry) {
|
if (entry && !(count > 0 && (type == 'c' || type == 'b'))) {
|
||||||
+ /* Check the type */
|
+ /* Check the type */
|
||||||
+ if ((mode & S_IFMT) != (entry->sb.st_mode & S_IFMT)) {
|
+ if ((mode & S_IFMT) != (entry->sb.st_mode & S_IFMT)) {
|
||||||
+ error_msg ("skipping device_table entry '%s': type mismatch!", name);
|
+ error_msg ("skipping device_table entry '%s': type mismatch!", name);
|
||||||
@ -412,7 +412,7 @@
|
|||||||
/* Ok, we just need to fixup the existing entry
|
/* Ok, we just need to fixup the existing entry
|
||||||
* and we will be all done... */
|
* and we will be all done... */
|
||||||
entry->sb.st_uid = uid;
|
entry->sb.st_uid = uid;
|
||||||
@@ -467,11 +483,21 @@ static int interpret_table_entry(struct
|
@@ -468,11 +484,21 @@ static int interpret_table_entry(struct
|
||||||
entry->sb.st_rdev = makedev(major, minor);
|
entry->sb.st_rdev = makedev(major, minor);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -435,7 +435,7 @@
|
|||||||
free(tmp);
|
free(tmp);
|
||||||
if (parent == NULL) {
|
if (parent == NULL) {
|
||||||
errmsg ("skipping device_table entry '%s': no parent directory!", name);
|
errmsg ("skipping device_table entry '%s': no parent directory!", name);
|
||||||
@@ -485,6 +511,7 @@ static int interpret_table_entry(struct
|
@@ -486,6 +512,7 @@ static int interpret_table_entry(struct
|
||||||
add_host_filesystem_entry(name, hostpath, uid, gid, mode, 0, parent);
|
add_host_filesystem_entry(name, hostpath, uid, gid, mode, 0, parent);
|
||||||
break;
|
break;
|
||||||
case 'f':
|
case 'f':
|
||||||
|
@ -9,17 +9,17 @@
|
|||||||
|
|
||||||
ifeq ($(WITHOUT_XATTR), 1)
|
ifeq ($(WITHOUT_XATTR), 1)
|
||||||
CPPFLAGS += -DWITHOUT_XATTR
|
CPPFLAGS += -DWITHOUT_XATTR
|
||||||
@@ -52,7 +52,9 @@ $(SYMLINKS):
|
@@ -59,7 +59,9 @@ $(SYMLINKS):
|
||||||
ln -sf ../fs/jffs2/$@ $@
|
ln -sf ../fs/jffs2/$@ $@
|
||||||
|
|
||||||
$(BUILDDIR)/mkfs.jffs2: $(addprefix $(BUILDDIR)/,\
|
$(BUILDDIR)/mkfs.jffs2: $(addprefix $(BUILDDIR)/,\
|
||||||
- compr_rtime.o mkfs.jffs2.o compr_zlib.o $(if $(NO_LZO),,compr_lzo.o) \
|
- compr_rtime.o mkfs.jffs2.o compr_zlib.o compr_lzo.o \
|
||||||
+ compr_rtime.o mkfs.jffs2.o compr_zlib.o \
|
+ compr_rtime.o mkfs.jffs2.o compr_zlib.o \
|
||||||
+ $(if $(NO_LZO),,compr_lzo.o) \
|
+ $(if $(WITHOUT_LZO),,compr_lzo.o) \
|
||||||
+ compr_lzma.o lzma/LzFind.o lzma/LzmaEnc.o lzma/LzmaDec.o \
|
+ compr_lzma.o lzma/LzFind.o lzma/LzmaEnc.o lzma/LzmaDec.o \
|
||||||
compr.o rbtree.o)
|
compr.o rbtree.o)
|
||||||
LDFLAGS_mkfs.jffs2 := $(ZLIBLDFLAGS)
|
LDFLAGS_mkfs.jffs2 = $(ZLIBLDFLAGS) $(LZOLDFLAGS)
|
||||||
LDLIBS_mkfs.jffs2 := -lz
|
LDLIBS_mkfs.jffs2 = -lz $(LZOLDLIBS)
|
||||||
--- a/compr.c
|
--- a/compr.c
|
||||||
+++ b/compr.c
|
+++ b/compr.c
|
||||||
@@ -520,6 +520,9 @@ int jffs2_compressors_init(void)
|
@@ -520,6 +520,9 @@ int jffs2_compressors_init(void)
|
||||||
@ -5013,7 +5013,7 @@
|
|||||||
+}
|
+}
|
||||||
--- a/mkfs.jffs2.c
|
--- a/mkfs.jffs2.c
|
||||||
+++ b/mkfs.jffs2.c
|
+++ b/mkfs.jffs2.c
|
||||||
@@ -1684,11 +1684,11 @@ int main(int argc, char **argv)
|
@@ -1685,11 +1685,11 @@ int main(int argc, char **argv)
|
||||||
}
|
}
|
||||||
erase_block_size *= units;
|
erase_block_size *= units;
|
||||||
|
|
||||||
|
@ -3,9 +3,9 @@
|
|||||||
@@ -7,7 +7,7 @@ SUBDIRS =
|
@@ -7,7 +7,7 @@ SUBDIRS =
|
||||||
# CFLAGS += -Werror
|
# CFLAGS += -Werror
|
||||||
CPPFLAGS += -I../include
|
CPPFLAGS += -I../include
|
||||||
LIBS = libmtd libcrc32
|
LIBS = libmtd
|
||||||
-TARGETS = libmtd.a libcrc32.a
|
-TARGETS = libmtd.a
|
||||||
+override TARGETS = libmtd.a libcrc32.a
|
+override TARGETS = libmtd.a
|
||||||
|
|
||||||
include ../common.mk
|
include ../common.mk
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
--- a/mkfs.jffs2.c
|
--- a/mkfs.jffs2.c
|
||||||
+++ b/mkfs.jffs2.c
|
+++ b/mkfs.jffs2.c
|
||||||
@@ -468,7 +468,7 @@ static int interpret_table_entry(struct
|
@@ -469,7 +469,7 @@ static int interpret_table_entry(struct
|
||||||
if (entry) {
|
if (entry && !(count > 0 && (type == 'c' || type == 'b'))) {
|
||||||
/* Check the type */
|
/* Check the type */
|
||||||
if ((mode & S_IFMT) != (entry->sb.st_mode & S_IFMT)) {
|
if ((mode & S_IFMT) != (entry->sb.st_mode & S_IFMT)) {
|
||||||
- error_msg ("skipping device_table entry '%s': type mismatch!", name);
|
- error_msg ("skipping device_table entry '%s': type mismatch!", name);
|
||||||
@ -9,7 +9,7 @@
|
|||||||
free(name);
|
free(name);
|
||||||
free(hostpath);
|
free(hostpath);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -484,7 +484,7 @@ static int interpret_table_entry(struct
|
@@ -485,7 +485,7 @@ static int interpret_table_entry(struct
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (type == 'f' || type == 'l') {
|
if (type == 'f' || type == 'l') {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/include/mtd/mtd-abi.h
|
--- a/include/mtd/mtd-abi.h
|
||||||
+++ b/include/mtd/mtd-abi.h
|
+++ b/include/mtd/mtd-abi.h
|
||||||
@@ -98,8 +98,8 @@
|
@@ -114,8 +114,8 @@ struct otp_info {
|
||||||
#define MEMGETREGIONINFO _IOWR('M', 8, struct region_info_user)
|
#define MEMGETREGIONINFO _IOWR('M', 8, struct region_info_user)
|
||||||
#define MEMSETOOBSEL _IOW('M', 9, struct nand_oobinfo)
|
#define MEMSETOOBSEL _IOW('M', 9, struct nand_oobinfo)
|
||||||
#define MEMGETOOBSEL _IOR('M', 10, struct nand_oobinfo)
|
#define MEMGETOOBSEL _IOR('M', 10, struct nand_oobinfo)
|
||||||
|
125
tools/mtd-utils/patches/135-mkubifs_optional_lzo.patch
Normal file
125
tools/mtd-utils/patches/135-mkubifs_optional_lzo.patch
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
--- a/mkfs.ubifs/compr.c
|
||||||
|
+++ b/mkfs.ubifs/compr.c
|
||||||
|
@@ -24,7 +24,9 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <string.h>
|
||||||
|
+#ifndef WITHOUT_LZO
|
||||||
|
#include <lzo/lzo1x.h>
|
||||||
|
+#endif
|
||||||
|
#include <linux/types.h>
|
||||||
|
|
||||||
|
#define crc32 __zlib_crc32
|
||||||
|
@@ -35,7 +37,9 @@
|
||||||
|
#include "ubifs-media.h"
|
||||||
|
#include "mkfs.ubifs.h"
|
||||||
|
|
||||||
|
+#ifndef WITHOUT_LZO
|
||||||
|
static void *lzo_mem;
|
||||||
|
+#endif
|
||||||
|
static unsigned long long errcnt = 0;
|
||||||
|
static struct ubifs_info *c = &info_;
|
||||||
|
|
||||||
|
@@ -86,6 +90,7 @@ static int zlib_deflate(void *in_buf, si
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifndef WITHOUT_LZO
|
||||||
|
static int lzo_compress(void *in_buf, size_t in_len, void *out_buf,
|
||||||
|
size_t *out_len)
|
||||||
|
{
|
||||||
|
@@ -103,6 +108,7 @@ static int lzo_compress(void *in_buf, si
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
static int no_compress(void *in_buf, size_t in_len, void *out_buf,
|
||||||
|
size_t *out_len)
|
||||||
|
@@ -120,14 +126,20 @@ static int favor_lzo_compress(void *in_b
|
||||||
|
int lzo_ret, zlib_ret;
|
||||||
|
size_t lzo_len, zlib_len;
|
||||||
|
|
||||||
|
+#ifndef WITHOUT_LZO
|
||||||
|
lzo_len = zlib_len = *out_len;
|
||||||
|
lzo_ret = lzo_compress(in_buf, in_len, out_buf, &lzo_len);
|
||||||
|
+#endif
|
||||||
|
zlib_ret = zlib_deflate(in_buf, in_len, zlib_buf, &zlib_len);
|
||||||
|
-
|
||||||
|
+#ifndef WITHOUT_LZO
|
||||||
|
if (lzo_ret && zlib_ret)
|
||||||
|
+#else
|
||||||
|
+ if (zlib_ret)
|
||||||
|
+#endif
|
||||||
|
/* Both compressors failed */
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
+#ifndef WITHOUT_LZO
|
||||||
|
if (!lzo_ret && !zlib_ret) {
|
||||||
|
double percent;
|
||||||
|
|
||||||
|
@@ -152,6 +164,7 @@ select_lzo:
|
||||||
|
*out_len = lzo_len;
|
||||||
|
*type = MKFS_UBIFS_COMPR_LZO;
|
||||||
|
return 0;
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
select_zlib:
|
||||||
|
*out_len = zlib_len;
|
||||||
|
@@ -174,9 +187,11 @@ int compress_data(void *in_buf, size_t i
|
||||||
|
ret = favor_lzo_compress(in_buf, in_len, out_buf, out_len, &type);
|
||||||
|
else {
|
||||||
|
switch (type) {
|
||||||
|
+#ifndef WITHOUT_LZO
|
||||||
|
case MKFS_UBIFS_COMPR_LZO:
|
||||||
|
ret = lzo_compress(in_buf, in_len, out_buf, out_len);
|
||||||
|
break;
|
||||||
|
+#endif
|
||||||
|
case MKFS_UBIFS_COMPR_ZLIB:
|
||||||
|
ret = zlib_deflate(in_buf, in_len, out_buf, out_len);
|
||||||
|
break;
|
||||||
|
@@ -198,13 +213,17 @@ int compress_data(void *in_buf, size_t i
|
||||||
|
|
||||||
|
int init_compression(void)
|
||||||
|
{
|
||||||
|
+#ifndef WITHOUT_LZO
|
||||||
|
lzo_mem = malloc(LZO1X_999_MEM_COMPRESS);
|
||||||
|
if (!lzo_mem)
|
||||||
|
return -1;
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
zlib_buf = malloc(UBIFS_BLOCK_SIZE * WORST_COMPR_FACTOR);
|
||||||
|
if (!zlib_buf) {
|
||||||
|
+#ifndef WITHOUT_LZO
|
||||||
|
free(lzo_mem);
|
||||||
|
+#endif
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -214,7 +233,9 @@ int init_compression(void)
|
||||||
|
void destroy_compression(void)
|
||||||
|
{
|
||||||
|
free(zlib_buf);
|
||||||
|
+#ifndef WITHOUT_LZO
|
||||||
|
free(lzo_mem);
|
||||||
|
+#endif
|
||||||
|
if (errcnt)
|
||||||
|
fprintf(stderr, "%llu compression errors occurred\n", errcnt);
|
||||||
|
}
|
||||||
|
--- a/mkfs.ubifs/Makefile
|
||||||
|
+++ b/mkfs.ubifs/Makefile
|
||||||
|
@@ -6,7 +6,13 @@ ALL_SOURCES=*.[ch] hashtable/*.[ch]
|
||||||
|
|
||||||
|
TARGETS = mkfs.ubifs
|
||||||
|
|
||||||
|
-LDLIBS_mkfs.ubifs = -lz -llzo2 -lm -luuid -L$(BUILDDIR)/../ubi-utils/ -lubi
|
||||||
|
+ifeq ($(WITHOUT_LZO), 1)
|
||||||
|
+ CPPFLAGS += -DWITHOUT_LZO
|
||||||
|
+else
|
||||||
|
+ LZOLDLIBS = -llzo2
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+LDLIBS_mkfs.ubifs = -lz $(LZOLDLIBS) -lm -luuid -L$(BUILDDIR)/../ubi-utils/ -lubi
|
||||||
|
LDLIBS_mkfs.ubifs += -L$(BUILDDIR)/../lib -lmtd
|
||||||
|
LDLIBS_mkfs.ubifs += $(ZLIBLDFLAGS) $(LZOLDFLAGS)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user