summaryrefslogtreecommitdiffstats
path: root/meta-initramfs/recipes-devtools
diff options
context:
space:
mode:
authorAndrea Adami <andrea.adami@gmail.com>2018-01-29 00:05:07 +0100
committerArmin Kuster <akuster808@gmail.com>2018-02-11 11:50:56 -0800
commitedbe41f53ec15eeae4673498c41a1f3a42ac813b (patch)
treed27d63b3249b2d4ebfee8ad5e837466d256e7ac2 /meta-initramfs/recipes-devtools
parent75356b6a76e965f6e282e8219e88afc1ab4f3240 (diff)
downloadmeta-openembedded-edbe41f53ec15eeae4673498c41a1f3a42ac813b.tar.gz
ubi-utils-klibc_1.5.2: fix build for qemuarm
Building the recipe with TUNE_FEATURES = "aarch64" and TARGET_FPU = "" fails. See patch headers for more details. Patch sent upstream for master, here rebased for 1.5.2. Tested runtime on armv5. While there backport one more patch fixing warnings in libmtd.c and move the patches in their specific dir, preparing for v2.0.1. Signed-off-by: Andrea Adami <andrea.adami@gmail.com> Signed-off-by: Armin Kuster <akuster808@gmail.com>
Diffstat (limited to 'meta-initramfs/recipes-devtools')
-rw-r--r--meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0001-Makefile-build-ubi-utils-only.patch (renamed from meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0001-Makefile-only-build-ubi-utils.patch)19
-rw-r--r--meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0002-common.mk-for-klibc-CC-is-klcc.patch (renamed from meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0002-common.mk-for-klibc-CC-is-klcc.patch)10
-rw-r--r--meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0003-libubi.c-add-klibc-specific-fixes-for-ioctl.patch (renamed from meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0003-libubi.c-add-klibc-specific-fixes.patch)10
-rw-r--r--meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0004-Restore-compatibility-to-dietlibc-klibc-musl-libc-af.patch (renamed from meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0004-common.h-klibc-fixes-1.patch)18
-rw-r--r--meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0005-common.h-more-workarounds-for-klibc-compatibility.patch (renamed from meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0005-common.h-klibc-fixes-2.patch)23
-rw-r--r--meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0006-libiniparser-remove-unused-function-needing-float.patch (renamed from meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0006-libiniparser-remove-unused-function-needing-float.patch)8
-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
-rw-r--r--meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_1.5.2.bb11
10 files changed, 212 insertions, 43 deletions
diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0001-Makefile-only-build-ubi-utils.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0001-Makefile-build-ubi-utils-only.patch
index 6e1b9ff100..6ac2cca9d6 100644
--- a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0001-Makefile-only-build-ubi-utils.patch
+++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0001-Makefile-build-ubi-utils-only.patch
@@ -1,7 +1,7 @@
1From c4e6bd9378645d577e9d9f85da85f1438afe7c50 Mon Sep 17 00:00:00 2001 1From 1c989e4c36d0bf76ab444f984bc73b98eeacd03f Mon Sep 17 00:00:00 2001
2From: Andrea Adami <andrea.adami@gmail.com> 2From: Andrea Adami <andrea.adami@gmail.com>
3Date: Sun, 29 Jun 2014 00:32:29 +0200 3Date: Sun, 29 Jun 2014 00:32:29 +0200
4Subject: [PATCH 1/6] Makefile: build ubi-utils only 4Subject: [PATCH 1/9] Makefile: build ubi-utils only
5 5
6We build all the static ubi-utils but actually only ubiattach is needed in 6We build all the static ubi-utils but actually only ubiattach is needed in
7a minimalistic initramfs for the mount of ubi volumes. 7a minimalistic initramfs for the mount of ubi volumes.
@@ -22,13 +22,13 @@ Upstream-Status: Inappropriate [embedded specific]
22 22
23Signed-off-by: Andrea Adami <andrea.adami@gmail.com> 23Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
24--- 24---
25 Makefile | 24 ++---------------------- 25 Makefile | 26 ++------------------------
26 1 file changed, 2 insertions(+), 22 deletions(-) 26 1 file changed, 2 insertions(+), 24 deletions(-)
27 27
28Index: git/Makefile 28diff --git a/Makefile b/Makefile
29=================================================================== 29index 3ce8587..8b79f71 100644
30--- git.orig/Makefile 30--- a/Makefile
31+++ git/Makefile 31+++ b/Makefile
32@@ -16,28 +16,11 @@ endif 32@@ -16,28 +16,11 @@ endif
33 33
34 TESTS = tests 34 TESTS = tests
@@ -82,3 +82,6 @@ Index: git/Makefile
82 # 82 #
83 # Common libmtd 83 # Common libmtd
84 # 84 #
85--
862.7.4
87
diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/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
index f46824b5cd..c23d11f0b4 100644
--- a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/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
@@ -1,11 +1,11 @@
1From f3609c7c0450b4c31e1d4603fcf2cfb1ba46f994 Mon Sep 17 00:00:00 2001 1From 89c76bbe82a2029a25b0654eb0a1d0b22d6e6877 Mon Sep 17 00:00:00 2001
2From: Andrea Adami <andrea.adami@gmail.com> 2From: Andrea Adami <andrea.adami@gmail.com>
3Date: Sun, 29 Jun 2014 00:37:28 +0200 3Date: Sun, 29 Jun 2014 00:37:28 +0200
4Subject: [PATCH 2/6] common.mk: for klibc $(CC) is klcc 4Subject: [PATCH 2/9] common.mk: for klibc $(CC) is klcc
5 5
6Do not hardcode: assign the value to the variable if it is not already defined. 6Do not hardcode: assign the value to the variable if it is not already defined.
7 7
8Upstream-Status: Pending 8Upstream-Status: Submitted
9 9
10Signed-off-by: Andrea Adami <andrea.adami@gmail.com> 10Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
11--- 11---
@@ -13,7 +13,7 @@ Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
13 1 file changed, 1 insertion(+), 1 deletion(-) 13 1 file changed, 1 insertion(+), 1 deletion(-)
14 14
15diff --git a/common.mk b/common.mk 15diff --git a/common.mk b/common.mk
16index ba87377..59c56df 100644 16index ba87377..126d11a 100644
17--- a/common.mk 17--- a/common.mk
18+++ b/common.mk 18+++ b/common.mk
19@@ -1,4 +1,4 @@ 19@@ -1,4 +1,4 @@
@@ -23,5 +23,5 @@ index ba87377..59c56df 100644
23 RANLIB := $(CROSS)ranlib 23 RANLIB := $(CROSS)ranlib
24 24
25-- 25--
261.9.1 262.7.4
27 27
diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0003-libubi.c-add-klibc-specific-fixes.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0003-libubi.c-add-klibc-specific-fixes-for-ioctl.patch
index 962b3685f3..9ad4a5b99e 100644
--- a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0003-libubi.c-add-klibc-specific-fixes.patch
+++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0003-libubi.c-add-klibc-specific-fixes-for-ioctl.patch
@@ -1,7 +1,7 @@
1From 72a39bb3290a79e76b0dbf59eef83ea2d9b577a1 Mon Sep 17 00:00:00 2001 1From fecbb7056d621a30f7106e67f5fe209763571b70 Mon Sep 17 00:00:00 2001
2From: Andrea Adami <andrea.adami@gmail.com> 2From: Andrea Adami <andrea.adami@gmail.com>
3Date: Sun, 29 Jun 2014 00:40:15 +0200 3Date: Sun, 29 Jun 2014 00:40:15 +0200
4Subject: [PATCH 3/6] libubi.c: add klibc specific fixes for ioctl 4Subject: [PATCH 3/9] libubi.c: add klibc specific fixes for ioctl
5 5
6First issue is that ioctl() in klibc doesn't expect a constant as arg3. 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. 7Second issue is that arg3 in klibc ioctl() implementation is not optional.
@@ -36,7 +36,7 @@ Fixes:
36| __extern int ioctl(int, int, void *); 36| __extern int ioctl(int, int, void *);
37| ^ 37| ^
38 38
39Upstream-Status: Inappropriate [klibc specific] 39Upstream-Status: Accepted
40 40
41Signed-off-by: Andrea Adami <andrea.adami@gmail.com> 41Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
42--- 42---
@@ -44,7 +44,7 @@ Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
44 1 file changed, 3 insertions(+), 3 deletions(-) 44 1 file changed, 3 insertions(+), 3 deletions(-)
45 45
46diff --git a/ubi-utils/libubi.c b/ubi-utils/libubi.c 46diff --git a/ubi-utils/libubi.c b/ubi-utils/libubi.c
47index 1e08b7d..491e525 100644 47index 97c0434..2b49833 100644
48--- a/ubi-utils/libubi.c 48--- a/ubi-utils/libubi.c
49+++ b/ubi-utils/libubi.c 49+++ b/ubi-utils/libubi.c
50@@ -687,7 +687,7 @@ void libubi_close(libubi_t desc) 50@@ -687,7 +687,7 @@ void libubi_close(libubi_t desc)
@@ -72,5 +72,5 @@ index 1e08b7d..491e525 100644
72 72
73 int ubi_update_start(libubi_t desc, int fd, long long bytes) 73 int ubi_update_start(libubi_t desc, int fd, long long bytes)
74-- 74--
751.9.1 752.7.4
76 76
diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0004-common.h-klibc-fixes-1.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0004-Restore-compatibility-to-dietlibc-klibc-musl-libc-af.patch
index fee1cbcf90..2f31fb4a26 100644
--- a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0004-common.h-klibc-fixes-1.patch
+++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0004-Restore-compatibility-to-dietlibc-klibc-musl-libc-af.patch
@@ -1,7 +1,11 @@
1From e56767b9caa02e7c41803499c77dc939d5a7f64a Mon Sep 17 00:00:00 2001 1From b668cb75cb7e72ff92055209130d4cd4b3cacbdb Mon Sep 17 00:00:00 2001
2From: Thorsten Glaser <tg@mirbsd.org> 2From: Thorsten Glaser <tg@mirbsd.org>
3Date: Fri, 20 Jun 2014 10:56:27 +0000 3Date: Fri, 20 Jun 2014 10:56:27 +0000
4Subject: [PATCH 4/6] Restore compatibility to dietlibc, klibc, musl libc after commit 4f1b108 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
5 9
6Each C library has their own way to define off_t, and the <features.h> 10Each C library has their own way to define off_t, and the <features.h>
7header is nonstandard and specific to the GNU libc and those that clone 11header is nonstandard and specific to the GNU libc and those that clone
@@ -21,7 +25,7 @@ Fixes:
21| ^ 25| ^
22| compilation terminated. 26| compilation terminated.
23 27
24Upstream-Status: Pending 28Upstream-Status: Submitted
25 29
26Signed-off-by: Thorsten Glaser <tg@mirbsd.org> 30Signed-off-by: Thorsten Glaser <tg@mirbsd.org>
27Signed-off-by: Andrea Adami <andrea.adami@gmail.com> 31Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
@@ -30,7 +34,7 @@ Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
30 1 file changed, 24 insertions(+) 34 1 file changed, 24 insertions(+)
31 35
32diff --git a/include/common.h b/include/common.h 36diff --git a/include/common.h b/include/common.h
33index 6895e5c..77f3f7d 100644 37index fb0ca83..5a20964 100644
34--- a/include/common.h 38--- a/include/common.h
35+++ b/include/common.h 39+++ b/include/common.h
36@@ -26,7 +26,9 @@ 40@@ -26,7 +26,9 @@
@@ -43,7 +47,7 @@ index 6895e5c..77f3f7d 100644
43 #include <inttypes.h> 47 #include <inttypes.h>
44 #include "version.h" 48 #include "version.h"
45 49
46@@ -52,6 +54,21 @@ extern "C" { 50@@ -67,6 +69,21 @@ extern "C" {
47 #endif 51 #endif
48 52
49 /* define a print format specifier for off_t */ 53 /* define a print format specifier for off_t */
@@ -65,7 +69,7 @@ index 6895e5c..77f3f7d 100644
65 #ifdef __USE_FILE_OFFSET64 69 #ifdef __USE_FILE_OFFSET64
66 #define PRIxoff_t PRIx64 70 #define PRIxoff_t PRIx64
67 #define PRIdoff_t PRId64 71 #define PRIdoff_t PRId64
68@@ -59,6 +76,13 @@ extern "C" { 72@@ -74,6 +91,13 @@ extern "C" {
69 #define PRIxoff_t "l"PRIx32 73 #define PRIxoff_t "l"PRIx32
70 #define PRIdoff_t "l"PRId32 74 #define PRIdoff_t "l"PRId32
71 #endif 75 #endif
@@ -80,5 +84,5 @@ index 6895e5c..77f3f7d 100644
80 /* Verbose messages */ 84 /* Verbose messages */
81 #define bareverbose(verbose, fmt, ...) do { \ 85 #define bareverbose(verbose, fmt, ...) do { \
82-- 86--
831.9.1 872.7.4
84 88
diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0005-common.h-klibc-fixes-2.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0005-common.h-more-workarounds-for-klibc-compatibility.patch
index 6b09c14d6c..8309a72715 100644
--- a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0005-common.h-klibc-fixes-2.patch
+++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0005-common.h-more-workarounds-for-klibc-compatibility.patch
@@ -1,7 +1,7 @@
1From 8318852ef4f768bed31072aa7b57e11adc1f639c Mon Sep 17 00:00:00 2001 1From 5d4a66b502003ef385dab31a17012246407e7364 Mon Sep 17 00:00:00 2001
2From: Andrea Adami <andrea.adami@gmail.com> 2From: Andrea Adami <andrea.adami@gmail.com>
3Date: Sun, 29 Jun 2014 00:44:03 +0200 3Date: Sun, 29 Jun 2014 00:44:03 +0200
4Subject: [PATCH 5/6] common.h: more workarounds for klibc compatibility 4Subject: [PATCH 5/9] common.h: more workarounds for klibc compatibility
5 5
6Patch is addressing two issues: 6Patch is addressing two issues:
7* First, Klibc doesn't have rpmatch(). 7* First, Klibc doesn't have rpmatch().
@@ -15,18 +15,18 @@ Fixes:
15| .../git/./include/common.h:157: undefined reference to `getline' 15| .../git/./include/common.h:157: undefined reference to `getline'
16| .../git/./include/common.h:164: undefined reference to `rpmatch' 16| .../git/./include/common.h:164: undefined reference to `rpmatch'
17 17
18Upstream-Status: Pending 18Upstream-Status: Submitted
19 19
20Signed-off-by: Andrea Adami <andrea.adami@gmail.com> 20Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
21--- 21---
22 include/common.h | 10 ++++++---- 22 include/common.h | 8 +++++---
23 1 file changed, 6 insertions(+), 4 deletions(-) 23 1 file changed, 5 insertions(+), 3 deletions(-)
24 24
25Index: git/include/common.h 25diff --git a/include/common.h b/include/common.h
26=================================================================== 26index 5a20964..2f51e1c 100644
27--- git.orig/include/common.h 27--- a/include/common.h
28+++ git/include/common.h 28+++ b/include/common.h
29@@ -161,15 +161,17 @@ static inline int __rpmatch(const char * 29@@ -161,15 +161,17 @@ static inline int __rpmatch(const char *resp)
30 */ 30 */
31 static inline bool prompt(const char *msg, bool def) 31 static inline bool prompt(const char *msg, bool def)
32 { 32 {
@@ -47,3 +47,6 @@ Index: git/include/common.h
47 printf("failed to read prompt; assuming '%s'\n", 47 printf("failed to read prompt; assuming '%s'\n",
48 def ? "yes" : "no"); 48 def ? "yes" : "no");
49 break; 49 break;
50--
512.7.4
52
diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/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
index 043a89d67e..d046f95050 100644
--- a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/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
@@ -1,7 +1,7 @@
1From 72a04a9b9ed33c889d2e2b86f306c5be9f6cde35 Mon Sep 17 00:00:00 2001 1From 2af30e9b2988111e45ed6ea6af55e49ec7cb1cb1 Mon Sep 17 00:00:00 2001
2From: Andrea Adami <andrea.adami@gmail.com> 2From: Andrea Adami <andrea.adami@gmail.com>
3Date: Sun, 29 Jun 2014 00:44:57 +0200 3Date: Sun, 29 Jun 2014 00:44:57 +0200
4Subject: [PATCH 6/6] libiniparser: remove unused function needing float 4Subject: [PATCH 6/9] libiniparser: remove unused function needing float
5 5
6Fixes: 6Fixes:
7| LD ubi-utils/ubiformat 7| LD ubi-utils/ubiformat
@@ -13,7 +13,7 @@ Fixes:
13Grep doesn't reveal any occurrence of iniparser_getdouble(), using atof() so 13Grep doesn't reveal any occurrence of iniparser_getdouble(), using atof() so
14remove it: floating-point is not supported in klibc 14remove it: floating-point is not supported in klibc
15 15
16Upstream-Status: Pending 16Upstream-Status: Accepted
17 17
18Signed-off-by: Andrea Adami <andrea.adami@gmail.com> 18Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
19--- 19---
@@ -81,5 +81,5 @@ index 898f57f..ba70c08 100644
81 @param d Dictionary to search 81 @param d Dictionary to search
82 @param key Key string to look for 82 @param key Key string to look for
83-- 83--
841.9.1 842.7.4
85 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
new file mode 100644
index 0000000000..36b012f901
--- /dev/null
+++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0007-mtd-utils-common.c-convert-to-integer-arithmetic.patch
@@ -0,0 +1,64 @@
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
new file mode 100644
index 0000000000..5bd05742c8
--- /dev/null
+++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0008-ubi-utils-ubiformat.c-convert-to-integer-arithmetic.patch
@@ -0,0 +1,44 @@
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
new file mode 100644
index 0000000000..658246add6
--- /dev/null
+++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0009-Eliminate-warnings-about-implicit-non-const-casting-.patch
@@ -0,0 +1,48 @@
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
diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_1.5.2.bb b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_1.5.2.bb
index 518c02fc00..abb0d4b846 100644
--- a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_1.5.2.bb
+++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_1.5.2.bb
@@ -11,12 +11,15 @@ inherit klibc
11 11
12SRCREV = "aea36417067dade75192bafa03af70b6eb2677b1" 12SRCREV = "aea36417067dade75192bafa03af70b6eb2677b1"
13SRC_URI = "git://git.infradead.org/mtd-utils.git \ 13SRC_URI = "git://git.infradead.org/mtd-utils.git \
14 file://0001-Makefile-only-build-ubi-utils.patch \ 14 file://0001-Makefile-build-ubi-utils-only.patch \
15 file://0002-common.mk-for-klibc-CC-is-klcc.patch \ 15 file://0002-common.mk-for-klibc-CC-is-klcc.patch \
16 file://0003-libubi.c-add-klibc-specific-fixes.patch \ 16 file://0003-libubi.c-add-klibc-specific-fixes-for-ioctl.patch \
17 file://0004-common.h-klibc-fixes-1.patch \ 17 file://0004-Restore-compatibility-to-dietlibc-klibc-musl-libc-af.patch \
18 file://0005-common.h-klibc-fixes-2.patch \ 18 file://0005-common.h-more-workarounds-for-klibc-compatibility.patch \
19 file://0006-libiniparser-remove-unused-function-needing-float.patch \ 19 file://0006-libiniparser-remove-unused-function-needing-float.patch \
20 file://0007-mtd-utils-common.c-convert-to-integer-arithmetic.patch \
21 file://0008-ubi-utils-ubiformat.c-convert-to-integer-arithmetic.patch \
22 file://0009-Eliminate-warnings-about-implicit-non-const-casting-.patch \
20 " 23 "
21 24
22S = "${WORKDIR}/git/" 25S = "${WORKDIR}/git/"