summaryrefslogtreecommitdiffstats
path: root/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2
diff options
context:
space:
mode:
Diffstat (limited to 'meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2')
-rw-r--r--meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0001-Makefile-build-ubi-utils-only.patch87
-rw-r--r--meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0002-common.mk-for-klibc-CC-is-klcc.patch27
-rw-r--r--meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0003-libubi.c-add-klibc-specific-fixes-for-ioctl.patch76
-rw-r--r--meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0004-Restore-compatibility-to-dietlibc-klibc-musl-libc-af.patch88
-rw-r--r--meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0005-common.h-more-workarounds-for-klibc-compatibility.patch52
-rw-r--r--meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0006-libiniparser-remove-unused-function-needing-float.patch85
-rw-r--r--meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0007-mtd-utils-common.c-convert-to-integer-arithmetic.patch64
-rw-r--r--meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0008-ubi-utils-ubiformat.c-convert-to-integer-arithmetic.patch44
-rw-r--r--meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0009-Eliminate-warnings-about-implicit-non-const-casting-.patch48
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 @@
1From 1c989e4c36d0bf76ab444f984bc73b98eeacd03f Mon Sep 17 00:00:00 2001
2From: Andrea Adami <andrea.adami@gmail.com>
3Date: Sun, 29 Jun 2014 00:32:29 +0200
4Subject: [PATCH 1/9] Makefile: build ubi-utils only
5
6We build all the static ubi-utils but actually only ubiattach is needed in
7a minimalistic initramfs for the mount of ubi volumes.
8
9More fixes are needed in order to build the full mtd-utils.
10The first issue is:
11
12| mkfs.jffs2.c:64:20: fatal error: libgen.h: No such file or directory
13| #include <libgen.h>
14
15Removing 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
21Upstream-Status: Inappropriate [embedded specific]
22
23Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
24---
25 Makefile | 26 ++------------------------
26 1 file changed, 2 insertions(+), 24 deletions(-)
27
28diff --git a/Makefile b/Makefile
29index 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--
862.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 @@
1From 89c76bbe82a2029a25b0654eb0a1d0b22d6e6877 Mon Sep 17 00:00:00 2001
2From: Andrea Adami <andrea.adami@gmail.com>
3Date: Sun, 29 Jun 2014 00:37:28 +0200
4Subject: [PATCH 2/9] common.mk: for klibc $(CC) is klcc
5
6Do not hardcode: assign the value to the variable if it is not already defined.
7
8Upstream-Status: Submitted
9
10Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
11---
12 common.mk | 2 +-
13 1 file changed, 1 insertion(+), 1 deletion(-)
14
15diff --git a/common.mk b/common.mk
16index 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--
262.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 @@
1From fecbb7056d621a30f7106e67f5fe209763571b70 Mon Sep 17 00:00:00 2001
2From: Andrea Adami <andrea.adami@gmail.com>
3Date: Sun, 29 Jun 2014 00:40:15 +0200
4Subject: [PATCH 3/9] libubi.c: add klibc specific fixes for ioctl
5
6First issue is that ioctl() in klibc doesn't expect a constant as arg3.
7Second issue is that arg3 in klibc ioctl() implementation is not optional.
8
9Fixes:
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
39Upstream-Status: Accepted
40
41Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
42---
43 ubi-utils/libubi.c | 6 +++---
44 1 file changed, 3 insertions(+), 3 deletions(-)
45
46diff --git a/ubi-utils/libubi.c b/ubi-utils/libubi.c
47index 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--
752.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 @@
1From b668cb75cb7e72ff92055209130d4cd4b3cacbdb Mon Sep 17 00:00:00 2001
2From: Thorsten Glaser <tg@mirbsd.org>
3Date: Fri, 20 Jun 2014 10:56:27 +0000
4Subject: [PATCH 4/9] Restore compatibility to dietlibc, klibc, musl libc after
5 commit 4f1b108
6MIME-Version: 1.0
7Content-Type: text/plain; charset=UTF-8
8Content-Transfer-Encoding: 8bit
9
10Each C library has their own way to define off_t, and the <features.h>
11header is nonstandard and specific to the GNU libc and those that clone
12it (uClibc). Fefe’s dietlibc uses different flags, and klibc always uses
13a 64-bit off_t (like the BSDs); musl libc cannot be recognised using cpp
14instructions, so we assume 64 bit there (and on unknown C libraries) and
15leave it to the user to submit a follow-up fix if we guess wrong. I also
16added a static assertion to verify the 64 bit guess is correct.
17
18It would be really better using a configure script for this instead.
19
20Fixes:
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
28Upstream-Status: Submitted
29
30Signed-off-by: Thorsten Glaser <tg@mirbsd.org>
31Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
32---
33 include/common.h | 24 ++++++++++++++++++++++++
34 1 file changed, 24 insertions(+)
35
36diff --git a/include/common.h b/include/common.h
37index 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--
872.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 @@
1From 5d4a66b502003ef385dab31a17012246407e7364 Mon Sep 17 00:00:00 2001
2From: Andrea Adami <andrea.adami@gmail.com>
3Date: Sun, 29 Jun 2014 00:44:03 +0200
4Subject: [PATCH 5/9] common.h: more workarounds for klibc compatibility
5
6Patch is addressing two issues:
7* First, Klibc doesn't have rpmatch().
8* Second, Klibc lacks getline()
9
10Fixes:
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
18Upstream-Status: Submitted
19
20Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
21---
22 include/common.h | 8 +++++---
23 1 file changed, 5 insertions(+), 3 deletions(-)
24
25diff --git a/include/common.h b/include/common.h
26index 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--
512.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 @@
1From 2af30e9b2988111e45ed6ea6af55e49ec7cb1cb1 Mon Sep 17 00:00:00 2001
2From: Andrea Adami <andrea.adami@gmail.com>
3Date: Sun, 29 Jun 2014 00:44:57 +0200
4Subject: [PATCH 6/9] libiniparser: remove unused function needing float
5
6Fixes:
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
13Grep doesn't reveal any occurrence of iniparser_getdouble(), using atof() so
14remove it: floating-point is not supported in klibc
15
16Upstream-Status: Accepted
17
18Signed-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
24diff --git a/ubi-utils/include/libiniparser.h b/ubi-utils/include/libiniparser.h
25index 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
50diff --git a/ubi-utils/libiniparser.c b/ubi-utils/libiniparser.c
51index 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--
842.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 @@
1From 41e7c76b0853bf5241b38b8167dfd57c27fef1eb Mon Sep 17 00:00:00 2001
2From: Andrea Adami <andrea.adami@gmail.com>
3Date: Sun, 28 Jan 2018 21:47:59 +0100
4Subject: [PATCH 7/9] mtd-utils: common.c: convert to integer arithmetic
5
6We use floating point just to print out KiB, MiB, GiB.
7Avoid that to be klibc friendly.
8
9Fixes compilation for aarch64 against klibc:
10
11error: '-mgeneral-regs-only' is incompatible with floating-point argument
12| printf("%s%.1f GiB", p, (double)bytes / (1024 * 1024 * 1024));
13etc.
14
15Note:
16* In the KiB case, we could apparently multiply by 100 before dividing
17 without risking overflow. This code simply avoids multiplications.
18
19Upstream-Status: Submitted
20
21Signed-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
26diff --git a/ubi-utils/ubiutils-common.c b/ubi-utils/ubiutils-common.c
27index 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--
632.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 @@
1From e6f1a85c0a3df24fe3ca9a520dc697105e75a80c Mon Sep 17 00:00:00 2001
2From: Andrea Adami <andrea.adami@gmail.com>
3Date: Sat, 27 Jan 2018 09:39:26 +0100
4Subject: [PATCH 8/9] ubi-utils: ubiformat.c: convert to integer arithmetic
5
6Do not cast percent to double, it is just used as upper limit.
7Avoid floating point to fix compilation for aarch64 against klibc:
8
9error: '-mgeneral-regs-only' is incompatible with floating-point code
10| int percent = ((double)si->ok_cnt)/si->good_cnt * 100;
11| ^~~~~~~
12
13Notes:
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
22Upstream-Status: Submitted
23
24Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
25---
26 ubi-utils/ubiformat.c | 2 +-
27 1 file changed, 1 insertion(+), 1 deletion(-)
28
29diff --git a/ubi-utils/ubiformat.c b/ubi-utils/ubiformat.c
30index 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--
432.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 @@
1From 2229f3b9fd4bad47794c28e558ad273173cea73d Mon Sep 17 00:00:00 2001
2From: Andrea Adami <andrea.adami@gmail.com>
3Date: Sat, 27 Jan 2018 09:52:46 +0100
4Subject: [PATCH 9/9] Eliminate warnings about implicit non-const casting in
5 libmtd
6
7The mtd_get_dev_info1 function reads (among other things) name and type
8string into coresponding struct mtd_dev_info fields.
9
10The struct mtd_dev_info has the string fields marked const, requiring
11them to be cast to non-const version during initialization.
12
13This cast was previously omitted from the dev_read_data calls,
14triggering warnings during compilation.
15
16Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
17Signed-off-by: Richard Weinberger <richard@nod.at>
18
19Upstream-Status: Backport
20
21Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
22---
23 lib/libmtd.c | 4 ++--
24 1 file changed, 2 insertions(+), 2 deletions(-)
25
26diff --git a/lib/libmtd.c b/lib/libmtd.c
27index 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--
472.7.4
48