diff options
Diffstat (limited to 'meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2')
9 files changed, 0 insertions, 571 deletions
diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0001-Makefile-build-ubi-utils-only.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0001-Makefile-build-ubi-utils-only.patch deleted file mode 100644 index 6ac2cca9d..000000000 --- a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0001-Makefile-build-ubi-utils-only.patch +++ /dev/null | |||
@@ -1,87 +0,0 @@ | |||
1 | From 1c989e4c36d0bf76ab444f984bc73b98eeacd03f Mon Sep 17 00:00:00 2001 | ||
2 | From: Andrea Adami <andrea.adami@gmail.com> | ||
3 | Date: Sun, 29 Jun 2014 00:32:29 +0200 | ||
4 | Subject: [PATCH 1/9] Makefile: build ubi-utils only | ||
5 | |||
6 | We build all the static ubi-utils but actually only ubiattach is needed in | ||
7 | a minimalistic initramfs for the mount of ubi volumes. | ||
8 | |||
9 | More fixes are needed in order to build the full mtd-utils. | ||
10 | The first issue is: | ||
11 | |||
12 | | mkfs.jffs2.c:64:20: fatal error: libgen.h: No such file or directory | ||
13 | | #include <libgen.h> | ||
14 | |||
15 | Removing the include then the second error is: | ||
16 | |||
17 | | mkfs.jffs2.c:1570:22: error: '_SC_PAGESIZE' undeclared | ||
18 | | (first use in this function) | ||
19 | | page_size = sysconf(_SC_PAGESIZE); | ||
20 | |||
21 | Upstream-Status: Inappropriate [embedded specific] | ||
22 | |||
23 | Signed-off-by: Andrea Adami <andrea.adami@gmail.com> | ||
24 | --- | ||
25 | Makefile | 26 ++------------------------ | ||
26 | 1 file changed, 2 insertions(+), 24 deletions(-) | ||
27 | |||
28 | diff --git a/Makefile b/Makefile | ||
29 | index 3ce8587..8b79f71 100644 | ||
30 | --- a/Makefile | ||
31 | +++ b/Makefile | ||
32 | @@ -16,28 +16,11 @@ endif | ||
33 | |||
34 | TESTS = tests | ||
35 | |||
36 | -MTD_BINS = \ | ||
37 | - ftl_format flash_erase nanddump doc_loadbios \ | ||
38 | - ftl_check mkfs.jffs2 flash_lock flash_unlock \ | ||
39 | - flash_otp_info flash_otp_dump flash_otp_lock flash_otp_write \ | ||
40 | - mtd_debug flashcp nandwrite nandtest mtdpart \ | ||
41 | - jffs2dump \ | ||
42 | - nftldump nftl_format docfdisk \ | ||
43 | - rfddump rfdformat \ | ||
44 | - serve_image recv_image \ | ||
45 | - sumtool jffs2reader | ||
46 | UBI_BINS = \ | ||
47 | ubiupdatevol ubimkvol ubirmvol ubicrc32 ubinfo ubiattach \ | ||
48 | ubidetach ubinize ubiformat ubirename mtdinfo ubirsvol ubiblock | ||
49 | |||
50 | -BINS = $(MTD_BINS) | ||
51 | -BINS += mkfs.ubifs/mkfs.ubifs | ||
52 | -BINS += $(addprefix ubi-utils/,$(UBI_BINS)) | ||
53 | -SCRIPTS = flash_eraseall | ||
54 | - | ||
55 | -TARGETS = $(BINS) | ||
56 | -TARGETS += lib/libmtd.a | ||
57 | -TARGETS += ubi-utils/libubi.a | ||
58 | +BINS = $(addprefix ubi-utils/,$(UBI_BINS)) | ||
59 | |||
60 | OBJDEPS = $(BUILDDIR)/include/version.h | ||
61 | |||
62 | @@ -61,12 +44,9 @@ endif | ||
63 | rm -f $(BUILDDIR)/include/version.h | ||
64 | $(MAKE) -C $(TESTS) clean | ||
65 | |||
66 | -install:: $(addprefix $(BUILDDIR)/,${BINS}) ${SCRIPTS} | ||
67 | +install:: $(addprefix $(BUILDDIR)/,${BINS}) | ||
68 | mkdir -p ${DESTDIR}/${SBINDIR} | ||
69 | install -m 0755 $^ ${DESTDIR}/${SBINDIR}/ | ||
70 | - mkdir -p ${DESTDIR}/${MANDIR}/man1 | ||
71 | - install -m 0644 mkfs.jffs2.1 ${DESTDIR}/${MANDIR}/man1/ | ||
72 | - -gzip -9f ${DESTDIR}/${MANDIR}/man1/*.1 | ||
73 | |||
74 | tests:: | ||
75 | $(MAKE) -C $(TESTS) | ||
76 | @@ -91,8 +71,6 @@ LDLIBS_mkfs.jffs2 = -lz $(LZOLDLIBS) | ||
77 | LDFLAGS_jffs2reader = $(ZLIBLDFLAGS) $(LZOLDFLAGS) | ||
78 | LDLIBS_jffs2reader = -lz $(LZOLDLIBS) | ||
79 | |||
80 | -$(foreach v,$(MTD_BINS),$(eval $(call mkdep,,$(v)))) | ||
81 | - | ||
82 | # | ||
83 | # Common libmtd | ||
84 | # | ||
85 | -- | ||
86 | 2.7.4 | ||
87 | |||
diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0002-common.mk-for-klibc-CC-is-klcc.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0002-common.mk-for-klibc-CC-is-klcc.patch deleted file mode 100644 index c23d11f0b..000000000 --- a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0002-common.mk-for-klibc-CC-is-klcc.patch +++ /dev/null | |||
@@ -1,27 +0,0 @@ | |||
1 | From 89c76bbe82a2029a25b0654eb0a1d0b22d6e6877 Mon Sep 17 00:00:00 2001 | ||
2 | From: Andrea Adami <andrea.adami@gmail.com> | ||
3 | Date: Sun, 29 Jun 2014 00:37:28 +0200 | ||
4 | Subject: [PATCH 2/9] common.mk: for klibc $(CC) is klcc | ||
5 | |||
6 | Do not hardcode: assign the value to the variable if it is not already defined. | ||
7 | |||
8 | Upstream-Status: Submitted | ||
9 | |||
10 | Signed-off-by: Andrea Adami <andrea.adami@gmail.com> | ||
11 | --- | ||
12 | common.mk | 2 +- | ||
13 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
14 | |||
15 | diff --git a/common.mk b/common.mk | ||
16 | index ba87377..126d11a 100644 | ||
17 | --- a/common.mk | ||
18 | +++ b/common.mk | ||
19 | @@ -1,4 +1,4 @@ | ||
20 | -CC := $(CROSS)gcc | ||
21 | +CC ?= $(CROSS)gcc | ||
22 | AR := $(CROSS)ar | ||
23 | RANLIB := $(CROSS)ranlib | ||
24 | |||
25 | -- | ||
26 | 2.7.4 | ||
27 | |||
diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0003-libubi.c-add-klibc-specific-fixes-for-ioctl.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0003-libubi.c-add-klibc-specific-fixes-for-ioctl.patch deleted file mode 100644 index 9ad4a5b99..000000000 --- a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0003-libubi.c-add-klibc-specific-fixes-for-ioctl.patch +++ /dev/null | |||
@@ -1,76 +0,0 @@ | |||
1 | From fecbb7056d621a30f7106e67f5fe209763571b70 Mon Sep 17 00:00:00 2001 | ||
2 | From: Andrea Adami <andrea.adami@gmail.com> | ||
3 | Date: Sun, 29 Jun 2014 00:40:15 +0200 | ||
4 | Subject: [PATCH 3/9] libubi.c: add klibc specific fixes for ioctl | ||
5 | |||
6 | First issue is that ioctl() in klibc doesn't expect a constant as arg3. | ||
7 | Second issue is that arg3 in klibc ioctl() implementation is not optional. | ||
8 | |||
9 | Fixes: | ||
10 | |||
11 | | ubi-utils/libubi.c: In function 'do_attach': | ||
12 | | ubi-utils/libubi.c:698:8: warning: passing argument 3 of 'ioctl' discards | ||
13 | | 'const' qualifier from pointer target type | ||
14 | | ret = ioctl(fd, UBI_IOCATT, r); | ||
15 | | ^ | ||
16 | | In file included from ubi-utils/libubi.c:32:0: | ||
17 | | .../lib/klibc/include/sys/ioctl.h:15:14: note: expected 'void *' but argument | ||
18 | | is of type 'const struct ubi_attach_req *' | ||
19 | | __extern int ioctl(int, int, void *); | ||
20 | | ^ | ||
21 | |||
22 | | ubi-utils/libubi.c: In function 'ubi_vol_block_create': | ||
23 | | ubi-utils/libubi.c:1118:9: error: too few arguments to function 'ioctl' | ||
24 | | return ioctl(fd, UBI_IOCVOLCRBLK); | ||
25 | | ^ | ||
26 | | In file included from ubi-utils/libubi.c:32:0: | ||
27 | | .../lib/klibc/include/sys/ioctl.h:15:14: note: declared here | ||
28 | | __extern int ioctl(int, int, void *); | ||
29 | | ^ | ||
30 | | ubi-utils/libubi.c: In function 'ubi_vol_block_remove': | ||
31 | | ubi-utils/libubi.c:1123:9: error: too few arguments to function 'ioctl' | ||
32 | | return ioctl(fd, UBI_IOCVOLRMBLK); | ||
33 | | ^ | ||
34 | | In file included from ubi-utils/libubi.c:32:0: | ||
35 | | .../usr/lib/klibc/include/sys/ioctl.h:15:14: note: declared here | ||
36 | | __extern int ioctl(int, int, void *); | ||
37 | | ^ | ||
38 | |||
39 | Upstream-Status: Accepted | ||
40 | |||
41 | Signed-off-by: Andrea Adami <andrea.adami@gmail.com> | ||
42 | --- | ||
43 | ubi-utils/libubi.c | 6 +++--- | ||
44 | 1 file changed, 3 insertions(+), 3 deletions(-) | ||
45 | |||
46 | diff --git a/ubi-utils/libubi.c b/ubi-utils/libubi.c | ||
47 | index 97c0434..2b49833 100644 | ||
48 | --- a/ubi-utils/libubi.c | ||
49 | +++ b/ubi-utils/libubi.c | ||
50 | @@ -687,7 +687,7 @@ void libubi_close(libubi_t desc) | ||
51 | * success and %-1 in case of failure. @r->ubi_num contains newly created UBI | ||
52 | * device number. | ||
53 | */ | ||
54 | -static int do_attach(const char *node, const struct ubi_attach_req *r) | ||
55 | +static int do_attach(const char *node, struct ubi_attach_req *r) | ||
56 | { | ||
57 | int fd, ret; | ||
58 | |||
59 | @@ -1115,12 +1115,12 @@ int ubi_rsvol(libubi_t desc, const char *node, int vol_id, long long bytes) | ||
60 | |||
61 | int ubi_vol_block_create(int fd) | ||
62 | { | ||
63 | - return ioctl(fd, UBI_IOCVOLCRBLK); | ||
64 | + return ioctl(fd, UBI_IOCVOLCRBLK, NULL); | ||
65 | } | ||
66 | |||
67 | int ubi_vol_block_remove(int fd) | ||
68 | { | ||
69 | - return ioctl(fd, UBI_IOCVOLRMBLK); | ||
70 | + return ioctl(fd, UBI_IOCVOLRMBLK, NULL); | ||
71 | } | ||
72 | |||
73 | int ubi_update_start(libubi_t desc, int fd, long long bytes) | ||
74 | -- | ||
75 | 2.7.4 | ||
76 | |||
diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0004-Restore-compatibility-to-dietlibc-klibc-musl-libc-af.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0004-Restore-compatibility-to-dietlibc-klibc-musl-libc-af.patch deleted file mode 100644 index 2f31fb4a2..000000000 --- a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0004-Restore-compatibility-to-dietlibc-klibc-musl-libc-af.patch +++ /dev/null | |||
@@ -1,88 +0,0 @@ | |||
1 | From b668cb75cb7e72ff92055209130d4cd4b3cacbdb Mon Sep 17 00:00:00 2001 | ||
2 | From: Thorsten Glaser <tg@mirbsd.org> | ||
3 | Date: Fri, 20 Jun 2014 10:56:27 +0000 | ||
4 | Subject: [PATCH 4/9] Restore compatibility to dietlibc, klibc, musl libc after | ||
5 | commit 4f1b108 | ||
6 | MIME-Version: 1.0 | ||
7 | Content-Type: text/plain; charset=UTF-8 | ||
8 | Content-Transfer-Encoding: 8bit | ||
9 | |||
10 | Each C library has their own way to define off_t, and the <features.h> | ||
11 | header is nonstandard and specific to the GNU libc and those that clone | ||
12 | it (uClibc). Fefe’s dietlibc uses different flags, and klibc always uses | ||
13 | a 64-bit off_t (like the BSDs); musl libc cannot be recognised using cpp | ||
14 | instructions, so we assume 64 bit there (and on unknown C libraries) and | ||
15 | leave it to the user to submit a follow-up fix if we guess wrong. I also | ||
16 | added a static assertion to verify the 64 bit guess is correct. | ||
17 | |||
18 | It would be really better using a configure script for this instead. | ||
19 | |||
20 | Fixes: | ||
21 | | CC lib/libmtd.o | ||
22 | | In file included from ubi-utils/ubiutils-common.c:35:0: | ||
23 | | ./include/common.h:29:22: fatal error: features.h: No such file or directory | ||
24 | | #include <features.h> | ||
25 | | ^ | ||
26 | | compilation terminated. | ||
27 | |||
28 | Upstream-Status: Submitted | ||
29 | |||
30 | Signed-off-by: Thorsten Glaser <tg@mirbsd.org> | ||
31 | Signed-off-by: Andrea Adami <andrea.adami@gmail.com> | ||
32 | --- | ||
33 | include/common.h | 24 ++++++++++++++++++++++++ | ||
34 | 1 file changed, 24 insertions(+) | ||
35 | |||
36 | diff --git a/include/common.h b/include/common.h | ||
37 | index fb0ca83..5a20964 100644 | ||
38 | --- a/include/common.h | ||
39 | +++ b/include/common.h | ||
40 | @@ -26,7 +26,9 @@ | ||
41 | #include <string.h> | ||
42 | #include <fcntl.h> | ||
43 | #include <errno.h> | ||
44 | +#if defined(__GLIBC__) || defined(__UCLIBC__) | ||
45 | #include <features.h> | ||
46 | +#endif | ||
47 | #include <inttypes.h> | ||
48 | #include "version.h" | ||
49 | |||
50 | @@ -67,6 +69,21 @@ extern "C" { | ||
51 | #endif | ||
52 | |||
53 | /* define a print format specifier for off_t */ | ||
54 | +#if defined(__KLIBC__) | ||
55 | +/* always 64 bit on klibc */ | ||
56 | +#define PRIxoff_t PRIx64 | ||
57 | +#define PRIdoff_t PRId64 | ||
58 | +#elif defined(__dietlibc__) | ||
59 | +/* depends on compiler flags on dietlibc */ | ||
60 | +#if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64) | ||
61 | +#define PRIxoff_t PRIx64 | ||
62 | +#define PRIdoff_t PRId64 | ||
63 | +#else | ||
64 | +#define PRIxoff_t "l"PRIx32 | ||
65 | +#define PRIdoff_t "l"PRId32 | ||
66 | +#endif | ||
67 | +#elif defined(__GLIBC__) || defined(__UCLIBC__) | ||
68 | +/* depends on compiler flags on glibc and uClibc */ | ||
69 | #ifdef __USE_FILE_OFFSET64 | ||
70 | #define PRIxoff_t PRIx64 | ||
71 | #define PRIdoff_t PRId64 | ||
72 | @@ -74,6 +91,13 @@ extern "C" { | ||
73 | #define PRIxoff_t "l"PRIx32 | ||
74 | #define PRIdoff_t "l"PRId32 | ||
75 | #endif | ||
76 | +#else | ||
77 | +/* unknown libc or musl */ | ||
78 | +#define PRIxoff_t PRIx64 | ||
79 | +#define PRIdoff_t PRId64 | ||
80 | +/* verify our guess of 64 bit is correct */ | ||
81 | +static char __PRIxoff_t_static_assert[sizeof(off_t) == 8 ? 1 : -1]; | ||
82 | +#endif | ||
83 | |||
84 | /* Verbose messages */ | ||
85 | #define bareverbose(verbose, fmt, ...) do { \ | ||
86 | -- | ||
87 | 2.7.4 | ||
88 | |||
diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0005-common.h-more-workarounds-for-klibc-compatibility.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0005-common.h-more-workarounds-for-klibc-compatibility.patch deleted file mode 100644 index 8309a7271..000000000 --- a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0005-common.h-more-workarounds-for-klibc-compatibility.patch +++ /dev/null | |||
@@ -1,52 +0,0 @@ | |||
1 | From 5d4a66b502003ef385dab31a17012246407e7364 Mon Sep 17 00:00:00 2001 | ||
2 | From: Andrea Adami <andrea.adami@gmail.com> | ||
3 | Date: Sun, 29 Jun 2014 00:44:03 +0200 | ||
4 | Subject: [PATCH 5/9] common.h: more workarounds for klibc compatibility | ||
5 | |||
6 | Patch is addressing two issues: | ||
7 | * First, Klibc doesn't have rpmatch(). | ||
8 | * Second, Klibc lacks getline() | ||
9 | |||
10 | Fixes: | ||
11 | | LD ubi-utils/ubiformat | ||
12 | | .../git/ubi-utils/ubiformat.o: In function `prompt': | ||
13 | | .../git/./include/common.h:157: undefined reference to `getline' | ||
14 | | .../git/./include/common.h:164: undefined reference to `rpmatch' | ||
15 | | .../git/./include/common.h:157: undefined reference to `getline' | ||
16 | | .../git/./include/common.h:164: undefined reference to `rpmatch' | ||
17 | |||
18 | Upstream-Status: Submitted | ||
19 | |||
20 | Signed-off-by: Andrea Adami <andrea.adami@gmail.com> | ||
21 | --- | ||
22 | include/common.h | 8 +++++--- | ||
23 | 1 file changed, 5 insertions(+), 3 deletions(-) | ||
24 | |||
25 | diff --git a/include/common.h b/include/common.h | ||
26 | index 5a20964..2f51e1c 100644 | ||
27 | --- a/include/common.h | ||
28 | +++ b/include/common.h | ||
29 | @@ -161,15 +161,17 @@ static inline int __rpmatch(const char *resp) | ||
30 | */ | ||
31 | static inline bool prompt(const char *msg, bool def) | ||
32 | { | ||
33 | - char *line = NULL; | ||
34 | - size_t len; | ||
35 | + char *line; | ||
36 | bool ret = def; | ||
37 | |||
38 | + const int sizeof_line = 2; | ||
39 | + line = malloc(sizeof_line); | ||
40 | + | ||
41 | do { | ||
42 | normsg_cont("%s (%c/%c) ", msg, def ? 'Y' : 'y', def ? 'n' : 'N'); | ||
43 | fflush(stdout); | ||
44 | |||
45 | - while (getline(&line, &len, stdin) == -1) { | ||
46 | + while (fgets(line, sizeof_line, stdin) == NULL) { | ||
47 | printf("failed to read prompt; assuming '%s'\n", | ||
48 | def ? "yes" : "no"); | ||
49 | break; | ||
50 | -- | ||
51 | 2.7.4 | ||
52 | |||
diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0006-libiniparser-remove-unused-function-needing-float.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0006-libiniparser-remove-unused-function-needing-float.patch deleted file mode 100644 index d046f9505..000000000 --- a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0006-libiniparser-remove-unused-function-needing-float.patch +++ /dev/null | |||
@@ -1,85 +0,0 @@ | |||
1 | From 2af30e9b2988111e45ed6ea6af55e49ec7cb1cb1 Mon Sep 17 00:00:00 2001 | ||
2 | From: Andrea Adami <andrea.adami@gmail.com> | ||
3 | Date: Sun, 29 Jun 2014 00:44:57 +0200 | ||
4 | Subject: [PATCH 6/9] libiniparser: remove unused function needing float | ||
5 | |||
6 | Fixes: | ||
7 | | LD ubi-utils/ubiformat | ||
8 | | .../git/ubi-utils/libiniparser.a(libiniparser.o): In function | ||
9 | | ` LD ubi-utils/ubirename | ||
10 | | iniparser_getdouble': | ||
11 | | .../git/ubi-utils/libiniparser.c:336: undefined reference to `atof' | ||
12 | |||
13 | Grep doesn't reveal any occurrence of iniparser_getdouble(), using atof() so | ||
14 | remove it: floating-point is not supported in klibc | ||
15 | |||
16 | Upstream-Status: Accepted | ||
17 | |||
18 | Signed-off-by: Andrea Adami <andrea.adami@gmail.com> | ||
19 | --- | ||
20 | ubi-utils/include/libiniparser.h | 15 --------------- | ||
21 | ubi-utils/libiniparser.c | 22 ---------------------- | ||
22 | 2 files changed, 37 deletions(-) | ||
23 | |||
24 | diff --git a/ubi-utils/include/libiniparser.h b/ubi-utils/include/libiniparser.h | ||
25 | index be3c667..abd77aa 100644 | ||
26 | --- a/ubi-utils/include/libiniparser.h | ||
27 | +++ b/ubi-utils/include/libiniparser.h | ||
28 | @@ -158,21 +158,6 @@ int iniparser_getint(dictionary * d, const char * key, int notfound); | ||
29 | |||
30 | /*-------------------------------------------------------------------------*/ | ||
31 | /** | ||
32 | - @brief Get the string associated to a key, convert to a double | ||
33 | - @param d Dictionary to search | ||
34 | - @param key Key string to look for | ||
35 | - @param notfound Value to return in case of error | ||
36 | - @return double | ||
37 | - | ||
38 | - This function queries a dictionary for a key. A key as read from an | ||
39 | - ini file is given as "section:key". If the key cannot be found, | ||
40 | - the notfound value is returned. | ||
41 | - */ | ||
42 | -/*--------------------------------------------------------------------------*/ | ||
43 | -double iniparser_getdouble(dictionary * d, char * key, double notfound); | ||
44 | - | ||
45 | -/*-------------------------------------------------------------------------*/ | ||
46 | -/** | ||
47 | @brief Get the string associated to a key, convert to a boolean | ||
48 | @param d Dictionary to search | ||
49 | @param key Key string to look for | ||
50 | diff --git a/ubi-utils/libiniparser.c b/ubi-utils/libiniparser.c | ||
51 | index 898f57f..ba70c08 100644 | ||
52 | --- a/ubi-utils/libiniparser.c | ||
53 | +++ b/ubi-utils/libiniparser.c | ||
54 | @@ -316,28 +316,6 @@ int iniparser_getint(dictionary * d, const char * key, int notfound) | ||
55 | |||
56 | /*-------------------------------------------------------------------------*/ | ||
57 | /** | ||
58 | - @brief Get the string associated to a key, convert to a double | ||
59 | - @param d Dictionary to search | ||
60 | - @param key Key string to look for | ||
61 | - @param notfound Value to return in case of error | ||
62 | - @return double | ||
63 | - | ||
64 | - This function queries a dictionary for a key. A key as read from an | ||
65 | - ini file is given as "section:key". If the key cannot be found, | ||
66 | - the notfound value is returned. | ||
67 | - */ | ||
68 | -/*--------------------------------------------------------------------------*/ | ||
69 | -double iniparser_getdouble(dictionary * d, char * key, double notfound) | ||
70 | -{ | ||
71 | - char * str ; | ||
72 | - | ||
73 | - str = iniparser_getstring(d, key, INI_INVALID_KEY); | ||
74 | - if (str==INI_INVALID_KEY) return notfound ; | ||
75 | - return atof(str); | ||
76 | -} | ||
77 | - | ||
78 | -/*-------------------------------------------------------------------------*/ | ||
79 | -/** | ||
80 | @brief Get the string associated to a key, convert to a boolean | ||
81 | @param d Dictionary to search | ||
82 | @param key Key string to look for | ||
83 | -- | ||
84 | 2.7.4 | ||
85 | |||
diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0007-mtd-utils-common.c-convert-to-integer-arithmetic.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0007-mtd-utils-common.c-convert-to-integer-arithmetic.patch deleted file mode 100644 index 36b012f90..000000000 --- a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0007-mtd-utils-common.c-convert-to-integer-arithmetic.patch +++ /dev/null | |||
@@ -1,64 +0,0 @@ | |||
1 | From 41e7c76b0853bf5241b38b8167dfd57c27fef1eb Mon Sep 17 00:00:00 2001 | ||
2 | From: Andrea Adami <andrea.adami@gmail.com> | ||
3 | Date: Sun, 28 Jan 2018 21:47:59 +0100 | ||
4 | Subject: [PATCH 7/9] mtd-utils: common.c: convert to integer arithmetic | ||
5 | |||
6 | We use floating point just to print out KiB, MiB, GiB. | ||
7 | Avoid that to be klibc friendly. | ||
8 | |||
9 | Fixes compilation for aarch64 against klibc: | ||
10 | |||
11 | error: '-mgeneral-regs-only' is incompatible with floating-point argument | ||
12 | | printf("%s%.1f GiB", p, (double)bytes / (1024 * 1024 * 1024)); | ||
13 | etc. | ||
14 | |||
15 | Note: | ||
16 | * In the KiB case, we could apparently multiply by 100 before dividing | ||
17 | without risking overflow. This code simply avoids multiplications. | ||
18 | |||
19 | Upstream-Status: Submitted | ||
20 | |||
21 | Signed-off-by: Andrea Adami <andrea.adami@gmail.com> | ||
22 | --- | ||
23 | ubi-utils/ubiutils-common.c | 18 ++++++++++++------ | ||
24 | 1 file changed, 12 insertions(+), 6 deletions(-) | ||
25 | |||
26 | diff --git a/ubi-utils/ubiutils-common.c b/ubi-utils/ubiutils-common.c | ||
27 | index 6609a6b..0ded2a4 100644 | ||
28 | --- a/ubi-utils/ubiutils-common.c | ||
29 | +++ b/ubi-utils/ubiutils-common.c | ||
30 | @@ -107,6 +107,9 @@ long long ubiutils_get_bytes(const char *str) | ||
31 | void ubiutils_print_bytes(long long bytes, int bracket) | ||
32 | { | ||
33 | const char *p; | ||
34 | + int GiB = 1024 * 1024 * 1024; | ||
35 | + int MiB = 1024 * 1024; | ||
36 | + int KiB = 1024; | ||
37 | |||
38 | if (bracket) | ||
39 | p = " ("; | ||
40 | @@ -115,12 +118,15 @@ void ubiutils_print_bytes(long long bytes, int bracket) | ||
41 | |||
42 | printf("%lld bytes", bytes); | ||
43 | |||
44 | - if (bytes > 1024 * 1024 * 1024) | ||
45 | - printf("%s%.1f GiB", p, (double)bytes / (1024 * 1024 * 1024)); | ||
46 | - else if (bytes > 1024 * 1024) | ||
47 | - printf("%s%.1f MiB", p, (double)bytes / (1024 * 1024)); | ||
48 | - else if (bytes > 1024 && bytes != 0) | ||
49 | - printf("%s%.1f KiB", p, (double)bytes / 1024); | ||
50 | + if (bytes > GiB) | ||
51 | + printf("%s%lld.%lld GiB", p, | ||
52 | + bytes / GiB, bytes % GiB / (GiB / 10)); | ||
53 | + else if (bytes > MiB) | ||
54 | + printf("%s%lld.%lld MiB", p, | ||
55 | + bytes / MiB, bytes % MiB / (MiB / 10)); | ||
56 | + else if (bytes > KiB && bytes != 0) | ||
57 | + printf("%s%lld.%lld KiB", p, | ||
58 | + bytes / KiB, bytes % KiB / (KiB / 10)); | ||
59 | else | ||
60 | return; | ||
61 | |||
62 | -- | ||
63 | 2.7.4 | ||
64 | |||
diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0008-ubi-utils-ubiformat.c-convert-to-integer-arithmetic.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0008-ubi-utils-ubiformat.c-convert-to-integer-arithmetic.patch deleted file mode 100644 index 5bd05742c..000000000 --- a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0008-ubi-utils-ubiformat.c-convert-to-integer-arithmetic.patch +++ /dev/null | |||
@@ -1,44 +0,0 @@ | |||
1 | From e6f1a85c0a3df24fe3ca9a520dc697105e75a80c Mon Sep 17 00:00:00 2001 | ||
2 | From: Andrea Adami <andrea.adami@gmail.com> | ||
3 | Date: Sat, 27 Jan 2018 09:39:26 +0100 | ||
4 | Subject: [PATCH 8/9] ubi-utils: ubiformat.c: convert to integer arithmetic | ||
5 | |||
6 | Do not cast percent to double, it is just used as upper limit. | ||
7 | Avoid floating point to fix compilation for aarch64 against klibc: | ||
8 | |||
9 | error: '-mgeneral-regs-only' is incompatible with floating-point code | ||
10 | | int percent = ((double)si->ok_cnt)/si->good_cnt * 100; | ||
11 | | ^~~~~~~ | ||
12 | |||
13 | Notes: | ||
14 | * The checks in the code above this line ensure that si->good_cnt is not 0. | ||
15 | |||
16 | * The code assumes si->good_cnt * 100 will not overflow, then we can use | ||
17 | (si->ok_cnt * 100) safely because the former is bigger. | ||
18 | |||
19 | * The truncated result does not affect the logic: | ||
20 | i.e. a value of 49.9 is truncated to 49 and is still <50. | ||
21 | |||
22 | Upstream-Status: Submitted | ||
23 | |||
24 | Signed-off-by: Andrea Adami <andrea.adami@gmail.com> | ||
25 | --- | ||
26 | ubi-utils/ubiformat.c | 2 +- | ||
27 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
28 | |||
29 | diff --git a/ubi-utils/ubiformat.c b/ubi-utils/ubiformat.c | ||
30 | index 21409ca..d93164a 100644 | ||
31 | --- a/ubi-utils/ubiformat.c | ||
32 | +++ b/ubi-utils/ubiformat.c | ||
33 | @@ -843,7 +843,7 @@ int main(int argc, char * const argv[]) | ||
34 | } | ||
35 | |||
36 | if (!args.override_ec && si->empty_cnt < si->good_cnt) { | ||
37 | - int percent = ((double)si->ok_cnt)/si->good_cnt * 100; | ||
38 | + int percent = (si->ok_cnt * 100) / si->good_cnt; | ||
39 | |||
40 | /* | ||
41 | * Make sure the majority of eraseblocks have valid | ||
42 | -- | ||
43 | 2.7.4 | ||
44 | |||
diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0009-Eliminate-warnings-about-implicit-non-const-casting-.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0009-Eliminate-warnings-about-implicit-non-const-casting-.patch deleted file mode 100644 index 658246add..000000000 --- a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0009-Eliminate-warnings-about-implicit-non-const-casting-.patch +++ /dev/null | |||
@@ -1,48 +0,0 @@ | |||
1 | From 2229f3b9fd4bad47794c28e558ad273173cea73d Mon Sep 17 00:00:00 2001 | ||
2 | From: Andrea Adami <andrea.adami@gmail.com> | ||
3 | Date: Sat, 27 Jan 2018 09:52:46 +0100 | ||
4 | Subject: [PATCH 9/9] Eliminate warnings about implicit non-const casting in | ||
5 | libmtd | ||
6 | |||
7 | The mtd_get_dev_info1 function reads (among other things) name and type | ||
8 | string into coresponding struct mtd_dev_info fields. | ||
9 | |||
10 | The struct mtd_dev_info has the string fields marked const, requiring | ||
11 | them to be cast to non-const version during initialization. | ||
12 | |||
13 | This cast was previously omitted from the dev_read_data calls, | ||
14 | triggering warnings during compilation. | ||
15 | |||
16 | Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at> | ||
17 | Signed-off-by: Richard Weinberger <richard@nod.at> | ||
18 | |||
19 | Upstream-Status: Backport | ||
20 | |||
21 | Signed-off-by: Andrea Adami <andrea.adami@gmail.com> | ||
22 | --- | ||
23 | lib/libmtd.c | 4 ++-- | ||
24 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
25 | |||
26 | diff --git a/lib/libmtd.c b/lib/libmtd.c | ||
27 | index 60b4782..5f0bcbc 100644 | ||
28 | --- a/lib/libmtd.c | ||
29 | +++ b/lib/libmtd.c | ||
30 | @@ -746,13 +746,13 @@ int mtd_get_dev_info1(libmtd_t desc, int mtd_num, struct mtd_dev_info *mtd) | ||
31 | if (dev_get_major(lib, mtd_num, &mtd->major, &mtd->minor)) | ||
32 | return -1; | ||
33 | |||
34 | - ret = dev_read_data(lib->mtd_name, mtd_num, &mtd->name, | ||
35 | + ret = dev_read_data(lib->mtd_name, mtd_num, (char *)&mtd->name, | ||
36 | MTD_NAME_MAX + 1); | ||
37 | if (ret < 0) | ||
38 | return -1; | ||
39 | ((char *)mtd->name)[ret - 1] = '\0'; | ||
40 | |||
41 | - ret = dev_read_data(lib->mtd_type, mtd_num, &mtd->type_str, | ||
42 | + ret = dev_read_data(lib->mtd_type, mtd_num, (char *)&mtd->type_str, | ||
43 | MTD_TYPE_MAX + 1); | ||
44 | if (ret < 0) | ||
45 | return -1; | ||
46 | -- | ||
47 | 2.7.4 | ||
48 | |||