* [meta-initramfs][PATCH] ubi-utils-klibc: update from v. 1.5.2 to 2.0.2 @ 2018-05-13 22:16 Andrea Adami 2018-05-17 14:15 ` akuster808 0 siblings, 1 reply; 6+ messages in thread From: Andrea Adami @ 2018-05-13 22:16 UTC (permalink / raw) To: openembedded-devel Update to new version and drop accepted patches. Signed-off-by: Andrea Adami <andrea.adami@gmail.com> --- .../0001-Makefile-build-ubi-utils-only.patch | 87 ------ .../0002-common.mk-for-klibc-CC-is-klcc.patch | 27 -- ...bubi.c-add-klibc-specific-fixes-for-ioctl.patch | 76 ----- ...patibility-to-dietlibc-klibc-musl-libc-af.patch | 88 ------ ...-more-workarounds-for-klibc-compatibility.patch | 52 ---- ...rser-remove-unused-function-needing-float.patch | 85 ------ ...ls-common.c-convert-to-integer-arithmetic.patch | 64 ---- ...ubiformat.c-convert-to-integer-arithmetic.patch | 44 --- ...arnings-about-implicit-non-const-casting-.patch | 48 --- ...mple-getline-implementation-to-libmissing.patch | 187 ++++++++++++ ...doing-preprocessor-magic-just-output-off_.patch | 326 +++++++++++++++++++++ .../0003-Makefile.am-only-build-ubi-utils.patch | 34 +++ ...s-common.h-no-features.h-for-klibc-builds.patch | 38 +++ ...ils-klibc_1.5.2.bb => ubi-utils-klibc_2.0.2.bb} | 26 +- 14 files changed, 598 insertions(+), 584 deletions(-) delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0001-Makefile-build-ubi-utils-only.patch delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0002-common.mk-for-klibc-CC-is-klcc.patch delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0003-libubi.c-add-klibc-specific-fixes-for-ioctl.patch delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0004-Restore-compatibility-to-dietlibc-klibc-musl-libc-af.patch delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0005-common.h-more-workarounds-for-klibc-compatibility.patch delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0006-libiniparser-remove-unused-function-needing-float.patch delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0007-mtd-utils-common.c-convert-to-integer-arithmetic.patch delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0008-ubi-utils-ubiformat.c-convert-to-integer-arithmetic.patch delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0009-Eliminate-warnings-about-implicit-non-const-casting-.patch create mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0001-Add-simple-getline-implementation-to-libmissing.patch create mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0002-Instead-of-doing-preprocessor-magic-just-output-off_.patch create mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0003-Makefile.am-only-build-ubi-utils.patch create mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0004-mtd-utils-common.h-no-features.h-for-klibc-builds.patch rename meta-initramfs/recipes-devtools/mtd/{ubi-utils-klibc_1.5.2.bb => ubi-utils-klibc_2.0.2.bb} (64%) 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 6ac2cca..0000000 --- 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 @@ -From 1c989e4c36d0bf76ab444f984bc73b98eeacd03f Mon Sep 17 00:00:00 2001 -From: Andrea Adami <andrea.adami@gmail.com> -Date: Sun, 29 Jun 2014 00:32:29 +0200 -Subject: [PATCH 1/9] Makefile: build ubi-utils only - -We build all the static ubi-utils but actually only ubiattach is needed in -a minimalistic initramfs for the mount of ubi volumes. - -More fixes are needed in order to build the full mtd-utils. -The first issue is: - -| mkfs.jffs2.c:64:20: fatal error: libgen.h: No such file or directory -| #include <libgen.h> - -Removing the include then the second error is: - -| mkfs.jffs2.c:1570:22: error: '_SC_PAGESIZE' undeclared -| (first use in this function) -| page_size = sysconf(_SC_PAGESIZE); - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> ---- - Makefile | 26 ++------------------------ - 1 file changed, 2 insertions(+), 24 deletions(-) - -diff --git a/Makefile b/Makefile -index 3ce8587..8b79f71 100644 ---- a/Makefile -+++ b/Makefile -@@ -16,28 +16,11 @@ endif - - TESTS = tests - --MTD_BINS = \ -- ftl_format flash_erase nanddump doc_loadbios \ -- ftl_check mkfs.jffs2 flash_lock flash_unlock \ -- flash_otp_info flash_otp_dump flash_otp_lock flash_otp_write \ -- mtd_debug flashcp nandwrite nandtest mtdpart \ -- jffs2dump \ -- nftldump nftl_format docfdisk \ -- rfddump rfdformat \ -- serve_image recv_image \ -- sumtool jffs2reader - UBI_BINS = \ - ubiupdatevol ubimkvol ubirmvol ubicrc32 ubinfo ubiattach \ - ubidetach ubinize ubiformat ubirename mtdinfo ubirsvol ubiblock - --BINS = $(MTD_BINS) --BINS += mkfs.ubifs/mkfs.ubifs --BINS += $(addprefix ubi-utils/,$(UBI_BINS)) --SCRIPTS = flash_eraseall -- --TARGETS = $(BINS) --TARGETS += lib/libmtd.a --TARGETS += ubi-utils/libubi.a -+BINS = $(addprefix ubi-utils/,$(UBI_BINS)) - - OBJDEPS = $(BUILDDIR)/include/version.h - -@@ -61,12 +44,9 @@ endif - rm -f $(BUILDDIR)/include/version.h - $(MAKE) -C $(TESTS) clean - --install:: $(addprefix $(BUILDDIR)/,${BINS}) ${SCRIPTS} -+install:: $(addprefix $(BUILDDIR)/,${BINS}) - mkdir -p ${DESTDIR}/${SBINDIR} - install -m 0755 $^ ${DESTDIR}/${SBINDIR}/ -- mkdir -p ${DESTDIR}/${MANDIR}/man1 -- install -m 0644 mkfs.jffs2.1 ${DESTDIR}/${MANDIR}/man1/ -- -gzip -9f ${DESTDIR}/${MANDIR}/man1/*.1 - - tests:: - $(MAKE) -C $(TESTS) -@@ -91,8 +71,6 @@ LDLIBS_mkfs.jffs2 = -lz $(LZOLDLIBS) - LDFLAGS_jffs2reader = $(ZLIBLDFLAGS) $(LZOLDFLAGS) - LDLIBS_jffs2reader = -lz $(LZOLDLIBS) - --$(foreach v,$(MTD_BINS),$(eval $(call mkdep,,$(v)))) -- - # - # Common libmtd - # --- -2.7.4 - 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 c23d11f..0000000 --- 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 @@ -From 89c76bbe82a2029a25b0654eb0a1d0b22d6e6877 Mon Sep 17 00:00:00 2001 -From: Andrea Adami <andrea.adami@gmail.com> -Date: Sun, 29 Jun 2014 00:37:28 +0200 -Subject: [PATCH 2/9] common.mk: for klibc $(CC) is klcc - -Do not hardcode: assign the value to the variable if it is not already defined. - -Upstream-Status: Submitted - -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> ---- - common.mk | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/common.mk b/common.mk -index ba87377..126d11a 100644 ---- a/common.mk -+++ b/common.mk -@@ -1,4 +1,4 @@ --CC := $(CROSS)gcc -+CC ?= $(CROSS)gcc - AR := $(CROSS)ar - RANLIB := $(CROSS)ranlib - --- -2.7.4 - 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 9ad4a5b..0000000 --- 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 @@ -From fecbb7056d621a30f7106e67f5fe209763571b70 Mon Sep 17 00:00:00 2001 -From: Andrea Adami <andrea.adami@gmail.com> -Date: Sun, 29 Jun 2014 00:40:15 +0200 -Subject: [PATCH 3/9] libubi.c: add klibc specific fixes for ioctl - -First issue is that ioctl() in klibc doesn't expect a constant as arg3. -Second issue is that arg3 in klibc ioctl() implementation is not optional. - -Fixes: - -| ubi-utils/libubi.c: In function 'do_attach': -| ubi-utils/libubi.c:698:8: warning: passing argument 3 of 'ioctl' discards -| 'const' qualifier from pointer target type -| ret = ioctl(fd, UBI_IOCATT, r); -| ^ -| In file included from ubi-utils/libubi.c:32:0: -| .../lib/klibc/include/sys/ioctl.h:15:14: note: expected 'void *' but argument -| is of type 'const struct ubi_attach_req *' -| __extern int ioctl(int, int, void *); -| ^ - -| ubi-utils/libubi.c: In function 'ubi_vol_block_create': -| ubi-utils/libubi.c:1118:9: error: too few arguments to function 'ioctl' -| return ioctl(fd, UBI_IOCVOLCRBLK); -| ^ -| In file included from ubi-utils/libubi.c:32:0: -| .../lib/klibc/include/sys/ioctl.h:15:14: note: declared here -| __extern int ioctl(int, int, void *); -| ^ -| ubi-utils/libubi.c: In function 'ubi_vol_block_remove': -| ubi-utils/libubi.c:1123:9: error: too few arguments to function 'ioctl' -| return ioctl(fd, UBI_IOCVOLRMBLK); -| ^ -| In file included from ubi-utils/libubi.c:32:0: -| .../usr/lib/klibc/include/sys/ioctl.h:15:14: note: declared here -| __extern int ioctl(int, int, void *); -| ^ - -Upstream-Status: Accepted - -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> ---- - ubi-utils/libubi.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/ubi-utils/libubi.c b/ubi-utils/libubi.c -index 97c0434..2b49833 100644 ---- a/ubi-utils/libubi.c -+++ b/ubi-utils/libubi.c -@@ -687,7 +687,7 @@ void libubi_close(libubi_t desc) - * success and %-1 in case of failure. @r->ubi_num contains newly created UBI - * device number. - */ --static int do_attach(const char *node, const struct ubi_attach_req *r) -+static int do_attach(const char *node, struct ubi_attach_req *r) - { - int fd, ret; - -@@ -1115,12 +1115,12 @@ int ubi_rsvol(libubi_t desc, const char *node, int vol_id, long long bytes) - - int ubi_vol_block_create(int fd) - { -- return ioctl(fd, UBI_IOCVOLCRBLK); -+ return ioctl(fd, UBI_IOCVOLCRBLK, NULL); - } - - int ubi_vol_block_remove(int fd) - { -- return ioctl(fd, UBI_IOCVOLRMBLK); -+ return ioctl(fd, UBI_IOCVOLRMBLK, NULL); - } - - int ubi_update_start(libubi_t desc, int fd, long long bytes) --- -2.7.4 - 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 2f31fb4..0000000 --- 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 @@ -From b668cb75cb7e72ff92055209130d4cd4b3cacbdb Mon Sep 17 00:00:00 2001 -From: Thorsten Glaser <tg@mirbsd.org> -Date: Fri, 20 Jun 2014 10:56:27 +0000 -Subject: [PATCH 4/9] Restore compatibility to dietlibc, klibc, musl libc after - commit 4f1b108 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Each C library has their own way to define off_t, and the <features.h> -header is nonstandard and specific to the GNU libc and those that clone -it (uClibc). Fefe’s dietlibc uses different flags, and klibc always uses -a 64-bit off_t (like the BSDs); musl libc cannot be recognised using cpp -instructions, so we assume 64 bit there (and on unknown C libraries) and -leave it to the user to submit a follow-up fix if we guess wrong. I also -added a static assertion to verify the 64 bit guess is correct. - -It would be really better using a configure script for this instead. - -Fixes: -| CC lib/libmtd.o -| In file included from ubi-utils/ubiutils-common.c:35:0: -| ./include/common.h:29:22: fatal error: features.h: No such file or directory -| #include <features.h> -| ^ -| compilation terminated. - -Upstream-Status: Submitted - -Signed-off-by: Thorsten Glaser <tg@mirbsd.org> -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> ---- - include/common.h | 24 ++++++++++++++++++++++++ - 1 file changed, 24 insertions(+) - -diff --git a/include/common.h b/include/common.h -index fb0ca83..5a20964 100644 ---- a/include/common.h -+++ b/include/common.h -@@ -26,7 +26,9 @@ - #include <string.h> - #include <fcntl.h> - #include <errno.h> -+#if defined(__GLIBC__) || defined(__UCLIBC__) - #include <features.h> -+#endif - #include <inttypes.h> - #include "version.h" - -@@ -67,6 +69,21 @@ extern "C" { - #endif - - /* define a print format specifier for off_t */ -+#if defined(__KLIBC__) -+/* always 64 bit on klibc */ -+#define PRIxoff_t PRIx64 -+#define PRIdoff_t PRId64 -+#elif defined(__dietlibc__) -+/* depends on compiler flags on dietlibc */ -+#if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64) -+#define PRIxoff_t PRIx64 -+#define PRIdoff_t PRId64 -+#else -+#define PRIxoff_t "l"PRIx32 -+#define PRIdoff_t "l"PRId32 -+#endif -+#elif defined(__GLIBC__) || defined(__UCLIBC__) -+/* depends on compiler flags on glibc and uClibc */ - #ifdef __USE_FILE_OFFSET64 - #define PRIxoff_t PRIx64 - #define PRIdoff_t PRId64 -@@ -74,6 +91,13 @@ extern "C" { - #define PRIxoff_t "l"PRIx32 - #define PRIdoff_t "l"PRId32 - #endif -+#else -+/* unknown libc or musl */ -+#define PRIxoff_t PRIx64 -+#define PRIdoff_t PRId64 -+/* verify our guess of 64 bit is correct */ -+static char __PRIxoff_t_static_assert[sizeof(off_t) == 8 ? 1 : -1]; -+#endif - - /* Verbose messages */ - #define bareverbose(verbose, fmt, ...) do { \ --- -2.7.4 - 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 8309a72..0000000 --- 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 @@ -From 5d4a66b502003ef385dab31a17012246407e7364 Mon Sep 17 00:00:00 2001 -From: Andrea Adami <andrea.adami@gmail.com> -Date: Sun, 29 Jun 2014 00:44:03 +0200 -Subject: [PATCH 5/9] common.h: more workarounds for klibc compatibility - -Patch is addressing two issues: -* First, Klibc doesn't have rpmatch(). -* Second, Klibc lacks getline() - -Fixes: -| LD ubi-utils/ubiformat -| .../git/ubi-utils/ubiformat.o: In function `prompt': -| .../git/./include/common.h:157: undefined reference to `getline' -| .../git/./include/common.h:164: undefined reference to `rpmatch' -| .../git/./include/common.h:157: undefined reference to `getline' -| .../git/./include/common.h:164: undefined reference to `rpmatch' - -Upstream-Status: Submitted - -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> ---- - include/common.h | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - -diff --git a/include/common.h b/include/common.h -index 5a20964..2f51e1c 100644 ---- a/include/common.h -+++ b/include/common.h -@@ -161,15 +161,17 @@ static inline int __rpmatch(const char *resp) - */ - static inline bool prompt(const char *msg, bool def) - { -- char *line = NULL; -- size_t len; -+ char *line; - bool ret = def; - -+ const int sizeof_line = 2; -+ line = malloc(sizeof_line); -+ - do { - normsg_cont("%s (%c/%c) ", msg, def ? 'Y' : 'y', def ? 'n' : 'N'); - fflush(stdout); - -- while (getline(&line, &len, stdin) == -1) { -+ while (fgets(line, sizeof_line, stdin) == NULL) { - printf("failed to read prompt; assuming '%s'\n", - def ? "yes" : "no"); - break; --- -2.7.4 - 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 d046f95..0000000 --- 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 @@ -From 2af30e9b2988111e45ed6ea6af55e49ec7cb1cb1 Mon Sep 17 00:00:00 2001 -From: Andrea Adami <andrea.adami@gmail.com> -Date: Sun, 29 Jun 2014 00:44:57 +0200 -Subject: [PATCH 6/9] libiniparser: remove unused function needing float - -Fixes: -| LD ubi-utils/ubiformat -| .../git/ubi-utils/libiniparser.a(libiniparser.o): In function -| ` LD ubi-utils/ubirename -| iniparser_getdouble': -| .../git/ubi-utils/libiniparser.c:336: undefined reference to `atof' - -Grep doesn't reveal any occurrence of iniparser_getdouble(), using atof() so -remove it: floating-point is not supported in klibc - -Upstream-Status: Accepted - -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> ---- - ubi-utils/include/libiniparser.h | 15 --------------- - ubi-utils/libiniparser.c | 22 ---------------------- - 2 files changed, 37 deletions(-) - -diff --git a/ubi-utils/include/libiniparser.h b/ubi-utils/include/libiniparser.h -index be3c667..abd77aa 100644 ---- a/ubi-utils/include/libiniparser.h -+++ b/ubi-utils/include/libiniparser.h -@@ -158,21 +158,6 @@ int iniparser_getint(dictionary * d, const char * key, int notfound); - - /*-------------------------------------------------------------------------*/ - /** -- @brief Get the string associated to a key, convert to a double -- @param d Dictionary to search -- @param key Key string to look for -- @param notfound Value to return in case of error -- @return double -- -- This function queries a dictionary for a key. A key as read from an -- ini file is given as "section:key". If the key cannot be found, -- the notfound value is returned. -- */ --/*--------------------------------------------------------------------------*/ --double iniparser_getdouble(dictionary * d, char * key, double notfound); -- --/*-------------------------------------------------------------------------*/ --/** - @brief Get the string associated to a key, convert to a boolean - @param d Dictionary to search - @param key Key string to look for -diff --git a/ubi-utils/libiniparser.c b/ubi-utils/libiniparser.c -index 898f57f..ba70c08 100644 ---- a/ubi-utils/libiniparser.c -+++ b/ubi-utils/libiniparser.c -@@ -316,28 +316,6 @@ int iniparser_getint(dictionary * d, const char * key, int notfound) - - /*-------------------------------------------------------------------------*/ - /** -- @brief Get the string associated to a key, convert to a double -- @param d Dictionary to search -- @param key Key string to look for -- @param notfound Value to return in case of error -- @return double -- -- This function queries a dictionary for a key. A key as read from an -- ini file is given as "section:key". If the key cannot be found, -- the notfound value is returned. -- */ --/*--------------------------------------------------------------------------*/ --double iniparser_getdouble(dictionary * d, char * key, double notfound) --{ -- char * str ; -- -- str = iniparser_getstring(d, key, INI_INVALID_KEY); -- if (str==INI_INVALID_KEY) return notfound ; -- return atof(str); --} -- --/*-------------------------------------------------------------------------*/ --/** - @brief Get the string associated to a key, convert to a boolean - @param d Dictionary to search - @param key Key string to look for --- -2.7.4 - 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 36b012f..0000000 --- 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 @@ -From 41e7c76b0853bf5241b38b8167dfd57c27fef1eb Mon Sep 17 00:00:00 2001 -From: Andrea Adami <andrea.adami@gmail.com> -Date: Sun, 28 Jan 2018 21:47:59 +0100 -Subject: [PATCH 7/9] mtd-utils: common.c: convert to integer arithmetic - -We use floating point just to print out KiB, MiB, GiB. -Avoid that to be klibc friendly. - -Fixes compilation for aarch64 against klibc: - -error: '-mgeneral-regs-only' is incompatible with floating-point argument -| printf("%s%.1f GiB", p, (double)bytes / (1024 * 1024 * 1024)); -etc. - -Note: -* In the KiB case, we could apparently multiply by 100 before dividing - without risking overflow. This code simply avoids multiplications. - -Upstream-Status: Submitted - -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> ---- - ubi-utils/ubiutils-common.c | 18 ++++++++++++------ - 1 file changed, 12 insertions(+), 6 deletions(-) - -diff --git a/ubi-utils/ubiutils-common.c b/ubi-utils/ubiutils-common.c -index 6609a6b..0ded2a4 100644 ---- a/ubi-utils/ubiutils-common.c -+++ b/ubi-utils/ubiutils-common.c -@@ -107,6 +107,9 @@ long long ubiutils_get_bytes(const char *str) - void ubiutils_print_bytes(long long bytes, int bracket) - { - const char *p; -+ int GiB = 1024 * 1024 * 1024; -+ int MiB = 1024 * 1024; -+ int KiB = 1024; - - if (bracket) - p = " ("; -@@ -115,12 +118,15 @@ void ubiutils_print_bytes(long long bytes, int bracket) - - printf("%lld bytes", bytes); - -- if (bytes > 1024 * 1024 * 1024) -- printf("%s%.1f GiB", p, (double)bytes / (1024 * 1024 * 1024)); -- else if (bytes > 1024 * 1024) -- printf("%s%.1f MiB", p, (double)bytes / (1024 * 1024)); -- else if (bytes > 1024 && bytes != 0) -- printf("%s%.1f KiB", p, (double)bytes / 1024); -+ if (bytes > GiB) -+ printf("%s%lld.%lld GiB", p, -+ bytes / GiB, bytes % GiB / (GiB / 10)); -+ else if (bytes > MiB) -+ printf("%s%lld.%lld MiB", p, -+ bytes / MiB, bytes % MiB / (MiB / 10)); -+ else if (bytes > KiB && bytes != 0) -+ printf("%s%lld.%lld KiB", p, -+ bytes / KiB, bytes % KiB / (KiB / 10)); - else - return; - --- -2.7.4 - 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 5bd0574..0000000 --- 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 @@ -From e6f1a85c0a3df24fe3ca9a520dc697105e75a80c Mon Sep 17 00:00:00 2001 -From: Andrea Adami <andrea.adami@gmail.com> -Date: Sat, 27 Jan 2018 09:39:26 +0100 -Subject: [PATCH 8/9] ubi-utils: ubiformat.c: convert to integer arithmetic - -Do not cast percent to double, it is just used as upper limit. -Avoid floating point to fix compilation for aarch64 against klibc: - -error: '-mgeneral-regs-only' is incompatible with floating-point code -| int percent = ((double)si->ok_cnt)/si->good_cnt * 100; -| ^~~~~~~ - -Notes: -* The checks in the code above this line ensure that si->good_cnt is not 0. - -* The code assumes si->good_cnt * 100 will not overflow, then we can use - (si->ok_cnt * 100) safely because the former is bigger. - -* The truncated result does not affect the logic: - i.e. a value of 49.9 is truncated to 49 and is still <50. - -Upstream-Status: Submitted - -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> ---- - ubi-utils/ubiformat.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/ubi-utils/ubiformat.c b/ubi-utils/ubiformat.c -index 21409ca..d93164a 100644 ---- a/ubi-utils/ubiformat.c -+++ b/ubi-utils/ubiformat.c -@@ -843,7 +843,7 @@ int main(int argc, char * const argv[]) - } - - if (!args.override_ec && si->empty_cnt < si->good_cnt) { -- int percent = ((double)si->ok_cnt)/si->good_cnt * 100; -+ int percent = (si->ok_cnt * 100) / si->good_cnt; - - /* - * Make sure the majority of eraseblocks have valid --- -2.7.4 - 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 658246a..0000000 --- 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 @@ -From 2229f3b9fd4bad47794c28e558ad273173cea73d Mon Sep 17 00:00:00 2001 -From: Andrea Adami <andrea.adami@gmail.com> -Date: Sat, 27 Jan 2018 09:52:46 +0100 -Subject: [PATCH 9/9] Eliminate warnings about implicit non-const casting in - libmtd - -The mtd_get_dev_info1 function reads (among other things) name and type -string into coresponding struct mtd_dev_info fields. - -The struct mtd_dev_info has the string fields marked const, requiring -them to be cast to non-const version during initialization. - -This cast was previously omitted from the dev_read_data calls, -triggering warnings during compilation. - -Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at> -Signed-off-by: Richard Weinberger <richard@nod.at> - -Upstream-Status: Backport - -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> ---- - lib/libmtd.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/lib/libmtd.c b/lib/libmtd.c -index 60b4782..5f0bcbc 100644 ---- a/lib/libmtd.c -+++ b/lib/libmtd.c -@@ -746,13 +746,13 @@ int mtd_get_dev_info1(libmtd_t desc, int mtd_num, struct mtd_dev_info *mtd) - if (dev_get_major(lib, mtd_num, &mtd->major, &mtd->minor)) - return -1; - -- ret = dev_read_data(lib->mtd_name, mtd_num, &mtd->name, -+ ret = dev_read_data(lib->mtd_name, mtd_num, (char *)&mtd->name, - MTD_NAME_MAX + 1); - if (ret < 0) - return -1; - ((char *)mtd->name)[ret - 1] = '\0'; - -- ret = dev_read_data(lib->mtd_type, mtd_num, &mtd->type_str, -+ ret = dev_read_data(lib->mtd_type, mtd_num, (char *)&mtd->type_str, - MTD_TYPE_MAX + 1); - if (ret < 0) - return -1; --- -2.7.4 - diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0001-Add-simple-getline-implementation-to-libmissing.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0001-Add-simple-getline-implementation-to-libmissing.patch new file mode 100644 index 0000000..d4c6d87 --- /dev/null +++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0001-Add-simple-getline-implementation-to-libmissing.patch @@ -0,0 +1,187 @@ +From 10c289454dad34632d767694aecb508dae5073bf Mon Sep 17 00:00:00 2001 +From: David Oberhollenzer <david.oberhollenzer@sigma-star.at> +Date: Thu, 1 Feb 2018 12:16:18 +0100 +Subject: [PATCH 1/4] Add simple getline() implementation to libmissing + +Some C libraries, like klibc don't implement getline(). This patch +adds a simple stub implementation to libmissing that does an fgets +into a stack allocated buffer and returns the result. + +Upstream-Status: Backport + +Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at> +--- + configure.ac | 1 + + include/common.h | 1 + + include/libmissing.h | 7 +++++++ + jffsX-utils/Makemodule.am | 2 +- + lib/Makemodule.am | 3 ++- + lib/getline.c | 36 ++++++++++++++++++++++++++++++++++++ + misc-utils/Makemodule.am | 2 ++ + ubi-utils/Makemodule.am | 2 +- + ubifs-utils/Makemodule.am | 1 + + 9 files changed, 52 insertions(+), 3 deletions(-) + create mode 100644 lib/getline.c + +diff --git a/configure.ac b/configure.ac +index 83d754f..5af0115 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -191,6 +191,7 @@ if test "x$need_cmocka" = "xyes"; then + fi + + AC_CHECK_HEADERS([execinfo.h]) ++AC_CHECK_FUNCS([getline]) + + ##### produce summary on dependencies ##### + +diff --git a/include/common.h b/include/common.h +index 2ce5d22..f8f72ea 100644 +--- a/include/common.h ++++ b/include/common.h +@@ -32,6 +32,7 @@ + #include <sys/sysmacros.h> + + #include "config.h" ++#include "libmissing.h" + + #ifndef PROGRAM_NAME + # error "You must define PROGRAM_NAME before including this header" +diff --git a/include/libmissing.h b/include/libmissing.h +index 0196033..09dbce1 100644 +--- a/include/libmissing.h ++++ b/include/libmissing.h +@@ -7,11 +7,18 @@ + #include <execinfo.h> + #endif + ++#include <sys/types.h> ++#include <stdio.h> ++ + #ifndef HAVE_EXECINFO_H + int backtrace(void **buffer, int size); + char **backtrace_symbols(void *const *buffer, int size); + void backtrace_symbols_fd(void *const *buffer, int size, int fd); + #endif + ++#ifndef HAVE_GETLINE ++ssize_t getline(char **lineptr, size_t *n, FILE *stream); ++#endif ++ + #endif /* LIBMISSING_H */ + +diff --git a/jffsX-utils/Makemodule.am b/jffsX-utils/Makemodule.am +index fb181de..9d7a5d9 100644 +--- a/jffsX-utils/Makemodule.am ++++ b/jffsX-utils/Makemodule.am +@@ -17,7 +17,7 @@ jffs2dump_SOURCES = jffsX-utils/jffs2dump.c + jffs2dump_LDADD = libmtd.a $(ZLIB_LIBS) $(LZO_LIBS) + + sumtool_SOURCES = jffsX-utils/sumtool.c +-sumtool_LDADD = libmtd.a ++sumtool_LDADD = libmtd.a libmissing.a + + JFFSX_BINS = \ + mkfs.jffs2 jffs2dump jffs2reader sumtool +diff --git a/lib/Makemodule.am b/lib/Makemodule.am +index 5bee5b6..645632a 100644 +--- a/lib/Makemodule.am ++++ b/lib/Makemodule.am +@@ -7,7 +7,8 @@ libmtd_a_SOURCES = \ + lib/libmtd_int.h + + libmissing_a_SOURCES = \ +- lib/execinfo.c ++ lib/execinfo.c \ ++ lib/getline.c + + libubi_a_SOURCES = \ + lib/libubi.c \ +diff --git a/lib/getline.c b/lib/getline.c +new file mode 100644 +index 0000000..c575bf7 +--- /dev/null ++++ b/lib/getline.c +@@ -0,0 +1,36 @@ ++#include <stdlib.h> ++#include <string.h> ++ ++#include "libmissing.h" ++ ++#ifndef HAVE_GETLINE ++ssize_t getline(char **lineptr, size_t *n, FILE *stream) ++{ ++ char buffer[256], *new; ++ size_t count; ++ ++ if (!(*lineptr)) ++ *n = 0; ++ ++ if (!fgets(buffer, sizeof(buffer), stream)) { ++ if (!feof(stream)) ++ return -1; ++ ++ buffer[0] = '\0'; ++ } ++ ++ count = strlen(buffer) + 1; ++ ++ if (*n < count) { ++ new = realloc(*lineptr, count); ++ if (!new) ++ return -1; ++ *lineptr = new; ++ *n = count; ++ } ++ ++ memcpy(*lineptr, buffer, count); ++ return count; ++} ++#endif ++ +diff --git a/misc-utils/Makemodule.am b/misc-utils/Makemodule.am +index ce1c385..bfc5342 100644 +--- a/misc-utils/Makemodule.am ++++ b/misc-utils/Makemodule.am +@@ -1,4 +1,5 @@ + ftl_format_SOURCES = misc-utils/ftl_format.c ++ftl_format_LDADD = libmissing.a + + doc_loadbios_SOURCES = misc-utils/doc_loadbios.c + +@@ -25,6 +26,7 @@ flash_otp_info_SOURCES = misc-utils/flash_otp_info.c + flash_otp_dump_SOURCES = misc-utils/flash_otp_dump.c + + flash_otp_lock_SOURCES = misc-utils/flash_otp_lock.c ++flash_otp_lock_LDADD = libmissing.a + + flash_otp_write_SOURCES = misc-utils/flash_otp_write.c + +diff --git a/ubi-utils/Makemodule.am b/ubi-utils/Makemodule.am +index 215eac2..7b447c7 100644 +--- a/ubi-utils/Makemodule.am ++++ b/ubi-utils/Makemodule.am +@@ -23,7 +23,7 @@ ubinize_SOURCES = ubi-utils/ubinize.c + ubinize_LDADD = libubi.a libubigen.a libmtd.a libiniparser.a + + ubiformat_SOURCES = ubi-utils/ubiformat.c +-ubiformat_LDADD = libubi.a libubigen.a libmtd.a libscan.a ++ubiformat_LDADD = libubi.a libubigen.a libmtd.a libscan.a libmissing.a + + ubirename_SOURCES = ubi-utils/ubirename.c + ubirename_LDADD = libmtd.a libubi.a +diff --git a/ubifs-utils/Makemodule.am b/ubifs-utils/Makemodule.am +index 5862afb..787beb9 100644 +--- a/ubifs-utils/Makemodule.am ++++ b/ubifs-utils/Makemodule.am +@@ -17,6 +17,7 @@ mkfs_ubifs_SOURCES = \ + ubifs-utils/mkfs.ubifs/hashtable/hashtable_itr.c \ + ubifs-utils/mkfs.ubifs/devtable.c + mkfs_ubifs_LDADD = libmtd.a libubi.a $(ZLIB_LIBS) $(LZO_LIBS) $(UUID_LIBS) -lm ++mkfs_ubifs_LDADD += libmissing.a + mkfs_ubifs_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_CFLAGS) $(LZO_CFLAGS) $(UUID_CFLAGS) \ + -I$(top_srcdir)/ubi-utils/include -I$(top_srcdir)/ubifs-utils/mkfs.ubifs/ + +-- +2.7.4 + diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0002-Instead-of-doing-preprocessor-magic-just-output-off_.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0002-Instead-of-doing-preprocessor-magic-just-output-off_.patch new file mode 100644 index 0000000..bb675a7 --- /dev/null +++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0002-Instead-of-doing-preprocessor-magic-just-output-off_.patch @@ -0,0 +1,326 @@ +From 01c98d5d5d044d9a125abcdbb2f3d771966365b0 Mon Sep 17 00:00:00 2001 +From: mirabilos <m@mirbsd.org> +Date: Thu, 1 Feb 2018 15:34:07 +0100 +Subject: [PATCH 2/4] Instead of doing preprocessor magic, just output off_t as + long long + +Fix warnings abot PRIdoff_t in libmtd.c, in mtd_read (and mtd_write): + +In file included from ../git/lib/libmtd.c:40:0: +../git/lib/libmtd.c: In function 'mtd_read': +../git/include/common.h:110:18: warning: format '%ld' expects argument of + type 'long int', but argument 5 has type 'off_t {aka long long int}' + [-Wformat=] + +../git/include/common.h:120:2: note: in expansion of macro 'errmsg' + errmsg(fmt, ##__VA_ARGS__); \ + ^~~~~~ +../git/lib/libmtd.c:1082:10: note: in expansion of macro 'sys_errmsg' + return sys_errmsg("cannot seek mtd%d to offset %"PRIdoff_t, + ^~~~~~~~~~ + +/usr/lib/klibc/include/inttypes.h:28:17: note: format string is defined here + #define PRId32 "d" + +Upstream-Status: Submitted + +Signed-off-by: Thorsten Glaser <tg@mirbsd.org> +--- + include/common.h | 18 ------------------ + jffsX-utils/mkfs.jffs2.c | 20 ++++++++++---------- + lib/libmtd.c | 8 ++++---- + misc-utils/flash_erase.c | 6 +++--- + misc-utils/flash_otp_write.c | 2 +- + misc-utils/ftl_check.c | 2 +- + misc-utils/mtd_debug.c | 4 ++-- + misc-utils/serve_image.c | 4 ++-- + tests/fs-tests/integrity/integck.c | 4 ++-- + tests/mtd-tests/nandpagetest.c | 4 ++-- + tests/ubi-tests/integ.c | 6 +++--- + ubifs-utils/mkfs.ubifs/mkfs.ubifs.c | 6 +++--- + 12 files changed, 33 insertions(+), 51 deletions(-) + +diff --git a/include/common.h b/include/common.h +index f8f72ea..642c212 100644 +--- a/include/common.h ++++ b/include/common.h +@@ -70,24 +70,6 @@ extern "C" { + #define O_CLOEXEC 0 + #endif + +-/* define a print format specifier for off_t */ +-#if (SIZEOF_OFF_T >= 8) +-#define PRIxoff_t PRIx64 +-#define PRIdoff_t PRId64 +-#else +-#define PRIxoff_t "l"PRIx32 +-#define PRIdoff_t "l"PRId32 +-#endif +- +-/* define a print format specifier for loff_t */ +-#if (SIZEOF_LOFF_T >= 8) +-#define PRIxloff_t PRIx64 +-#define PRIdloff_t PRId64 +-#else +-#define PRIxloff_t "l"PRIx32 +-#define PRIdloff_t "l"PRId32 +-#endif +- + /* Verbose messages */ + #define bareverbose(verbose, fmt, ...) do { \ + if (verbose) \ +diff --git a/jffsX-utils/mkfs.jffs2.c b/jffsX-utils/mkfs.jffs2.c +index 9aa6c39..0661786 100644 +--- a/jffsX-utils/mkfs.jffs2.c ++++ b/jffsX-utils/mkfs.jffs2.c +@@ -1237,8 +1237,8 @@ static void recursive_populate_directory(struct filesystem_entry *dir) + } else switch (e->sb.st_mode & S_IFMT) { + case S_IFDIR: + if (verbose) { +- printf("\td %04o %9" PRIdoff_t " %5d:%-3d %s\n", +- e->sb.st_mode & ~S_IFMT, e->sb.st_size, ++ printf("\td %04o %9lld %5d:%-3d %s\n", ++ e->sb.st_mode & ~S_IFMT, (long long)e->sb.st_size, + (int) (e->sb.st_uid), (int) (e->sb.st_gid), + e->name); + } +@@ -1247,8 +1247,8 @@ static void recursive_populate_directory(struct filesystem_entry *dir) + break; + case S_IFSOCK: + if (verbose) { +- printf("\ts %04o %9" PRIdoff_t " %5d:%-3d %s\n", +- e->sb.st_mode & ~S_IFMT, e->sb.st_size, ++ printf("\ts %04o %9lld %5d:%-3d %s\n", ++ e->sb.st_mode & ~S_IFMT, (long long)e->sb.st_size, + (int) e->sb.st_uid, (int) e->sb.st_gid, e->name); + } + write_pipe(e); +@@ -1256,8 +1256,8 @@ static void recursive_populate_directory(struct filesystem_entry *dir) + break; + case S_IFIFO: + if (verbose) { +- printf("\tp %04o %9" PRIdoff_t " %5d:%-3d %s\n", +- e->sb.st_mode & ~S_IFMT, e->sb.st_size, ++ printf("\tp %04o %9lld %5d:%-3d %s\n", ++ e->sb.st_mode & ~S_IFMT, (long long)e->sb.st_size, + (int) e->sb.st_uid, (int) e->sb.st_gid, e->name); + } + write_pipe(e); +@@ -1285,8 +1285,8 @@ static void recursive_populate_directory(struct filesystem_entry *dir) + break; + case S_IFLNK: + if (verbose) { +- printf("\tl %04o %9" PRIdoff_t " %5d:%-3d %s -> %s\n", +- e->sb.st_mode & ~S_IFMT, e->sb.st_size, ++ printf("\tl %04o %9lld %5d:%-3d %s -> %s\n", ++ e->sb.st_mode & ~S_IFMT, (long long)e->sb.st_size, + (int) e->sb.st_uid, (int) e->sb.st_gid, e->name, + e->link); + } +@@ -1297,8 +1297,8 @@ static void recursive_populate_directory(struct filesystem_entry *dir) + wrote = write_regular_file(e); + write_xattr_entry(e); + if (verbose) { +- printf("\tf %04o %9" PRIdoff_t " (%9u) %5d:%-3d %s\n", +- e->sb.st_mode & ~S_IFMT, e->sb.st_size, wrote, ++ printf("\tf %04o %9lld (%9u) %5d:%-3d %s\n", ++ e->sb.st_mode & ~S_IFMT, (long long)e->sb.st_size, wrote, + (int) e->sb.st_uid, (int) e->sb.st_gid, e->name); + } + break; +diff --git a/lib/libmtd.c b/lib/libmtd.c +index 86c89ae..f375381 100644 +--- a/lib/libmtd.c ++++ b/lib/libmtd.c +@@ -1079,8 +1079,8 @@ int mtd_read(const struct mtd_dev_info *mtd, int fd, int eb, int offs, + /* Seek to the beginning of the eraseblock */ + seek = (off_t)eb * mtd->eb_size + offs; + if (lseek(fd, seek, SEEK_SET) != seek) +- return sys_errmsg("cannot seek mtd%d to offset %"PRIdoff_t, +- mtd->mtd_num, seek); ++ return sys_errmsg("cannot seek mtd%d to offset %lld", ++ mtd->mtd_num, (long long)seek); + + while (rd < len) { + ret = read(fd, buf + rd, len - rd); +@@ -1188,8 +1188,8 @@ int mtd_write(libmtd_t desc, const struct mtd_dev_info *mtd, int fd, int eb, + if (data) { + /* Seek to the beginning of the eraseblock */ + if (lseek(fd, seek, SEEK_SET) != seek) +- return sys_errmsg("cannot seek mtd%d to offset %"PRIdoff_t, +- mtd->mtd_num, seek); ++ return sys_errmsg("cannot seek mtd%d to offset %lld", ++ mtd->mtd_num, (long long)seek); + ret = write(fd, data, len); + if (ret != len) + return sys_errmsg("cannot write %d bytes to mtd%d " +diff --git a/misc-utils/flash_erase.c b/misc-utils/flash_erase.c +index 0c9449f..ec4b2e1 100644 +--- a/misc-utils/flash_erase.c ++++ b/misc-utils/flash_erase.c +@@ -53,8 +53,8 @@ int target_endian = __BYTE_ORDER; + static void show_progress(struct mtd_dev_info *mtd, off_t start, int eb, + int eb_start, int eb_cnt) + { +- bareverbose(!quiet, "\rErasing %d Kibyte @ %"PRIxoff_t" -- %2i %% complete ", +- mtd->eb_size / 1024, start, ((eb - eb_start) * 100) / eb_cnt); ++ bareverbose(!quiet, "\rErasing %d Kibyte @ %llx -- %2i %% complete ", ++ mtd->eb_size / 1024, (unsigned long long)start, ((eb - eb_start) * 100) / eb_cnt); + fflush(stdout); + } + +@@ -210,7 +210,7 @@ int main(int argc, char *argv[]) + if (!noskipbad) { + int ret = mtd_is_bad(&mtd, fd, eb); + if (ret > 0) { +- verbose(!quiet, "Skipping bad block at %08"PRIxoff_t, offset); ++ verbose(!quiet, "Skipping bad block at %08llx", (unsigned long long)offset); + continue; + } else if (ret < 0) { + if (errno == EOPNOTSUPP) { +diff --git a/misc-utils/flash_otp_write.c b/misc-utils/flash_otp_write.c +index b02d0b0..04c96c6 100644 +--- a/misc-utils/flash_otp_write.c ++++ b/misc-utils/flash_otp_write.c +@@ -76,7 +76,7 @@ int main(int argc,char *argv[]) + return errno; + } + +- printf("Writing OTP user data on %s at offset 0x%"PRIxoff_t"\n", argv[2], offset); ++ printf("Writing OTP user data on %s at offset 0x%llx\n", argv[2], (unsigned long long)offset); + + if (mtd_type_is_nand_user(&mtdInfo)) + len = mtdInfo.writesize; +diff --git a/misc-utils/ftl_check.c b/misc-utils/ftl_check.c +index a853cf4..e854922 100644 +--- a/misc-utils/ftl_check.c ++++ b/misc-utils/ftl_check.c +@@ -131,7 +131,7 @@ static void check_partition(int fd) + perror("read failed"); + break; + } +- printf("\nErase unit %"PRIdoff_t":\n", i); ++ printf("\nErase unit %lld:\n", (long long)i); + if ((hdr2.FormattedSize != hdr.FormattedSize) || + (hdr2.NumEraseUnits != hdr.NumEraseUnits) || + (hdr2.SerialNumber != hdr.SerialNumber)) +diff --git a/misc-utils/mtd_debug.c b/misc-utils/mtd_debug.c +index ac37e23..d65ad36 100644 +--- a/misc-utils/mtd_debug.c ++++ b/misc-utils/mtd_debug.c +@@ -160,7 +160,7 @@ retry: + if (buf != NULL) + free(buf); + close(outfd); +- printf("Copied %zu bytes from address 0x%.8"PRIxoff_t" in flash to %s\n", len, offset, filename); ++ printf("Copied %zu bytes from address 0x%.8llx in flash to %s\n", len, (unsigned long long)offset, filename); + return 0; + + err2: +@@ -225,7 +225,7 @@ retry: + if (buf != NULL) + free(buf); + fclose(fp); +- printf("Copied %d bytes from %s to address 0x%.8"PRIxoff_t" in flash\n", len, filename, offset); ++ printf("Copied %d bytes from %s to address 0x%.8llx in flash\n", len, filename, (unsigned long long)offset); + return 0; + } + +diff --git a/misc-utils/serve_image.c b/misc-utils/serve_image.c +index f2475d6..6c8c8fb 100644 +--- a/misc-utils/serve_image.c ++++ b/misc-utils/serve_image.c +@@ -129,8 +129,8 @@ int main(int argc, char **argv) + } + + if (st.st_size % erasesize) { +- fprintf(stderr, "Image size %" PRIdoff_t " bytes is not a multiple of erasesize %d bytes\n", +- st.st_size, erasesize); ++ fprintf(stderr, "Image size %lld bytes is not a multiple of erasesize %d bytes\n", ++ (long long)st.st_size, erasesize); + exit(1); + } + image = mmap(NULL, st.st_size, PROT_READ, MAP_PRIVATE, rfd, 0); +diff --git a/tests/fs-tests/integrity/integck.c b/tests/fs-tests/integrity/integck.c +index 84753d6..0a7f142 100644 +--- a/tests/fs-tests/integrity/integck.c ++++ b/tests/fs-tests/integrity/integck.c +@@ -897,8 +897,8 @@ static ssize_t file_write_data(struct file_info *file, int fd, off_t offset, + remains = size; + actual = 0; + written = IO_BUFFER_SIZE; +- v("write %zd bytes, offset %"PRIdoff_t", file %s", +- size, offset, get_file_name(file)); ++ v("write %zd bytes, offset %lld, file %s", ++ size, (long long)offset, get_file_name(file)); + while (remains) { + /* Fill up buffer with random data */ + if (written < IO_BUFFER_SIZE) { +diff --git a/tests/mtd-tests/nandpagetest.c b/tests/mtd-tests/nandpagetest.c +index c6812df..465e548 100644 +--- a/tests/mtd-tests/nandpagetest.c ++++ b/tests/mtd-tests/nandpagetest.c +@@ -232,8 +232,8 @@ static int verify_eraseblock(int ebnum) + return err; + + if (lseek(fd, addr, SEEK_SET) != addr) { +- fprintf(stderr, "cannot seek mtd%d to offset %"PRIdloff_t, +- mtd.mtd_num, addr); ++ fprintf(stderr, "cannot seek mtd%d to offset %lld", ++ mtd.mtd_num, (long long)addr); + return -1; + } + +diff --git a/tests/ubi-tests/integ.c b/tests/ubi-tests/integ.c +index 26c2ce5..1cd0649 100644 +--- a/tests/ubi-tests/integ.c ++++ b/tests/ubi-tests/integ.c +@@ -243,7 +243,7 @@ static void check_erase_block(struct erase_block_info *erase_block, int fd) + while (size) + if (read_buffer[--size] != 0xff) { + fprintf(stderr, "block no. = %d\n" , erase_block->block_number); +- fprintf(stderr, "offset = %"PRIdoff_t"\n" , gap_start); ++ fprintf(stderr, "offset = %lld\n" , (long long)gap_start); + fprintf(stderr, "size = %ld\n" , (long) bytes_read); + error_exit("verify 0xff failed"); + } +@@ -254,7 +254,7 @@ static void check_erase_block(struct erase_block_info *erase_block, int fd) + errno = 0; + bytes_read = read(fd, read_buffer, w->size); + if (bytes_read != w->size) { +- fprintf(stderr, "offset = %"PRIdoff_t"\n" , w->offset); ++ fprintf(stderr, "offset = %lld\n" , (long long)w->offset); + fprintf(stderr, "size = %ld\n" , (long) w->size); + fprintf(stderr, "bytes_read = %ld\n" , (long) bytes_read); + error_exit("read failed"); +@@ -279,7 +279,7 @@ static void check_erase_block(struct erase_block_info *erase_block, int fd) + while (size) + if (read_buffer[--size] != 0xff) { + fprintf(stderr, "block no. = %d\n" , erase_block->block_number); +- fprintf(stderr, "offset = %"PRIdoff_t"\n" , gap_start); ++ fprintf(stderr, "offset = %lld\n" , (long long)gap_start); + fprintf(stderr, "size = %ld\n" , (long) bytes_read); + error_exit("verify 0xff failed!"); + } +diff --git a/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c b/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c +index c916f48..f0237ab 100644 +--- a/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c ++++ b/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c +@@ -772,11 +772,11 @@ int write_leb(int lnum, int len, void *buf) + return sys_err_msg("ubi_leb_change_start failed"); + + if (lseek(out_fd, pos, SEEK_SET) != pos) +- return sys_err_msg("lseek failed seeking %"PRIdoff_t, pos); ++ return sys_err_msg("lseek failed seeking %lld", (long long)pos); + + if (write(out_fd, buf, c->leb_size) != c->leb_size) +- return sys_err_msg("write failed writing %d bytes at pos %"PRIdoff_t, +- c->leb_size, pos); ++ return sys_err_msg("write failed writing %d bytes at pos %lld", ++ c->leb_size, (long long)pos); + + return 0; + } +-- +2.7.4 + diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0003-Makefile.am-only-build-ubi-utils.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0003-Makefile.am-only-build-ubi-utils.patch new file mode 100644 index 0000000..08c53d1 --- /dev/null +++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0003-Makefile.am-only-build-ubi-utils.patch @@ -0,0 +1,34 @@ +From 139d93bc405272a3261d57be26da842e737fe4d0 Mon Sep 17 00:00:00 2001 +From: Andrea Adami <andrea.adami@gmail.com> +Date: Sun, 28 Jan 2018 23:10:34 +0100 +Subject: [PATCH 3/4] Makefile.am: only build ubi-utils + +We only target the ubi-utils, static, small. + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Andrea Adami <andrea.adami@gmail.com> +--- + Makefile.am | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index 5a6e77c..98715dd 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -34,9 +34,9 @@ EXTRA_DIST += $(GLOBAL_HEADER) $(GLOBAL_EXTRA) + + include lib/Makemodule.am + include ubi-utils/Makemodule.am +-include misc-utils/Makemodule.am +-include nand-utils/Makemodule.am +-include nor-utils/Makemodule.am ++#include misc-utils/Makemodule.am ++#include nand-utils/Makemodule.am ++#include nor-utils/Makemodule.am + + if BUILD_UBIFS + include ubifs-utils/Makemodule.am +-- +2.7.4 + diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0004-mtd-utils-common.h-no-features.h-for-klibc-builds.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0004-mtd-utils-common.h-no-features.h-for-klibc-builds.patch new file mode 100644 index 0000000..5da05fa --- /dev/null +++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0004-mtd-utils-common.h-no-features.h-for-klibc-builds.patch @@ -0,0 +1,38 @@ +From ae1cf6d0eb1833e46549328a4473222c259723d7 Mon Sep 17 00:00:00 2001 +From: Andrea Adami <andrea.adami@gmail.com> +Date: Thu, 1 Feb 2018 00:25:00 +0100 +Subject: [PATCH 4/4] mtd-utils: common.h: no features.h for klibc builds + +Add guard around features.h to fix missing include (here first error): + + ../git/include/common.h:29:10: + fatal error: features.h: No such file or directory + #include <features.h> + ^~~~~~~~~~~~ + compilation terminated + +Upstream-Status: Submitted + +Signed-off-by: Andrea Adami <andrea.adami@gmail.com> +--- + include/common.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/include/common.h b/include/common.h +index 642c212..f7c71fe 100644 +--- a/include/common.h ++++ b/include/common.h +@@ -26,7 +26,10 @@ + #include <string.h> + #include <fcntl.h> + #include <errno.h> ++#if defined(__KLIBC__) ++#else + #include <features.h> ++#endif + #include <inttypes.h> + #include <unistd.h> + #include <sys/sysmacros.h> +-- +2.7.4 + diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_1.5.2.bb b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_2.0.2.bb similarity index 64% rename from meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_1.5.2.bb rename to meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_2.0.2.bb index abb0d4b..85bc372 100644 --- a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_1.5.2.bb +++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_2.0.2.bb @@ -7,30 +7,30 @@ LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ file://include/common.h;beginline=1;endline=17;md5=ba05b07912a44ea2bf81ce409380049c" -inherit klibc +inherit autotools pkgconfig klibc -SRCREV = "aea36417067dade75192bafa03af70b6eb2677b1" +SRCREV = "bc63d36e39f389c8c17f6a8e9db47f2acc884659" SRC_URI = "git://git.infradead.org/mtd-utils.git \ - file://0001-Makefile-build-ubi-utils-only.patch \ - file://0002-common.mk-for-klibc-CC-is-klcc.patch \ - file://0003-libubi.c-add-klibc-specific-fixes-for-ioctl.patch \ - file://0004-Restore-compatibility-to-dietlibc-klibc-musl-libc-af.patch \ - file://0005-common.h-more-workarounds-for-klibc-compatibility.patch \ - file://0006-libiniparser-remove-unused-function-needing-float.patch \ - file://0007-mtd-utils-common.c-convert-to-integer-arithmetic.patch \ - file://0008-ubi-utils-ubiformat.c-convert-to-integer-arithmetic.patch \ - file://0009-Eliminate-warnings-about-implicit-non-const-casting-.patch \ + file://0001-Add-simple-getline-implementation-to-libmissing.patch \ + file://0002-Instead-of-doing-preprocessor-magic-just-output-off_.patch \ + file://0003-Makefile.am-only-build-ubi-utils.patch \ + file://0004-mtd-utils-common.h-no-features.h-for-klibc-builds.patch \ " S = "${WORKDIR}/git/" -EXTRA_OEMAKE = "'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'CFLAGS=${CFLAGS} -I${S}include -DWITHOUT_XATTR' 'BUILDDIR=${S}'" +EXTRA_OECONF += "--disable-tests --without-jffs --without-ubifs" + +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'xattr', d)}" +PACKAGECONFIG[xattr] = ",,acl," + +EXTRA_OEMAKE = "'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'CFLAGS=${CFLAGS} ${@bb.utils.contains('PACKAGECONFIG', 'xattr', '', '-DWITHOUT_XATTR', d)} -I${S}/include' 'BUILDDIR=${S}'" do_install () { oe_runmake install DESTDIR=${D} SBINDIR=${sbindir} MANDIR=${mandir} INCLUDEDIR=${includedir} } -PACKAGES = "ubi-utils-klibc-dbg" +PACKAGES = "ubi-utils-klibc-dbg ubi-utils-klibc-doc" PACKAGES =+ "mtdinfo-klibc ubiattach-klibc ubiblock-klibc ubicrc32-klibc ubidetach-klibc \ ubiformat-klibc ubimkvol-klibc ubinfo-klibc ubinize-klibc ubirename-klibc \ -- 2.7.4 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [meta-initramfs][PATCH] ubi-utils-klibc: update from v. 1.5.2 to 2.0.2 2018-05-13 22:16 [meta-initramfs][PATCH] ubi-utils-klibc: update from v. 1.5.2 to 2.0.2 Andrea Adami @ 2018-05-17 14:15 ` akuster808 2018-05-17 15:31 ` Andrea Adami 0 siblings, 1 reply; 6+ messages in thread From: akuster808 @ 2018-05-17 14:15 UTC (permalink / raw) To: Andrea Adami, openembedded-devel On 05/13/2018 03:16 PM, Andrea Adami wrote: > Update to new version and drop accepted patches. > > Signed-off-by: Andrea Adami <andrea.adami@gmail.com> > --- > .../0001-Makefile-build-ubi-utils-only.patch | 87 ------ > .../0002-common.mk-for-klibc-CC-is-klcc.patch | 27 -- > ...bubi.c-add-klibc-specific-fixes-for-ioctl.patch | 76 ----- > ...patibility-to-dietlibc-klibc-musl-libc-af.patch | 88 ------ > ...-more-workarounds-for-klibc-compatibility.patch | 52 ---- > ...rser-remove-unused-function-needing-float.patch | 85 ------ > ...ls-common.c-convert-to-integer-arithmetic.patch | 64 ---- > ...ubiformat.c-convert-to-integer-arithmetic.patch | 44 --- > ...arnings-about-implicit-non-const-casting-.patch | 48 --- > ...mple-getline-implementation-to-libmissing.patch | 187 ++++++++++++ > ...doing-preprocessor-magic-just-output-off_.patch | 326 +++++++++++++++++++++ > .../0003-Makefile.am-only-build-ubi-utils.patch | 34 +++ > ...s-common.h-no-features.h-for-klibc-builds.patch | 38 +++ > ...ils-klibc_1.5.2.bb => ubi-utils-klibc_2.0.2.bb} | 26 +- This fails on qemuarm with the following error. | ../git/include/libmissing.h:7:10: fatal error: execinfo.h: No such file or directory | #include <execinfo.h> | ^~~~~~~~~~~~ | compilation terminated. | Makefile:2452: recipe for target 'ubi-utils/ubimkvol.o' failed | make: *** [ubi-utils/ubimkvol.o] Error 1 | Makefile:2452: recipe for target 'ubi-utils/ubicrc32.o' failed | make: *** [ubi-utils/ubicrc32.o] Error 1 | In file included from ../git/include/common.h:38:0, | from ../git/ubi-utils/ubiupdatevol.c:40: | ../git/include/libmissing.h:7:10: fatal error: execinfo.h: No such file or directory | #include <execinfo.h> | ^~~~~~~~~~~~ | compilation terminated. | Makefile:2452: recipe for target 'ubi-utils/ubiupdatevol.o' failed | make: *** [ubi-utils/ubiupdatevol.o] Error 1 | ERROR: oe_runmake failed http://errors.yoctoproject.org/Errors/Build/60410/ - Armin > 14 files changed, 598 insertions(+), 584 deletions(-) > delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0001-Makefile-build-ubi-utils-only.patch > delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0002-common.mk-for-klibc-CC-is-klcc.patch > delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0003-libubi.c-add-klibc-specific-fixes-for-ioctl.patch > delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0004-Restore-compatibility-to-dietlibc-klibc-musl-libc-af.patch > delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0005-common.h-more-workarounds-for-klibc-compatibility.patch > delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0006-libiniparser-remove-unused-function-needing-float.patch > delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0007-mtd-utils-common.c-convert-to-integer-arithmetic.patch > delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0008-ubi-utils-ubiformat.c-convert-to-integer-arithmetic.patch > delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0009-Eliminate-warnings-about-implicit-non-const-casting-.patch > create mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0001-Add-simple-getline-implementation-to-libmissing.patch > create mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0002-Instead-of-doing-preprocessor-magic-just-output-off_.patch > create mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0003-Makefile.am-only-build-ubi-utils.patch > create mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0004-mtd-utils-common.h-no-features.h-for-klibc-builds.patch > rename meta-initramfs/recipes-devtools/mtd/{ubi-utils-klibc_1.5.2.bb => ubi-utils-klibc_2.0.2.bb} (64%) > > 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 6ac2cca..0000000 > --- 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 @@ > -From 1c989e4c36d0bf76ab444f984bc73b98eeacd03f Mon Sep 17 00:00:00 2001 > -From: Andrea Adami <andrea.adami@gmail.com> > -Date: Sun, 29 Jun 2014 00:32:29 +0200 > -Subject: [PATCH 1/9] Makefile: build ubi-utils only > - > -We build all the static ubi-utils but actually only ubiattach is needed in > -a minimalistic initramfs for the mount of ubi volumes. > - > -More fixes are needed in order to build the full mtd-utils. > -The first issue is: > - > -| mkfs.jffs2.c:64:20: fatal error: libgen.h: No such file or directory > -| #include <libgen.h> > - > -Removing the include then the second error is: > - > -| mkfs.jffs2.c:1570:22: error: '_SC_PAGESIZE' undeclared > -| (first use in this function) > -| page_size = sysconf(_SC_PAGESIZE); > - > -Upstream-Status: Inappropriate [embedded specific] > - > -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> > ---- > - Makefile | 26 ++------------------------ > - 1 file changed, 2 insertions(+), 24 deletions(-) > - > -diff --git a/Makefile b/Makefile > -index 3ce8587..8b79f71 100644 > ---- a/Makefile > -+++ b/Makefile > -@@ -16,28 +16,11 @@ endif > - > - TESTS = tests > - > --MTD_BINS = \ > -- ftl_format flash_erase nanddump doc_loadbios \ > -- ftl_check mkfs.jffs2 flash_lock flash_unlock \ > -- flash_otp_info flash_otp_dump flash_otp_lock flash_otp_write \ > -- mtd_debug flashcp nandwrite nandtest mtdpart \ > -- jffs2dump \ > -- nftldump nftl_format docfdisk \ > -- rfddump rfdformat \ > -- serve_image recv_image \ > -- sumtool jffs2reader > - UBI_BINS = \ > - ubiupdatevol ubimkvol ubirmvol ubicrc32 ubinfo ubiattach \ > - ubidetach ubinize ubiformat ubirename mtdinfo ubirsvol ubiblock > - > --BINS = $(MTD_BINS) > --BINS += mkfs.ubifs/mkfs.ubifs > --BINS += $(addprefix ubi-utils/,$(UBI_BINS)) > --SCRIPTS = flash_eraseall > -- > --TARGETS = $(BINS) > --TARGETS += lib/libmtd.a > --TARGETS += ubi-utils/libubi.a > -+BINS = $(addprefix ubi-utils/,$(UBI_BINS)) > - > - OBJDEPS = $(BUILDDIR)/include/version.h > - > -@@ -61,12 +44,9 @@ endif > - rm -f $(BUILDDIR)/include/version.h > - $(MAKE) -C $(TESTS) clean > - > --install:: $(addprefix $(BUILDDIR)/,${BINS}) ${SCRIPTS} > -+install:: $(addprefix $(BUILDDIR)/,${BINS}) > - mkdir -p ${DESTDIR}/${SBINDIR} > - install -m 0755 $^ ${DESTDIR}/${SBINDIR}/ > -- mkdir -p ${DESTDIR}/${MANDIR}/man1 > -- install -m 0644 mkfs.jffs2.1 ${DESTDIR}/${MANDIR}/man1/ > -- -gzip -9f ${DESTDIR}/${MANDIR}/man1/*.1 > - > - tests:: > - $(MAKE) -C $(TESTS) > -@@ -91,8 +71,6 @@ LDLIBS_mkfs.jffs2 = -lz $(LZOLDLIBS) > - LDFLAGS_jffs2reader = $(ZLIBLDFLAGS) $(LZOLDFLAGS) > - LDLIBS_jffs2reader = -lz $(LZOLDLIBS) > - > --$(foreach v,$(MTD_BINS),$(eval $(call mkdep,,$(v)))) > -- > - # > - # Common libmtd > - # > --- > -2.7.4 > - > 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 c23d11f..0000000 > --- 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 @@ > -From 89c76bbe82a2029a25b0654eb0a1d0b22d6e6877 Mon Sep 17 00:00:00 2001 > -From: Andrea Adami <andrea.adami@gmail.com> > -Date: Sun, 29 Jun 2014 00:37:28 +0200 > -Subject: [PATCH 2/9] common.mk: for klibc $(CC) is klcc > - > -Do not hardcode: assign the value to the variable if it is not already defined. > - > -Upstream-Status: Submitted > - > -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> > ---- > - common.mk | 2 +- > - 1 file changed, 1 insertion(+), 1 deletion(-) > - > -diff --git a/common.mk b/common.mk > -index ba87377..126d11a 100644 > ---- a/common.mk > -+++ b/common.mk > -@@ -1,4 +1,4 @@ > --CC := $(CROSS)gcc > -+CC ?= $(CROSS)gcc > - AR := $(CROSS)ar > - RANLIB := $(CROSS)ranlib > - > --- > -2.7.4 > - > 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 9ad4a5b..0000000 > --- 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 @@ > -From fecbb7056d621a30f7106e67f5fe209763571b70 Mon Sep 17 00:00:00 2001 > -From: Andrea Adami <andrea.adami@gmail.com> > -Date: Sun, 29 Jun 2014 00:40:15 +0200 > -Subject: [PATCH 3/9] libubi.c: add klibc specific fixes for ioctl > - > -First issue is that ioctl() in klibc doesn't expect a constant as arg3. > -Second issue is that arg3 in klibc ioctl() implementation is not optional. > - > -Fixes: > - > -| ubi-utils/libubi.c: In function 'do_attach': > -| ubi-utils/libubi.c:698:8: warning: passing argument 3 of 'ioctl' discards > -| 'const' qualifier from pointer target type > -| ret = ioctl(fd, UBI_IOCATT, r); > -| ^ > -| In file included from ubi-utils/libubi.c:32:0: > -| .../lib/klibc/include/sys/ioctl.h:15:14: note: expected 'void *' but argument > -| is of type 'const struct ubi_attach_req *' > -| __extern int ioctl(int, int, void *); > -| ^ > - > -| ubi-utils/libubi.c: In function 'ubi_vol_block_create': > -| ubi-utils/libubi.c:1118:9: error: too few arguments to function 'ioctl' > -| return ioctl(fd, UBI_IOCVOLCRBLK); > -| ^ > -| In file included from ubi-utils/libubi.c:32:0: > -| .../lib/klibc/include/sys/ioctl.h:15:14: note: declared here > -| __extern int ioctl(int, int, void *); > -| ^ > -| ubi-utils/libubi.c: In function 'ubi_vol_block_remove': > -| ubi-utils/libubi.c:1123:9: error: too few arguments to function 'ioctl' > -| return ioctl(fd, UBI_IOCVOLRMBLK); > -| ^ > -| In file included from ubi-utils/libubi.c:32:0: > -| .../usr/lib/klibc/include/sys/ioctl.h:15:14: note: declared here > -| __extern int ioctl(int, int, void *); > -| ^ > - > -Upstream-Status: Accepted > - > -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> > ---- > - ubi-utils/libubi.c | 6 +++--- > - 1 file changed, 3 insertions(+), 3 deletions(-) > - > -diff --git a/ubi-utils/libubi.c b/ubi-utils/libubi.c > -index 97c0434..2b49833 100644 > ---- a/ubi-utils/libubi.c > -+++ b/ubi-utils/libubi.c > -@@ -687,7 +687,7 @@ void libubi_close(libubi_t desc) > - * success and %-1 in case of failure. @r->ubi_num contains newly created UBI > - * device number. > - */ > --static int do_attach(const char *node, const struct ubi_attach_req *r) > -+static int do_attach(const char *node, struct ubi_attach_req *r) > - { > - int fd, ret; > - > -@@ -1115,12 +1115,12 @@ int ubi_rsvol(libubi_t desc, const char *node, int vol_id, long long bytes) > - > - int ubi_vol_block_create(int fd) > - { > -- return ioctl(fd, UBI_IOCVOLCRBLK); > -+ return ioctl(fd, UBI_IOCVOLCRBLK, NULL); > - } > - > - int ubi_vol_block_remove(int fd) > - { > -- return ioctl(fd, UBI_IOCVOLRMBLK); > -+ return ioctl(fd, UBI_IOCVOLRMBLK, NULL); > - } > - > - int ubi_update_start(libubi_t desc, int fd, long long bytes) > --- > -2.7.4 > - > 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 2f31fb4..0000000 > --- 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 @@ > -From b668cb75cb7e72ff92055209130d4cd4b3cacbdb Mon Sep 17 00:00:00 2001 > -From: Thorsten Glaser <tg@mirbsd.org> > -Date: Fri, 20 Jun 2014 10:56:27 +0000 > -Subject: [PATCH 4/9] Restore compatibility to dietlibc, klibc, musl libc after > - commit 4f1b108 > -MIME-Version: 1.0 > -Content-Type: text/plain; charset=UTF-8 > -Content-Transfer-Encoding: 8bit > - > -Each C library has their own way to define off_t, and the <features.h> > -header is nonstandard and specific to the GNU libc and those that clone > -it (uClibc). Fefe’s dietlibc uses different flags, and klibc always uses > -a 64-bit off_t (like the BSDs); musl libc cannot be recognised using cpp > -instructions, so we assume 64 bit there (and on unknown C libraries) and > -leave it to the user to submit a follow-up fix if we guess wrong. I also > -added a static assertion to verify the 64 bit guess is correct. > - > -It would be really better using a configure script for this instead. > - > -Fixes: > -| CC lib/libmtd.o > -| In file included from ubi-utils/ubiutils-common.c:35:0: > -| ./include/common.h:29:22: fatal error: features.h: No such file or directory > -| #include <features.h> > -| ^ > -| compilation terminated. > - > -Upstream-Status: Submitted > - > -Signed-off-by: Thorsten Glaser <tg@mirbsd.org> > -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> > ---- > - include/common.h | 24 ++++++++++++++++++++++++ > - 1 file changed, 24 insertions(+) > - > -diff --git a/include/common.h b/include/common.h > -index fb0ca83..5a20964 100644 > ---- a/include/common.h > -+++ b/include/common.h > -@@ -26,7 +26,9 @@ > - #include <string.h> > - #include <fcntl.h> > - #include <errno.h> > -+#if defined(__GLIBC__) || defined(__UCLIBC__) > - #include <features.h> > -+#endif > - #include <inttypes.h> > - #include "version.h" > - > -@@ -67,6 +69,21 @@ extern "C" { > - #endif > - > - /* define a print format specifier for off_t */ > -+#if defined(__KLIBC__) > -+/* always 64 bit on klibc */ > -+#define PRIxoff_t PRIx64 > -+#define PRIdoff_t PRId64 > -+#elif defined(__dietlibc__) > -+/* depends on compiler flags on dietlibc */ > -+#if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64) > -+#define PRIxoff_t PRIx64 > -+#define PRIdoff_t PRId64 > -+#else > -+#define PRIxoff_t "l"PRIx32 > -+#define PRIdoff_t "l"PRId32 > -+#endif > -+#elif defined(__GLIBC__) || defined(__UCLIBC__) > -+/* depends on compiler flags on glibc and uClibc */ > - #ifdef __USE_FILE_OFFSET64 > - #define PRIxoff_t PRIx64 > - #define PRIdoff_t PRId64 > -@@ -74,6 +91,13 @@ extern "C" { > - #define PRIxoff_t "l"PRIx32 > - #define PRIdoff_t "l"PRId32 > - #endif > -+#else > -+/* unknown libc or musl */ > -+#define PRIxoff_t PRIx64 > -+#define PRIdoff_t PRId64 > -+/* verify our guess of 64 bit is correct */ > -+static char __PRIxoff_t_static_assert[sizeof(off_t) == 8 ? 1 : -1]; > -+#endif > - > - /* Verbose messages */ > - #define bareverbose(verbose, fmt, ...) do { \ > --- > -2.7.4 > - > 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 8309a72..0000000 > --- 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 @@ > -From 5d4a66b502003ef385dab31a17012246407e7364 Mon Sep 17 00:00:00 2001 > -From: Andrea Adami <andrea.adami@gmail.com> > -Date: Sun, 29 Jun 2014 00:44:03 +0200 > -Subject: [PATCH 5/9] common.h: more workarounds for klibc compatibility > - > -Patch is addressing two issues: > -* First, Klibc doesn't have rpmatch(). > -* Second, Klibc lacks getline() > - > -Fixes: > -| LD ubi-utils/ubiformat > -| .../git/ubi-utils/ubiformat.o: In function `prompt': > -| .../git/./include/common.h:157: undefined reference to `getline' > -| .../git/./include/common.h:164: undefined reference to `rpmatch' > -| .../git/./include/common.h:157: undefined reference to `getline' > -| .../git/./include/common.h:164: undefined reference to `rpmatch' > - > -Upstream-Status: Submitted > - > -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> > ---- > - include/common.h | 8 +++++--- > - 1 file changed, 5 insertions(+), 3 deletions(-) > - > -diff --git a/include/common.h b/include/common.h > -index 5a20964..2f51e1c 100644 > ---- a/include/common.h > -+++ b/include/common.h > -@@ -161,15 +161,17 @@ static inline int __rpmatch(const char *resp) > - */ > - static inline bool prompt(const char *msg, bool def) > - { > -- char *line = NULL; > -- size_t len; > -+ char *line; > - bool ret = def; > - > -+ const int sizeof_line = 2; > -+ line = malloc(sizeof_line); > -+ > - do { > - normsg_cont("%s (%c/%c) ", msg, def ? 'Y' : 'y', def ? 'n' : 'N'); > - fflush(stdout); > - > -- while (getline(&line, &len, stdin) == -1) { > -+ while (fgets(line, sizeof_line, stdin) == NULL) { > - printf("failed to read prompt; assuming '%s'\n", > - def ? "yes" : "no"); > - break; > --- > -2.7.4 > - > 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 d046f95..0000000 > --- 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 @@ > -From 2af30e9b2988111e45ed6ea6af55e49ec7cb1cb1 Mon Sep 17 00:00:00 2001 > -From: Andrea Adami <andrea.adami@gmail.com> > -Date: Sun, 29 Jun 2014 00:44:57 +0200 > -Subject: [PATCH 6/9] libiniparser: remove unused function needing float > - > -Fixes: > -| LD ubi-utils/ubiformat > -| .../git/ubi-utils/libiniparser.a(libiniparser.o): In function > -| ` LD ubi-utils/ubirename > -| iniparser_getdouble': > -| .../git/ubi-utils/libiniparser.c:336: undefined reference to `atof' > - > -Grep doesn't reveal any occurrence of iniparser_getdouble(), using atof() so > -remove it: floating-point is not supported in klibc > - > -Upstream-Status: Accepted > - > -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> > ---- > - ubi-utils/include/libiniparser.h | 15 --------------- > - ubi-utils/libiniparser.c | 22 ---------------------- > - 2 files changed, 37 deletions(-) > - > -diff --git a/ubi-utils/include/libiniparser.h b/ubi-utils/include/libiniparser.h > -index be3c667..abd77aa 100644 > ---- a/ubi-utils/include/libiniparser.h > -+++ b/ubi-utils/include/libiniparser.h > -@@ -158,21 +158,6 @@ int iniparser_getint(dictionary * d, const char * key, int notfound); > - > - /*-------------------------------------------------------------------------*/ > - /** > -- @brief Get the string associated to a key, convert to a double > -- @param d Dictionary to search > -- @param key Key string to look for > -- @param notfound Value to return in case of error > -- @return double > -- > -- This function queries a dictionary for a key. A key as read from an > -- ini file is given as "section:key". If the key cannot be found, > -- the notfound value is returned. > -- */ > --/*--------------------------------------------------------------------------*/ > --double iniparser_getdouble(dictionary * d, char * key, double notfound); > -- > --/*-------------------------------------------------------------------------*/ > --/** > - @brief Get the string associated to a key, convert to a boolean > - @param d Dictionary to search > - @param key Key string to look for > -diff --git a/ubi-utils/libiniparser.c b/ubi-utils/libiniparser.c > -index 898f57f..ba70c08 100644 > ---- a/ubi-utils/libiniparser.c > -+++ b/ubi-utils/libiniparser.c > -@@ -316,28 +316,6 @@ int iniparser_getint(dictionary * d, const char * key, int notfound) > - > - /*-------------------------------------------------------------------------*/ > - /** > -- @brief Get the string associated to a key, convert to a double > -- @param d Dictionary to search > -- @param key Key string to look for > -- @param notfound Value to return in case of error > -- @return double > -- > -- This function queries a dictionary for a key. A key as read from an > -- ini file is given as "section:key". If the key cannot be found, > -- the notfound value is returned. > -- */ > --/*--------------------------------------------------------------------------*/ > --double iniparser_getdouble(dictionary * d, char * key, double notfound) > --{ > -- char * str ; > -- > -- str = iniparser_getstring(d, key, INI_INVALID_KEY); > -- if (str==INI_INVALID_KEY) return notfound ; > -- return atof(str); > --} > -- > --/*-------------------------------------------------------------------------*/ > --/** > - @brief Get the string associated to a key, convert to a boolean > - @param d Dictionary to search > - @param key Key string to look for > --- > -2.7.4 > - > 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 36b012f..0000000 > --- 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 @@ > -From 41e7c76b0853bf5241b38b8167dfd57c27fef1eb Mon Sep 17 00:00:00 2001 > -From: Andrea Adami <andrea.adami@gmail.com> > -Date: Sun, 28 Jan 2018 21:47:59 +0100 > -Subject: [PATCH 7/9] mtd-utils: common.c: convert to integer arithmetic > - > -We use floating point just to print out KiB, MiB, GiB. > -Avoid that to be klibc friendly. > - > -Fixes compilation for aarch64 against klibc: > - > -error: '-mgeneral-regs-only' is incompatible with floating-point argument > -| printf("%s%.1f GiB", p, (double)bytes / (1024 * 1024 * 1024)); > -etc. > - > -Note: > -* In the KiB case, we could apparently multiply by 100 before dividing > - without risking overflow. This code simply avoids multiplications. > - > -Upstream-Status: Submitted > - > -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> > ---- > - ubi-utils/ubiutils-common.c | 18 ++++++++++++------ > - 1 file changed, 12 insertions(+), 6 deletions(-) > - > -diff --git a/ubi-utils/ubiutils-common.c b/ubi-utils/ubiutils-common.c > -index 6609a6b..0ded2a4 100644 > ---- a/ubi-utils/ubiutils-common.c > -+++ b/ubi-utils/ubiutils-common.c > -@@ -107,6 +107,9 @@ long long ubiutils_get_bytes(const char *str) > - void ubiutils_print_bytes(long long bytes, int bracket) > - { > - const char *p; > -+ int GiB = 1024 * 1024 * 1024; > -+ int MiB = 1024 * 1024; > -+ int KiB = 1024; > - > - if (bracket) > - p = " ("; > -@@ -115,12 +118,15 @@ void ubiutils_print_bytes(long long bytes, int bracket) > - > - printf("%lld bytes", bytes); > - > -- if (bytes > 1024 * 1024 * 1024) > -- printf("%s%.1f GiB", p, (double)bytes / (1024 * 1024 * 1024)); > -- else if (bytes > 1024 * 1024) > -- printf("%s%.1f MiB", p, (double)bytes / (1024 * 1024)); > -- else if (bytes > 1024 && bytes != 0) > -- printf("%s%.1f KiB", p, (double)bytes / 1024); > -+ if (bytes > GiB) > -+ printf("%s%lld.%lld GiB", p, > -+ bytes / GiB, bytes % GiB / (GiB / 10)); > -+ else if (bytes > MiB) > -+ printf("%s%lld.%lld MiB", p, > -+ bytes / MiB, bytes % MiB / (MiB / 10)); > -+ else if (bytes > KiB && bytes != 0) > -+ printf("%s%lld.%lld KiB", p, > -+ bytes / KiB, bytes % KiB / (KiB / 10)); > - else > - return; > - > --- > -2.7.4 > - > 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 5bd0574..0000000 > --- 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 @@ > -From e6f1a85c0a3df24fe3ca9a520dc697105e75a80c Mon Sep 17 00:00:00 2001 > -From: Andrea Adami <andrea.adami@gmail.com> > -Date: Sat, 27 Jan 2018 09:39:26 +0100 > -Subject: [PATCH 8/9] ubi-utils: ubiformat.c: convert to integer arithmetic > - > -Do not cast percent to double, it is just used as upper limit. > -Avoid floating point to fix compilation for aarch64 against klibc: > - > -error: '-mgeneral-regs-only' is incompatible with floating-point code > -| int percent = ((double)si->ok_cnt)/si->good_cnt * 100; > -| ^~~~~~~ > - > -Notes: > -* The checks in the code above this line ensure that si->good_cnt is not 0. > - > -* The code assumes si->good_cnt * 100 will not overflow, then we can use > - (si->ok_cnt * 100) safely because the former is bigger. > - > -* The truncated result does not affect the logic: > - i.e. a value of 49.9 is truncated to 49 and is still <50. > - > -Upstream-Status: Submitted > - > -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> > ---- > - ubi-utils/ubiformat.c | 2 +- > - 1 file changed, 1 insertion(+), 1 deletion(-) > - > -diff --git a/ubi-utils/ubiformat.c b/ubi-utils/ubiformat.c > -index 21409ca..d93164a 100644 > ---- a/ubi-utils/ubiformat.c > -+++ b/ubi-utils/ubiformat.c > -@@ -843,7 +843,7 @@ int main(int argc, char * const argv[]) > - } > - > - if (!args.override_ec && si->empty_cnt < si->good_cnt) { > -- int percent = ((double)si->ok_cnt)/si->good_cnt * 100; > -+ int percent = (si->ok_cnt * 100) / si->good_cnt; > - > - /* > - * Make sure the majority of eraseblocks have valid > --- > -2.7.4 > - > 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 658246a..0000000 > --- 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 @@ > -From 2229f3b9fd4bad47794c28e558ad273173cea73d Mon Sep 17 00:00:00 2001 > -From: Andrea Adami <andrea.adami@gmail.com> > -Date: Sat, 27 Jan 2018 09:52:46 +0100 > -Subject: [PATCH 9/9] Eliminate warnings about implicit non-const casting in > - libmtd > - > -The mtd_get_dev_info1 function reads (among other things) name and type > -string into coresponding struct mtd_dev_info fields. > - > -The struct mtd_dev_info has the string fields marked const, requiring > -them to be cast to non-const version during initialization. > - > -This cast was previously omitted from the dev_read_data calls, > -triggering warnings during compilation. > - > -Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at> > -Signed-off-by: Richard Weinberger <richard@nod.at> > - > -Upstream-Status: Backport > - > -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> > ---- > - lib/libmtd.c | 4 ++-- > - 1 file changed, 2 insertions(+), 2 deletions(-) > - > -diff --git a/lib/libmtd.c b/lib/libmtd.c > -index 60b4782..5f0bcbc 100644 > ---- a/lib/libmtd.c > -+++ b/lib/libmtd.c > -@@ -746,13 +746,13 @@ int mtd_get_dev_info1(libmtd_t desc, int mtd_num, struct mtd_dev_info *mtd) > - if (dev_get_major(lib, mtd_num, &mtd->major, &mtd->minor)) > - return -1; > - > -- ret = dev_read_data(lib->mtd_name, mtd_num, &mtd->name, > -+ ret = dev_read_data(lib->mtd_name, mtd_num, (char *)&mtd->name, > - MTD_NAME_MAX + 1); > - if (ret < 0) > - return -1; > - ((char *)mtd->name)[ret - 1] = '\0'; > - > -- ret = dev_read_data(lib->mtd_type, mtd_num, &mtd->type_str, > -+ ret = dev_read_data(lib->mtd_type, mtd_num, (char *)&mtd->type_str, > - MTD_TYPE_MAX + 1); > - if (ret < 0) > - return -1; > --- > -2.7.4 > - > diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0001-Add-simple-getline-implementation-to-libmissing.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0001-Add-simple-getline-implementation-to-libmissing.patch > new file mode 100644 > index 0000000..d4c6d87 > --- /dev/null > +++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0001-Add-simple-getline-implementation-to-libmissing.patch > @@ -0,0 +1,187 @@ > +From 10c289454dad34632d767694aecb508dae5073bf Mon Sep 17 00:00:00 2001 > +From: David Oberhollenzer <david.oberhollenzer@sigma-star.at> > +Date: Thu, 1 Feb 2018 12:16:18 +0100 > +Subject: [PATCH 1/4] Add simple getline() implementation to libmissing > + > +Some C libraries, like klibc don't implement getline(). This patch > +adds a simple stub implementation to libmissing that does an fgets > +into a stack allocated buffer and returns the result. > + > +Upstream-Status: Backport > + > +Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at> > +--- > + configure.ac | 1 + > + include/common.h | 1 + > + include/libmissing.h | 7 +++++++ > + jffsX-utils/Makemodule.am | 2 +- > + lib/Makemodule.am | 3 ++- > + lib/getline.c | 36 ++++++++++++++++++++++++++++++++++++ > + misc-utils/Makemodule.am | 2 ++ > + ubi-utils/Makemodule.am | 2 +- > + ubifs-utils/Makemodule.am | 1 + > + 9 files changed, 52 insertions(+), 3 deletions(-) > + create mode 100644 lib/getline.c > + > +diff --git a/configure.ac b/configure.ac > +index 83d754f..5af0115 100644 > +--- a/configure.ac > ++++ b/configure.ac > +@@ -191,6 +191,7 @@ if test "x$need_cmocka" = "xyes"; then > + fi > + > + AC_CHECK_HEADERS([execinfo.h]) > ++AC_CHECK_FUNCS([getline]) > + > + ##### produce summary on dependencies ##### > + > +diff --git a/include/common.h b/include/common.h > +index 2ce5d22..f8f72ea 100644 > +--- a/include/common.h > ++++ b/include/common.h > +@@ -32,6 +32,7 @@ > + #include <sys/sysmacros.h> > + > + #include "config.h" > ++#include "libmissing.h" > + > + #ifndef PROGRAM_NAME > + # error "You must define PROGRAM_NAME before including this header" > +diff --git a/include/libmissing.h b/include/libmissing.h > +index 0196033..09dbce1 100644 > +--- a/include/libmissing.h > ++++ b/include/libmissing.h > +@@ -7,11 +7,18 @@ > + #include <execinfo.h> > + #endif > + > ++#include <sys/types.h> > ++#include <stdio.h> > ++ > + #ifndef HAVE_EXECINFO_H > + int backtrace(void **buffer, int size); > + char **backtrace_symbols(void *const *buffer, int size); > + void backtrace_symbols_fd(void *const *buffer, int size, int fd); > + #endif > + > ++#ifndef HAVE_GETLINE > ++ssize_t getline(char **lineptr, size_t *n, FILE *stream); > ++#endif > ++ > + #endif /* LIBMISSING_H */ > + > +diff --git a/jffsX-utils/Makemodule.am b/jffsX-utils/Makemodule.am > +index fb181de..9d7a5d9 100644 > +--- a/jffsX-utils/Makemodule.am > ++++ b/jffsX-utils/Makemodule.am > +@@ -17,7 +17,7 @@ jffs2dump_SOURCES = jffsX-utils/jffs2dump.c > + jffs2dump_LDADD = libmtd.a $(ZLIB_LIBS) $(LZO_LIBS) > + > + sumtool_SOURCES = jffsX-utils/sumtool.c > +-sumtool_LDADD = libmtd.a > ++sumtool_LDADD = libmtd.a libmissing.a > + > + JFFSX_BINS = \ > + mkfs.jffs2 jffs2dump jffs2reader sumtool > +diff --git a/lib/Makemodule.am b/lib/Makemodule.am > +index 5bee5b6..645632a 100644 > +--- a/lib/Makemodule.am > ++++ b/lib/Makemodule.am > +@@ -7,7 +7,8 @@ libmtd_a_SOURCES = \ > + lib/libmtd_int.h > + > + libmissing_a_SOURCES = \ > +- lib/execinfo.c > ++ lib/execinfo.c \ > ++ lib/getline.c > + > + libubi_a_SOURCES = \ > + lib/libubi.c \ > +diff --git a/lib/getline.c b/lib/getline.c > +new file mode 100644 > +index 0000000..c575bf7 > +--- /dev/null > ++++ b/lib/getline.c > +@@ -0,0 +1,36 @@ > ++#include <stdlib.h> > ++#include <string.h> > ++ > ++#include "libmissing.h" > ++ > ++#ifndef HAVE_GETLINE > ++ssize_t getline(char **lineptr, size_t *n, FILE *stream) > ++{ > ++ char buffer[256], *new; > ++ size_t count; > ++ > ++ if (!(*lineptr)) > ++ *n = 0; > ++ > ++ if (!fgets(buffer, sizeof(buffer), stream)) { > ++ if (!feof(stream)) > ++ return -1; > ++ > ++ buffer[0] = '\0'; > ++ } > ++ > ++ count = strlen(buffer) + 1; > ++ > ++ if (*n < count) { > ++ new = realloc(*lineptr, count); > ++ if (!new) > ++ return -1; > ++ *lineptr = new; > ++ *n = count; > ++ } > ++ > ++ memcpy(*lineptr, buffer, count); > ++ return count; > ++} > ++#endif > ++ > +diff --git a/misc-utils/Makemodule.am b/misc-utils/Makemodule.am > +index ce1c385..bfc5342 100644 > +--- a/misc-utils/Makemodule.am > ++++ b/misc-utils/Makemodule.am > +@@ -1,4 +1,5 @@ > + ftl_format_SOURCES = misc-utils/ftl_format.c > ++ftl_format_LDADD = libmissing.a > + > + doc_loadbios_SOURCES = misc-utils/doc_loadbios.c > + > +@@ -25,6 +26,7 @@ flash_otp_info_SOURCES = misc-utils/flash_otp_info.c > + flash_otp_dump_SOURCES = misc-utils/flash_otp_dump.c > + > + flash_otp_lock_SOURCES = misc-utils/flash_otp_lock.c > ++flash_otp_lock_LDADD = libmissing.a > + > + flash_otp_write_SOURCES = misc-utils/flash_otp_write.c > + > +diff --git a/ubi-utils/Makemodule.am b/ubi-utils/Makemodule.am > +index 215eac2..7b447c7 100644 > +--- a/ubi-utils/Makemodule.am > ++++ b/ubi-utils/Makemodule.am > +@@ -23,7 +23,7 @@ ubinize_SOURCES = ubi-utils/ubinize.c > + ubinize_LDADD = libubi.a libubigen.a libmtd.a libiniparser.a > + > + ubiformat_SOURCES = ubi-utils/ubiformat.c > +-ubiformat_LDADD = libubi.a libubigen.a libmtd.a libscan.a > ++ubiformat_LDADD = libubi.a libubigen.a libmtd.a libscan.a libmissing.a > + > + ubirename_SOURCES = ubi-utils/ubirename.c > + ubirename_LDADD = libmtd.a libubi.a > +diff --git a/ubifs-utils/Makemodule.am b/ubifs-utils/Makemodule.am > +index 5862afb..787beb9 100644 > +--- a/ubifs-utils/Makemodule.am > ++++ b/ubifs-utils/Makemodule.am > +@@ -17,6 +17,7 @@ mkfs_ubifs_SOURCES = \ > + ubifs-utils/mkfs.ubifs/hashtable/hashtable_itr.c \ > + ubifs-utils/mkfs.ubifs/devtable.c > + mkfs_ubifs_LDADD = libmtd.a libubi.a $(ZLIB_LIBS) $(LZO_LIBS) $(UUID_LIBS) -lm > ++mkfs_ubifs_LDADD += libmissing.a > + mkfs_ubifs_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_CFLAGS) $(LZO_CFLAGS) $(UUID_CFLAGS) \ > + -I$(top_srcdir)/ubi-utils/include -I$(top_srcdir)/ubifs-utils/mkfs.ubifs/ > + > +-- > +2.7.4 > + > diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0002-Instead-of-doing-preprocessor-magic-just-output-off_.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0002-Instead-of-doing-preprocessor-magic-just-output-off_.patch > new file mode 100644 > index 0000000..bb675a7 > --- /dev/null > +++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0002-Instead-of-doing-preprocessor-magic-just-output-off_.patch > @@ -0,0 +1,326 @@ > +From 01c98d5d5d044d9a125abcdbb2f3d771966365b0 Mon Sep 17 00:00:00 2001 > +From: mirabilos <m@mirbsd.org> > +Date: Thu, 1 Feb 2018 15:34:07 +0100 > +Subject: [PATCH 2/4] Instead of doing preprocessor magic, just output off_t as > + long long > + > +Fix warnings abot PRIdoff_t in libmtd.c, in mtd_read (and mtd_write): > + > +In file included from ../git/lib/libmtd.c:40:0: > +../git/lib/libmtd.c: In function 'mtd_read': > +../git/include/common.h:110:18: warning: format '%ld' expects argument of > + type 'long int', but argument 5 has type 'off_t {aka long long int}' > + [-Wformat=] > + > +../git/include/common.h:120:2: note: in expansion of macro 'errmsg' > + errmsg(fmt, ##__VA_ARGS__); \ > + ^~~~~~ > +../git/lib/libmtd.c:1082:10: note: in expansion of macro 'sys_errmsg' > + return sys_errmsg("cannot seek mtd%d to offset %"PRIdoff_t, > + ^~~~~~~~~~ > + > +/usr/lib/klibc/include/inttypes.h:28:17: note: format string is defined here > + #define PRId32 "d" > + > +Upstream-Status: Submitted > + > +Signed-off-by: Thorsten Glaser <tg@mirbsd.org> > +--- > + include/common.h | 18 ------------------ > + jffsX-utils/mkfs.jffs2.c | 20 ++++++++++---------- > + lib/libmtd.c | 8 ++++---- > + misc-utils/flash_erase.c | 6 +++--- > + misc-utils/flash_otp_write.c | 2 +- > + misc-utils/ftl_check.c | 2 +- > + misc-utils/mtd_debug.c | 4 ++-- > + misc-utils/serve_image.c | 4 ++-- > + tests/fs-tests/integrity/integck.c | 4 ++-- > + tests/mtd-tests/nandpagetest.c | 4 ++-- > + tests/ubi-tests/integ.c | 6 +++--- > + ubifs-utils/mkfs.ubifs/mkfs.ubifs.c | 6 +++--- > + 12 files changed, 33 insertions(+), 51 deletions(-) > + > +diff --git a/include/common.h b/include/common.h > +index f8f72ea..642c212 100644 > +--- a/include/common.h > ++++ b/include/common.h > +@@ -70,24 +70,6 @@ extern "C" { > + #define O_CLOEXEC 0 > + #endif > + > +-/* define a print format specifier for off_t */ > +-#if (SIZEOF_OFF_T >= 8) > +-#define PRIxoff_t PRIx64 > +-#define PRIdoff_t PRId64 > +-#else > +-#define PRIxoff_t "l"PRIx32 > +-#define PRIdoff_t "l"PRId32 > +-#endif > +- > +-/* define a print format specifier for loff_t */ > +-#if (SIZEOF_LOFF_T >= 8) > +-#define PRIxloff_t PRIx64 > +-#define PRIdloff_t PRId64 > +-#else > +-#define PRIxloff_t "l"PRIx32 > +-#define PRIdloff_t "l"PRId32 > +-#endif > +- > + /* Verbose messages */ > + #define bareverbose(verbose, fmt, ...) do { \ > + if (verbose) \ > +diff --git a/jffsX-utils/mkfs.jffs2.c b/jffsX-utils/mkfs.jffs2.c > +index 9aa6c39..0661786 100644 > +--- a/jffsX-utils/mkfs.jffs2.c > ++++ b/jffsX-utils/mkfs.jffs2.c > +@@ -1237,8 +1237,8 @@ static void recursive_populate_directory(struct filesystem_entry *dir) > + } else switch (e->sb.st_mode & S_IFMT) { > + case S_IFDIR: > + if (verbose) { > +- printf("\td %04o %9" PRIdoff_t " %5d:%-3d %s\n", > +- e->sb.st_mode & ~S_IFMT, e->sb.st_size, > ++ printf("\td %04o %9lld %5d:%-3d %s\n", > ++ e->sb.st_mode & ~S_IFMT, (long long)e->sb.st_size, > + (int) (e->sb.st_uid), (int) (e->sb.st_gid), > + e->name); > + } > +@@ -1247,8 +1247,8 @@ static void recursive_populate_directory(struct filesystem_entry *dir) > + break; > + case S_IFSOCK: > + if (verbose) { > +- printf("\ts %04o %9" PRIdoff_t " %5d:%-3d %s\n", > +- e->sb.st_mode & ~S_IFMT, e->sb.st_size, > ++ printf("\ts %04o %9lld %5d:%-3d %s\n", > ++ e->sb.st_mode & ~S_IFMT, (long long)e->sb.st_size, > + (int) e->sb.st_uid, (int) e->sb.st_gid, e->name); > + } > + write_pipe(e); > +@@ -1256,8 +1256,8 @@ static void recursive_populate_directory(struct filesystem_entry *dir) > + break; > + case S_IFIFO: > + if (verbose) { > +- printf("\tp %04o %9" PRIdoff_t " %5d:%-3d %s\n", > +- e->sb.st_mode & ~S_IFMT, e->sb.st_size, > ++ printf("\tp %04o %9lld %5d:%-3d %s\n", > ++ e->sb.st_mode & ~S_IFMT, (long long)e->sb.st_size, > + (int) e->sb.st_uid, (int) e->sb.st_gid, e->name); > + } > + write_pipe(e); > +@@ -1285,8 +1285,8 @@ static void recursive_populate_directory(struct filesystem_entry *dir) > + break; > + case S_IFLNK: > + if (verbose) { > +- printf("\tl %04o %9" PRIdoff_t " %5d:%-3d %s -> %s\n", > +- e->sb.st_mode & ~S_IFMT, e->sb.st_size, > ++ printf("\tl %04o %9lld %5d:%-3d %s -> %s\n", > ++ e->sb.st_mode & ~S_IFMT, (long long)e->sb.st_size, > + (int) e->sb.st_uid, (int) e->sb.st_gid, e->name, > + e->link); > + } > +@@ -1297,8 +1297,8 @@ static void recursive_populate_directory(struct filesystem_entry *dir) > + wrote = write_regular_file(e); > + write_xattr_entry(e); > + if (verbose) { > +- printf("\tf %04o %9" PRIdoff_t " (%9u) %5d:%-3d %s\n", > +- e->sb.st_mode & ~S_IFMT, e->sb.st_size, wrote, > ++ printf("\tf %04o %9lld (%9u) %5d:%-3d %s\n", > ++ e->sb.st_mode & ~S_IFMT, (long long)e->sb.st_size, wrote, > + (int) e->sb.st_uid, (int) e->sb.st_gid, e->name); > + } > + break; > +diff --git a/lib/libmtd.c b/lib/libmtd.c > +index 86c89ae..f375381 100644 > +--- a/lib/libmtd.c > ++++ b/lib/libmtd.c > +@@ -1079,8 +1079,8 @@ int mtd_read(const struct mtd_dev_info *mtd, int fd, int eb, int offs, > + /* Seek to the beginning of the eraseblock */ > + seek = (off_t)eb * mtd->eb_size + offs; > + if (lseek(fd, seek, SEEK_SET) != seek) > +- return sys_errmsg("cannot seek mtd%d to offset %"PRIdoff_t, > +- mtd->mtd_num, seek); > ++ return sys_errmsg("cannot seek mtd%d to offset %lld", > ++ mtd->mtd_num, (long long)seek); > + > + while (rd < len) { > + ret = read(fd, buf + rd, len - rd); > +@@ -1188,8 +1188,8 @@ int mtd_write(libmtd_t desc, const struct mtd_dev_info *mtd, int fd, int eb, > + if (data) { > + /* Seek to the beginning of the eraseblock */ > + if (lseek(fd, seek, SEEK_SET) != seek) > +- return sys_errmsg("cannot seek mtd%d to offset %"PRIdoff_t, > +- mtd->mtd_num, seek); > ++ return sys_errmsg("cannot seek mtd%d to offset %lld", > ++ mtd->mtd_num, (long long)seek); > + ret = write(fd, data, len); > + if (ret != len) > + return sys_errmsg("cannot write %d bytes to mtd%d " > +diff --git a/misc-utils/flash_erase.c b/misc-utils/flash_erase.c > +index 0c9449f..ec4b2e1 100644 > +--- a/misc-utils/flash_erase.c > ++++ b/misc-utils/flash_erase.c > +@@ -53,8 +53,8 @@ int target_endian = __BYTE_ORDER; > + static void show_progress(struct mtd_dev_info *mtd, off_t start, int eb, > + int eb_start, int eb_cnt) > + { > +- bareverbose(!quiet, "\rErasing %d Kibyte @ %"PRIxoff_t" -- %2i %% complete ", > +- mtd->eb_size / 1024, start, ((eb - eb_start) * 100) / eb_cnt); > ++ bareverbose(!quiet, "\rErasing %d Kibyte @ %llx -- %2i %% complete ", > ++ mtd->eb_size / 1024, (unsigned long long)start, ((eb - eb_start) * 100) / eb_cnt); > + fflush(stdout); > + } > + > +@@ -210,7 +210,7 @@ int main(int argc, char *argv[]) > + if (!noskipbad) { > + int ret = mtd_is_bad(&mtd, fd, eb); > + if (ret > 0) { > +- verbose(!quiet, "Skipping bad block at %08"PRIxoff_t, offset); > ++ verbose(!quiet, "Skipping bad block at %08llx", (unsigned long long)offset); > + continue; > + } else if (ret < 0) { > + if (errno == EOPNOTSUPP) { > +diff --git a/misc-utils/flash_otp_write.c b/misc-utils/flash_otp_write.c > +index b02d0b0..04c96c6 100644 > +--- a/misc-utils/flash_otp_write.c > ++++ b/misc-utils/flash_otp_write.c > +@@ -76,7 +76,7 @@ int main(int argc,char *argv[]) > + return errno; > + } > + > +- printf("Writing OTP user data on %s at offset 0x%"PRIxoff_t"\n", argv[2], offset); > ++ printf("Writing OTP user data on %s at offset 0x%llx\n", argv[2], (unsigned long long)offset); > + > + if (mtd_type_is_nand_user(&mtdInfo)) > + len = mtdInfo.writesize; > +diff --git a/misc-utils/ftl_check.c b/misc-utils/ftl_check.c > +index a853cf4..e854922 100644 > +--- a/misc-utils/ftl_check.c > ++++ b/misc-utils/ftl_check.c > +@@ -131,7 +131,7 @@ static void check_partition(int fd) > + perror("read failed"); > + break; > + } > +- printf("\nErase unit %"PRIdoff_t":\n", i); > ++ printf("\nErase unit %lld:\n", (long long)i); > + if ((hdr2.FormattedSize != hdr.FormattedSize) || > + (hdr2.NumEraseUnits != hdr.NumEraseUnits) || > + (hdr2.SerialNumber != hdr.SerialNumber)) > +diff --git a/misc-utils/mtd_debug.c b/misc-utils/mtd_debug.c > +index ac37e23..d65ad36 100644 > +--- a/misc-utils/mtd_debug.c > ++++ b/misc-utils/mtd_debug.c > +@@ -160,7 +160,7 @@ retry: > + if (buf != NULL) > + free(buf); > + close(outfd); > +- printf("Copied %zu bytes from address 0x%.8"PRIxoff_t" in flash to %s\n", len, offset, filename); > ++ printf("Copied %zu bytes from address 0x%.8llx in flash to %s\n", len, (unsigned long long)offset, filename); > + return 0; > + > + err2: > +@@ -225,7 +225,7 @@ retry: > + if (buf != NULL) > + free(buf); > + fclose(fp); > +- printf("Copied %d bytes from %s to address 0x%.8"PRIxoff_t" in flash\n", len, filename, offset); > ++ printf("Copied %d bytes from %s to address 0x%.8llx in flash\n", len, filename, (unsigned long long)offset); > + return 0; > + } > + > +diff --git a/misc-utils/serve_image.c b/misc-utils/serve_image.c > +index f2475d6..6c8c8fb 100644 > +--- a/misc-utils/serve_image.c > ++++ b/misc-utils/serve_image.c > +@@ -129,8 +129,8 @@ int main(int argc, char **argv) > + } > + > + if (st.st_size % erasesize) { > +- fprintf(stderr, "Image size %" PRIdoff_t " bytes is not a multiple of erasesize %d bytes\n", > +- st.st_size, erasesize); > ++ fprintf(stderr, "Image size %lld bytes is not a multiple of erasesize %d bytes\n", > ++ (long long)st.st_size, erasesize); > + exit(1); > + } > + image = mmap(NULL, st.st_size, PROT_READ, MAP_PRIVATE, rfd, 0); > +diff --git a/tests/fs-tests/integrity/integck.c b/tests/fs-tests/integrity/integck.c > +index 84753d6..0a7f142 100644 > +--- a/tests/fs-tests/integrity/integck.c > ++++ b/tests/fs-tests/integrity/integck.c > +@@ -897,8 +897,8 @@ static ssize_t file_write_data(struct file_info *file, int fd, off_t offset, > + remains = size; > + actual = 0; > + written = IO_BUFFER_SIZE; > +- v("write %zd bytes, offset %"PRIdoff_t", file %s", > +- size, offset, get_file_name(file)); > ++ v("write %zd bytes, offset %lld, file %s", > ++ size, (long long)offset, get_file_name(file)); > + while (remains) { > + /* Fill up buffer with random data */ > + if (written < IO_BUFFER_SIZE) { > +diff --git a/tests/mtd-tests/nandpagetest.c b/tests/mtd-tests/nandpagetest.c > +index c6812df..465e548 100644 > +--- a/tests/mtd-tests/nandpagetest.c > ++++ b/tests/mtd-tests/nandpagetest.c > +@@ -232,8 +232,8 @@ static int verify_eraseblock(int ebnum) > + return err; > + > + if (lseek(fd, addr, SEEK_SET) != addr) { > +- fprintf(stderr, "cannot seek mtd%d to offset %"PRIdloff_t, > +- mtd.mtd_num, addr); > ++ fprintf(stderr, "cannot seek mtd%d to offset %lld", > ++ mtd.mtd_num, (long long)addr); > + return -1; > + } > + > +diff --git a/tests/ubi-tests/integ.c b/tests/ubi-tests/integ.c > +index 26c2ce5..1cd0649 100644 > +--- a/tests/ubi-tests/integ.c > ++++ b/tests/ubi-tests/integ.c > +@@ -243,7 +243,7 @@ static void check_erase_block(struct erase_block_info *erase_block, int fd) > + while (size) > + if (read_buffer[--size] != 0xff) { > + fprintf(stderr, "block no. = %d\n" , erase_block->block_number); > +- fprintf(stderr, "offset = %"PRIdoff_t"\n" , gap_start); > ++ fprintf(stderr, "offset = %lld\n" , (long long)gap_start); > + fprintf(stderr, "size = %ld\n" , (long) bytes_read); > + error_exit("verify 0xff failed"); > + } > +@@ -254,7 +254,7 @@ static void check_erase_block(struct erase_block_info *erase_block, int fd) > + errno = 0; > + bytes_read = read(fd, read_buffer, w->size); > + if (bytes_read != w->size) { > +- fprintf(stderr, "offset = %"PRIdoff_t"\n" , w->offset); > ++ fprintf(stderr, "offset = %lld\n" , (long long)w->offset); > + fprintf(stderr, "size = %ld\n" , (long) w->size); > + fprintf(stderr, "bytes_read = %ld\n" , (long) bytes_read); > + error_exit("read failed"); > +@@ -279,7 +279,7 @@ static void check_erase_block(struct erase_block_info *erase_block, int fd) > + while (size) > + if (read_buffer[--size] != 0xff) { > + fprintf(stderr, "block no. = %d\n" , erase_block->block_number); > +- fprintf(stderr, "offset = %"PRIdoff_t"\n" , gap_start); > ++ fprintf(stderr, "offset = %lld\n" , (long long)gap_start); > + fprintf(stderr, "size = %ld\n" , (long) bytes_read); > + error_exit("verify 0xff failed!"); > + } > +diff --git a/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c b/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c > +index c916f48..f0237ab 100644 > +--- a/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c > ++++ b/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c > +@@ -772,11 +772,11 @@ int write_leb(int lnum, int len, void *buf) > + return sys_err_msg("ubi_leb_change_start failed"); > + > + if (lseek(out_fd, pos, SEEK_SET) != pos) > +- return sys_err_msg("lseek failed seeking %"PRIdoff_t, pos); > ++ return sys_err_msg("lseek failed seeking %lld", (long long)pos); > + > + if (write(out_fd, buf, c->leb_size) != c->leb_size) > +- return sys_err_msg("write failed writing %d bytes at pos %"PRIdoff_t, > +- c->leb_size, pos); > ++ return sys_err_msg("write failed writing %d bytes at pos %lld", > ++ c->leb_size, (long long)pos); > + > + return 0; > + } > +-- > +2.7.4 > + > diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0003-Makefile.am-only-build-ubi-utils.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0003-Makefile.am-only-build-ubi-utils.patch > new file mode 100644 > index 0000000..08c53d1 > --- /dev/null > +++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0003-Makefile.am-only-build-ubi-utils.patch > @@ -0,0 +1,34 @@ > +From 139d93bc405272a3261d57be26da842e737fe4d0 Mon Sep 17 00:00:00 2001 > +From: Andrea Adami <andrea.adami@gmail.com> > +Date: Sun, 28 Jan 2018 23:10:34 +0100 > +Subject: [PATCH 3/4] Makefile.am: only build ubi-utils > + > +We only target the ubi-utils, static, small. > + > +Upstream-Status: Inappropriate [embedded specific] > + > +Signed-off-by: Andrea Adami <andrea.adami@gmail.com> > +--- > + Makefile.am | 6 +++--- > + 1 file changed, 3 insertions(+), 3 deletions(-) > + > +diff --git a/Makefile.am b/Makefile.am > +index 5a6e77c..98715dd 100644 > +--- a/Makefile.am > ++++ b/Makefile.am > +@@ -34,9 +34,9 @@ EXTRA_DIST += $(GLOBAL_HEADER) $(GLOBAL_EXTRA) > + > + include lib/Makemodule.am > + include ubi-utils/Makemodule.am > +-include misc-utils/Makemodule.am > +-include nand-utils/Makemodule.am > +-include nor-utils/Makemodule.am > ++#include misc-utils/Makemodule.am > ++#include nand-utils/Makemodule.am > ++#include nor-utils/Makemodule.am > + > + if BUILD_UBIFS > + include ubifs-utils/Makemodule.am > +-- > +2.7.4 > + > diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0004-mtd-utils-common.h-no-features.h-for-klibc-builds.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0004-mtd-utils-common.h-no-features.h-for-klibc-builds.patch > new file mode 100644 > index 0000000..5da05fa > --- /dev/null > +++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0004-mtd-utils-common.h-no-features.h-for-klibc-builds.patch > @@ -0,0 +1,38 @@ > +From ae1cf6d0eb1833e46549328a4473222c259723d7 Mon Sep 17 00:00:00 2001 > +From: Andrea Adami <andrea.adami@gmail.com> > +Date: Thu, 1 Feb 2018 00:25:00 +0100 > +Subject: [PATCH 4/4] mtd-utils: common.h: no features.h for klibc builds > + > +Add guard around features.h to fix missing include (here first error): > + > + ../git/include/common.h:29:10: > + fatal error: features.h: No such file or directory > + #include <features.h> > + ^~~~~~~~~~~~ > + compilation terminated > + > +Upstream-Status: Submitted > + > +Signed-off-by: Andrea Adami <andrea.adami@gmail.com> > +--- > + include/common.h | 3 +++ > + 1 file changed, 3 insertions(+) > + > +diff --git a/include/common.h b/include/common.h > +index 642c212..f7c71fe 100644 > +--- a/include/common.h > ++++ b/include/common.h > +@@ -26,7 +26,10 @@ > + #include <string.h> > + #include <fcntl.h> > + #include <errno.h> > ++#if defined(__KLIBC__) > ++#else > + #include <features.h> > ++#endif > + #include <inttypes.h> > + #include <unistd.h> > + #include <sys/sysmacros.h> > +-- > +2.7.4 > + > diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_1.5.2.bb b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_2.0.2.bb > similarity index 64% > rename from meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_1.5.2.bb > rename to meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_2.0.2.bb > index abb0d4b..85bc372 100644 > --- a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_1.5.2.bb > +++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_2.0.2.bb > @@ -7,30 +7,30 @@ LICENSE = "GPLv2+" > LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ > file://include/common.h;beginline=1;endline=17;md5=ba05b07912a44ea2bf81ce409380049c" > > -inherit klibc > +inherit autotools pkgconfig klibc > > -SRCREV = "aea36417067dade75192bafa03af70b6eb2677b1" > +SRCREV = "bc63d36e39f389c8c17f6a8e9db47f2acc884659" > SRC_URI = "git://git.infradead.org/mtd-utils.git \ > - file://0001-Makefile-build-ubi-utils-only.patch \ > - file://0002-common.mk-for-klibc-CC-is-klcc.patch \ > - file://0003-libubi.c-add-klibc-specific-fixes-for-ioctl.patch \ > - file://0004-Restore-compatibility-to-dietlibc-klibc-musl-libc-af.patch \ > - file://0005-common.h-more-workarounds-for-klibc-compatibility.patch \ > - file://0006-libiniparser-remove-unused-function-needing-float.patch \ > - file://0007-mtd-utils-common.c-convert-to-integer-arithmetic.patch \ > - file://0008-ubi-utils-ubiformat.c-convert-to-integer-arithmetic.patch \ > - file://0009-Eliminate-warnings-about-implicit-non-const-casting-.patch \ > + file://0001-Add-simple-getline-implementation-to-libmissing.patch \ > + file://0002-Instead-of-doing-preprocessor-magic-just-output-off_.patch \ > + file://0003-Makefile.am-only-build-ubi-utils.patch \ > + file://0004-mtd-utils-common.h-no-features.h-for-klibc-builds.patch \ > " > > S = "${WORKDIR}/git/" > > -EXTRA_OEMAKE = "'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'CFLAGS=${CFLAGS} -I${S}include -DWITHOUT_XATTR' 'BUILDDIR=${S}'" > +EXTRA_OECONF += "--disable-tests --without-jffs --without-ubifs" > + > +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'xattr', d)}" > +PACKAGECONFIG[xattr] = ",,acl," > + > +EXTRA_OEMAKE = "'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'CFLAGS=${CFLAGS} ${@bb.utils.contains('PACKAGECONFIG', 'xattr', '', '-DWITHOUT_XATTR', d)} -I${S}/include' 'BUILDDIR=${S}'" > > do_install () { > oe_runmake install DESTDIR=${D} SBINDIR=${sbindir} MANDIR=${mandir} INCLUDEDIR=${includedir} > } > > -PACKAGES = "ubi-utils-klibc-dbg" > +PACKAGES = "ubi-utils-klibc-dbg ubi-utils-klibc-doc" > > PACKAGES =+ "mtdinfo-klibc ubiattach-klibc ubiblock-klibc ubicrc32-klibc ubidetach-klibc \ > ubiformat-klibc ubimkvol-klibc ubinfo-klibc ubinize-klibc ubirename-klibc \ ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [meta-initramfs][PATCH] ubi-utils-klibc: update from v. 1.5.2 to 2.0.2 2018-05-17 14:15 ` akuster808 @ 2018-05-17 15:31 ` Andrea Adami 2018-05-17 16:09 ` Andrea Adami 0 siblings, 1 reply; 6+ messages in thread From: Andrea Adami @ 2018-05-17 15:31 UTC (permalink / raw) To: akuster808; +Cc: OpenEmbedded Devel List [-- Attachment #1: Type: text/plain, Size: 61240 bytes --] On Thu, May 17, 2018 at 4:15 PM, akuster808 <akuster808@gmail.com> wrote: > > > On 05/13/2018 03:16 PM, Andrea Adami wrote: >> Update to new version and drop accepted patches. >> >> Signed-off-by: Andrea Adami <andrea.adami@gmail.com> >> --- >> .../0001-Makefile-build-ubi-utils-only.patch | 87 ------ >> .../0002-common.mk-for-klibc-CC-is-klcc.patch | 27 -- >> ...bubi.c-add-klibc-specific-fixes-for-ioctl.patch | 76 ----- >> ...patibility-to-dietlibc-klibc-musl-libc-af.patch | 88 ------ >> ...-more-workarounds-for-klibc-compatibility.patch | 52 ---- >> ...rser-remove-unused-function-needing-float.patch | 85 ------ >> ...ls-common.c-convert-to-integer-arithmetic.patch | 64 ---- >> ...ubiformat.c-convert-to-integer-arithmetic.patch | 44 --- >> ...arnings-about-implicit-non-const-casting-.patch | 48 --- >> ...mple-getline-implementation-to-libmissing.patch | 187 ++++++++++++ >> ...doing-preprocessor-magic-just-output-off_.patch | 326 +++++++++++++++++++++ >> .../0003-Makefile.am-only-build-ubi-utils.patch | 34 +++ >> ...s-common.h-no-features.h-for-klibc-builds.patch | 38 +++ >> ...ils-klibc_1.5.2.bb => ubi-utils-klibc_2.0.2.bb} | 26 +- > > This fails on qemuarm with the following error. > > | ../git/include/libmissing.h:7:10: fatal error: execinfo.h: No such > file or directory > | #include <execinfo.h> > | ^~~~~~~~~~~~ > | compilation terminated. > | Makefile:2452: recipe for target 'ubi-utils/ubimkvol.o' failed > | make: *** [ubi-utils/ubimkvol.o] Error 1 > | Makefile:2452: recipe for target 'ubi-utils/ubicrc32.o' failed > | make: *** [ubi-utils/ubicrc32.o] Error 1 > | In file included from ../git/include/common.h:38:0, > | from ../git/ubi-utils/ubiupdatevol.c:40: > | ../git/include/libmissing.h:7:10: fatal error: execinfo.h: No such > file or directory > | #include <execinfo.h> > | ^~~~~~~~~~~~ > | compilation terminated. > | Makefile:2452: recipe for target 'ubi-utils/ubiupdatevol.o' failed > | make: *** [ubi-utils/ubiupdatevol.o] Error 1 > | ERROR: oe_runmake failed > > http://errors.yoctoproject.org/Errors/Build/60410/ > > - Armin Hi Armin, thanks for testing. Strange, I did cross-build for all archs, maybe some oe-core change. I'll compare with my log (attached the quemuarm). Cheers Andrea > >> 14 files changed, 598 insertions(+), 584 deletions(-) >> delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0001-Makefile-build-ubi-utils-only.patch >> delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0002-common.mk-for-klibc-CC-is-klcc.patch >> delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0003-libubi.c-add-klibc-specific-fixes-for-ioctl.patch >> delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0004-Restore-compatibility-to-dietlibc-klibc-musl-libc-af.patch >> delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0005-common.h-more-workarounds-for-klibc-compatibility.patch >> delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0006-libiniparser-remove-unused-function-needing-float.patch >> delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0007-mtd-utils-common.c-convert-to-integer-arithmetic.patch >> delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0008-ubi-utils-ubiformat.c-convert-to-integer-arithmetic.patch >> delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0009-Eliminate-warnings-about-implicit-non-const-casting-.patch >> create mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0001-Add-simple-getline-implementation-to-libmissing.patch >> create mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0002-Instead-of-doing-preprocessor-magic-just-output-off_.patch >> create mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0003-Makefile.am-only-build-ubi-utils.patch >> create mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0004-mtd-utils-common.h-no-features.h-for-klibc-builds.patch >> rename meta-initramfs/recipes-devtools/mtd/{ubi-utils-klibc_1.5.2.bb => ubi-utils-klibc_2.0.2.bb} (64%) >> >> 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 6ac2cca..0000000 >> --- 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 @@ >> -From 1c989e4c36d0bf76ab444f984bc73b98eeacd03f Mon Sep 17 00:00:00 2001 >> -From: Andrea Adami <andrea.adami@gmail.com> >> -Date: Sun, 29 Jun 2014 00:32:29 +0200 >> -Subject: [PATCH 1/9] Makefile: build ubi-utils only >> - >> -We build all the static ubi-utils but actually only ubiattach is needed in >> -a minimalistic initramfs for the mount of ubi volumes. >> - >> -More fixes are needed in order to build the full mtd-utils. >> -The first issue is: >> - >> -| mkfs.jffs2.c:64:20: fatal error: libgen.h: No such file or directory >> -| #include <libgen.h> >> - >> -Removing the include then the second error is: >> - >> -| mkfs.jffs2.c:1570:22: error: '_SC_PAGESIZE' undeclared >> -| (first use in this function) >> -| page_size = sysconf(_SC_PAGESIZE); >> - >> -Upstream-Status: Inappropriate [embedded specific] >> - >> -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> >> ---- >> - Makefile | 26 ++------------------------ >> - 1 file changed, 2 insertions(+), 24 deletions(-) >> - >> -diff --git a/Makefile b/Makefile >> -index 3ce8587..8b79f71 100644 >> ---- a/Makefile >> -+++ b/Makefile >> -@@ -16,28 +16,11 @@ endif >> - >> - TESTS = tests >> - >> --MTD_BINS = \ >> -- ftl_format flash_erase nanddump doc_loadbios \ >> -- ftl_check mkfs.jffs2 flash_lock flash_unlock \ >> -- flash_otp_info flash_otp_dump flash_otp_lock flash_otp_write \ >> -- mtd_debug flashcp nandwrite nandtest mtdpart \ >> -- jffs2dump \ >> -- nftldump nftl_format docfdisk \ >> -- rfddump rfdformat \ >> -- serve_image recv_image \ >> -- sumtool jffs2reader >> - UBI_BINS = \ >> - ubiupdatevol ubimkvol ubirmvol ubicrc32 ubinfo ubiattach \ >> - ubidetach ubinize ubiformat ubirename mtdinfo ubirsvol ubiblock >> - >> --BINS = $(MTD_BINS) >> --BINS += mkfs.ubifs/mkfs.ubifs >> --BINS += $(addprefix ubi-utils/,$(UBI_BINS)) >> --SCRIPTS = flash_eraseall >> -- >> --TARGETS = $(BINS) >> --TARGETS += lib/libmtd.a >> --TARGETS += ubi-utils/libubi.a >> -+BINS = $(addprefix ubi-utils/,$(UBI_BINS)) >> - >> - OBJDEPS = $(BUILDDIR)/include/version.h >> - >> -@@ -61,12 +44,9 @@ endif >> - rm -f $(BUILDDIR)/include/version.h >> - $(MAKE) -C $(TESTS) clean >> - >> --install:: $(addprefix $(BUILDDIR)/,${BINS}) ${SCRIPTS} >> -+install:: $(addprefix $(BUILDDIR)/,${BINS}) >> - mkdir -p ${DESTDIR}/${SBINDIR} >> - install -m 0755 $^ ${DESTDIR}/${SBINDIR}/ >> -- mkdir -p ${DESTDIR}/${MANDIR}/man1 >> -- install -m 0644 mkfs.jffs2.1 ${DESTDIR}/${MANDIR}/man1/ >> -- -gzip -9f ${DESTDIR}/${MANDIR}/man1/*.1 >> - >> - tests:: >> - $(MAKE) -C $(TESTS) >> -@@ -91,8 +71,6 @@ LDLIBS_mkfs.jffs2 = -lz $(LZOLDLIBS) >> - LDFLAGS_jffs2reader = $(ZLIBLDFLAGS) $(LZOLDFLAGS) >> - LDLIBS_jffs2reader = -lz $(LZOLDLIBS) >> - >> --$(foreach v,$(MTD_BINS),$(eval $(call mkdep,,$(v)))) >> -- >> - # >> - # Common libmtd >> - # >> --- >> -2.7.4 >> - >> 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 c23d11f..0000000 >> --- 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 @@ >> -From 89c76bbe82a2029a25b0654eb0a1d0b22d6e6877 Mon Sep 17 00:00:00 2001 >> -From: Andrea Adami <andrea.adami@gmail.com> >> -Date: Sun, 29 Jun 2014 00:37:28 +0200 >> -Subject: [PATCH 2/9] common.mk: for klibc $(CC) is klcc >> - >> -Do not hardcode: assign the value to the variable if it is not already defined. >> - >> -Upstream-Status: Submitted >> - >> -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> >> ---- >> - common.mk | 2 +- >> - 1 file changed, 1 insertion(+), 1 deletion(-) >> - >> -diff --git a/common.mk b/common.mk >> -index ba87377..126d11a 100644 >> ---- a/common.mk >> -+++ b/common.mk >> -@@ -1,4 +1,4 @@ >> --CC := $(CROSS)gcc >> -+CC ?= $(CROSS)gcc >> - AR := $(CROSS)ar >> - RANLIB := $(CROSS)ranlib >> - >> --- >> -2.7.4 >> - >> 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 9ad4a5b..0000000 >> --- 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 @@ >> -From fecbb7056d621a30f7106e67f5fe209763571b70 Mon Sep 17 00:00:00 2001 >> -From: Andrea Adami <andrea.adami@gmail.com> >> -Date: Sun, 29 Jun 2014 00:40:15 +0200 >> -Subject: [PATCH 3/9] libubi.c: add klibc specific fixes for ioctl >> - >> -First issue is that ioctl() in klibc doesn't expect a constant as arg3. >> -Second issue is that arg3 in klibc ioctl() implementation is not optional. >> - >> -Fixes: >> - >> -| ubi-utils/libubi.c: In function 'do_attach': >> -| ubi-utils/libubi.c:698:8: warning: passing argument 3 of 'ioctl' discards >> -| 'const' qualifier from pointer target type >> -| ret = ioctl(fd, UBI_IOCATT, r); >> -| ^ >> -| In file included from ubi-utils/libubi.c:32:0: >> -| .../lib/klibc/include/sys/ioctl.h:15:14: note: expected 'void *' but argument >> -| is of type 'const struct ubi_attach_req *' >> -| __extern int ioctl(int, int, void *); >> -| ^ >> - >> -| ubi-utils/libubi.c: In function 'ubi_vol_block_create': >> -| ubi-utils/libubi.c:1118:9: error: too few arguments to function 'ioctl' >> -| return ioctl(fd, UBI_IOCVOLCRBLK); >> -| ^ >> -| In file included from ubi-utils/libubi.c:32:0: >> -| .../lib/klibc/include/sys/ioctl.h:15:14: note: declared here >> -| __extern int ioctl(int, int, void *); >> -| ^ >> -| ubi-utils/libubi.c: In function 'ubi_vol_block_remove': >> -| ubi-utils/libubi.c:1123:9: error: too few arguments to function 'ioctl' >> -| return ioctl(fd, UBI_IOCVOLRMBLK); >> -| ^ >> -| In file included from ubi-utils/libubi.c:32:0: >> -| .../usr/lib/klibc/include/sys/ioctl.h:15:14: note: declared here >> -| __extern int ioctl(int, int, void *); >> -| ^ >> - >> -Upstream-Status: Accepted >> - >> -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> >> ---- >> - ubi-utils/libubi.c | 6 +++--- >> - 1 file changed, 3 insertions(+), 3 deletions(-) >> - >> -diff --git a/ubi-utils/libubi.c b/ubi-utils/libubi.c >> -index 97c0434..2b49833 100644 >> ---- a/ubi-utils/libubi.c >> -+++ b/ubi-utils/libubi.c >> -@@ -687,7 +687,7 @@ void libubi_close(libubi_t desc) >> - * success and %-1 in case of failure. @r->ubi_num contains newly created UBI >> - * device number. >> - */ >> --static int do_attach(const char *node, const struct ubi_attach_req *r) >> -+static int do_attach(const char *node, struct ubi_attach_req *r) >> - { >> - int fd, ret; >> - >> -@@ -1115,12 +1115,12 @@ int ubi_rsvol(libubi_t desc, const char *node, int vol_id, long long bytes) >> - >> - int ubi_vol_block_create(int fd) >> - { >> -- return ioctl(fd, UBI_IOCVOLCRBLK); >> -+ return ioctl(fd, UBI_IOCVOLCRBLK, NULL); >> - } >> - >> - int ubi_vol_block_remove(int fd) >> - { >> -- return ioctl(fd, UBI_IOCVOLRMBLK); >> -+ return ioctl(fd, UBI_IOCVOLRMBLK, NULL); >> - } >> - >> - int ubi_update_start(libubi_t desc, int fd, long long bytes) >> --- >> -2.7.4 >> - >> 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 2f31fb4..0000000 >> --- 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 @@ >> -From b668cb75cb7e72ff92055209130d4cd4b3cacbdb Mon Sep 17 00:00:00 2001 >> -From: Thorsten Glaser <tg@mirbsd.org> >> -Date: Fri, 20 Jun 2014 10:56:27 +0000 >> -Subject: [PATCH 4/9] Restore compatibility to dietlibc, klibc, musl libc after >> - commit 4f1b108 >> -MIME-Version: 1.0 >> -Content-Type: text/plain; charset=UTF-8 >> -Content-Transfer-Encoding: 8bit >> - >> -Each C library has their own way to define off_t, and the <features.h> >> -header is nonstandard and specific to the GNU libc and those that clone >> -it (uClibc). Fefe’s dietlibc uses different flags, and klibc always uses >> -a 64-bit off_t (like the BSDs); musl libc cannot be recognised using cpp >> -instructions, so we assume 64 bit there (and on unknown C libraries) and >> -leave it to the user to submit a follow-up fix if we guess wrong. I also >> -added a static assertion to verify the 64 bit guess is correct. >> - >> -It would be really better using a configure script for this instead. >> - >> -Fixes: >> -| CC lib/libmtd.o >> -| In file included from ubi-utils/ubiutils-common.c:35:0: >> -| ./include/common.h:29:22: fatal error: features.h: No such file or directory >> -| #include <features.h> >> -| ^ >> -| compilation terminated. >> - >> -Upstream-Status: Submitted >> - >> -Signed-off-by: Thorsten Glaser <tg@mirbsd.org> >> -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> >> ---- >> - include/common.h | 24 ++++++++++++++++++++++++ >> - 1 file changed, 24 insertions(+) >> - >> -diff --git a/include/common.h b/include/common.h >> -index fb0ca83..5a20964 100644 >> ---- a/include/common.h >> -+++ b/include/common.h >> -@@ -26,7 +26,9 @@ >> - #include <string.h> >> - #include <fcntl.h> >> - #include <errno.h> >> -+#if defined(__GLIBC__) || defined(__UCLIBC__) >> - #include <features.h> >> -+#endif >> - #include <inttypes.h> >> - #include "version.h" >> - >> -@@ -67,6 +69,21 @@ extern "C" { >> - #endif >> - >> - /* define a print format specifier for off_t */ >> -+#if defined(__KLIBC__) >> -+/* always 64 bit on klibc */ >> -+#define PRIxoff_t PRIx64 >> -+#define PRIdoff_t PRId64 >> -+#elif defined(__dietlibc__) >> -+/* depends on compiler flags on dietlibc */ >> -+#if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64) >> -+#define PRIxoff_t PRIx64 >> -+#define PRIdoff_t PRId64 >> -+#else >> -+#define PRIxoff_t "l"PRIx32 >> -+#define PRIdoff_t "l"PRId32 >> -+#endif >> -+#elif defined(__GLIBC__) || defined(__UCLIBC__) >> -+/* depends on compiler flags on glibc and uClibc */ >> - #ifdef __USE_FILE_OFFSET64 >> - #define PRIxoff_t PRIx64 >> - #define PRIdoff_t PRId64 >> -@@ -74,6 +91,13 @@ extern "C" { >> - #define PRIxoff_t "l"PRIx32 >> - #define PRIdoff_t "l"PRId32 >> - #endif >> -+#else >> -+/* unknown libc or musl */ >> -+#define PRIxoff_t PRIx64 >> -+#define PRIdoff_t PRId64 >> -+/* verify our guess of 64 bit is correct */ >> -+static char __PRIxoff_t_static_assert[sizeof(off_t) == 8 ? 1 : -1]; >> -+#endif >> - >> - /* Verbose messages */ >> - #define bareverbose(verbose, fmt, ...) do { \ >> --- >> -2.7.4 >> - >> 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 8309a72..0000000 >> --- 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 @@ >> -From 5d4a66b502003ef385dab31a17012246407e7364 Mon Sep 17 00:00:00 2001 >> -From: Andrea Adami <andrea.adami@gmail.com> >> -Date: Sun, 29 Jun 2014 00:44:03 +0200 >> -Subject: [PATCH 5/9] common.h: more workarounds for klibc compatibility >> - >> -Patch is addressing two issues: >> -* First, Klibc doesn't have rpmatch(). >> -* Second, Klibc lacks getline() >> - >> -Fixes: >> -| LD ubi-utils/ubiformat >> -| .../git/ubi-utils/ubiformat.o: In function `prompt': >> -| .../git/./include/common.h:157: undefined reference to `getline' >> -| .../git/./include/common.h:164: undefined reference to `rpmatch' >> -| .../git/./include/common.h:157: undefined reference to `getline' >> -| .../git/./include/common.h:164: undefined reference to `rpmatch' >> - >> -Upstream-Status: Submitted >> - >> -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> >> ---- >> - include/common.h | 8 +++++--- >> - 1 file changed, 5 insertions(+), 3 deletions(-) >> - >> -diff --git a/include/common.h b/include/common.h >> -index 5a20964..2f51e1c 100644 >> ---- a/include/common.h >> -+++ b/include/common.h >> -@@ -161,15 +161,17 @@ static inline int __rpmatch(const char *resp) >> - */ >> - static inline bool prompt(const char *msg, bool def) >> - { >> -- char *line = NULL; >> -- size_t len; >> -+ char *line; >> - bool ret = def; >> - >> -+ const int sizeof_line = 2; >> -+ line = malloc(sizeof_line); >> -+ >> - do { >> - normsg_cont("%s (%c/%c) ", msg, def ? 'Y' : 'y', def ? 'n' : 'N'); >> - fflush(stdout); >> - >> -- while (getline(&line, &len, stdin) == -1) { >> -+ while (fgets(line, sizeof_line, stdin) == NULL) { >> - printf("failed to read prompt; assuming '%s'\n", >> - def ? "yes" : "no"); >> - break; >> --- >> -2.7.4 >> - >> 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 d046f95..0000000 >> --- 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 @@ >> -From 2af30e9b2988111e45ed6ea6af55e49ec7cb1cb1 Mon Sep 17 00:00:00 2001 >> -From: Andrea Adami <andrea.adami@gmail.com> >> -Date: Sun, 29 Jun 2014 00:44:57 +0200 >> -Subject: [PATCH 6/9] libiniparser: remove unused function needing float >> - >> -Fixes: >> -| LD ubi-utils/ubiformat >> -| .../git/ubi-utils/libiniparser.a(libiniparser.o): In function >> -| ` LD ubi-utils/ubirename >> -| iniparser_getdouble': >> -| .../git/ubi-utils/libiniparser.c:336: undefined reference to `atof' >> - >> -Grep doesn't reveal any occurrence of iniparser_getdouble(), using atof() so >> -remove it: floating-point is not supported in klibc >> - >> -Upstream-Status: Accepted >> - >> -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> >> ---- >> - ubi-utils/include/libiniparser.h | 15 --------------- >> - ubi-utils/libiniparser.c | 22 ---------------------- >> - 2 files changed, 37 deletions(-) >> - >> -diff --git a/ubi-utils/include/libiniparser.h b/ubi-utils/include/libiniparser.h >> -index be3c667..abd77aa 100644 >> ---- a/ubi-utils/include/libiniparser.h >> -+++ b/ubi-utils/include/libiniparser.h >> -@@ -158,21 +158,6 @@ int iniparser_getint(dictionary * d, const char * key, int notfound); >> - >> - /*-------------------------------------------------------------------------*/ >> - /** >> -- @brief Get the string associated to a key, convert to a double >> -- @param d Dictionary to search >> -- @param key Key string to look for >> -- @param notfound Value to return in case of error >> -- @return double >> -- >> -- This function queries a dictionary for a key. A key as read from an >> -- ini file is given as "section:key". If the key cannot be found, >> -- the notfound value is returned. >> -- */ >> --/*--------------------------------------------------------------------------*/ >> --double iniparser_getdouble(dictionary * d, char * key, double notfound); >> -- >> --/*-------------------------------------------------------------------------*/ >> --/** >> - @brief Get the string associated to a key, convert to a boolean >> - @param d Dictionary to search >> - @param key Key string to look for >> -diff --git a/ubi-utils/libiniparser.c b/ubi-utils/libiniparser.c >> -index 898f57f..ba70c08 100644 >> ---- a/ubi-utils/libiniparser.c >> -+++ b/ubi-utils/libiniparser.c >> -@@ -316,28 +316,6 @@ int iniparser_getint(dictionary * d, const char * key, int notfound) >> - >> - /*-------------------------------------------------------------------------*/ >> - /** >> -- @brief Get the string associated to a key, convert to a double >> -- @param d Dictionary to search >> -- @param key Key string to look for >> -- @param notfound Value to return in case of error >> -- @return double >> -- >> -- This function queries a dictionary for a key. A key as read from an >> -- ini file is given as "section:key". If the key cannot be found, >> -- the notfound value is returned. >> -- */ >> --/*--------------------------------------------------------------------------*/ >> --double iniparser_getdouble(dictionary * d, char * key, double notfound) >> --{ >> -- char * str ; >> -- >> -- str = iniparser_getstring(d, key, INI_INVALID_KEY); >> -- if (str==INI_INVALID_KEY) return notfound ; >> -- return atof(str); >> --} >> -- >> --/*-------------------------------------------------------------------------*/ >> --/** >> - @brief Get the string associated to a key, convert to a boolean >> - @param d Dictionary to search >> - @param key Key string to look for >> --- >> -2.7.4 >> - >> 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 36b012f..0000000 >> --- 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 @@ >> -From 41e7c76b0853bf5241b38b8167dfd57c27fef1eb Mon Sep 17 00:00:00 2001 >> -From: Andrea Adami <andrea.adami@gmail.com> >> -Date: Sun, 28 Jan 2018 21:47:59 +0100 >> -Subject: [PATCH 7/9] mtd-utils: common.c: convert to integer arithmetic >> - >> -We use floating point just to print out KiB, MiB, GiB. >> -Avoid that to be klibc friendly. >> - >> -Fixes compilation for aarch64 against klibc: >> - >> -error: '-mgeneral-regs-only' is incompatible with floating-point argument >> -| printf("%s%.1f GiB", p, (double)bytes / (1024 * 1024 * 1024)); >> -etc. >> - >> -Note: >> -* In the KiB case, we could apparently multiply by 100 before dividing >> - without risking overflow. This code simply avoids multiplications. >> - >> -Upstream-Status: Submitted >> - >> -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> >> ---- >> - ubi-utils/ubiutils-common.c | 18 ++++++++++++------ >> - 1 file changed, 12 insertions(+), 6 deletions(-) >> - >> -diff --git a/ubi-utils/ubiutils-common.c b/ubi-utils/ubiutils-common.c >> -index 6609a6b..0ded2a4 100644 >> ---- a/ubi-utils/ubiutils-common.c >> -+++ b/ubi-utils/ubiutils-common.c >> -@@ -107,6 +107,9 @@ long long ubiutils_get_bytes(const char *str) >> - void ubiutils_print_bytes(long long bytes, int bracket) >> - { >> - const char *p; >> -+ int GiB = 1024 * 1024 * 1024; >> -+ int MiB = 1024 * 1024; >> -+ int KiB = 1024; >> - >> - if (bracket) >> - p = " ("; >> -@@ -115,12 +118,15 @@ void ubiutils_print_bytes(long long bytes, int bracket) >> - >> - printf("%lld bytes", bytes); >> - >> -- if (bytes > 1024 * 1024 * 1024) >> -- printf("%s%.1f GiB", p, (double)bytes / (1024 * 1024 * 1024)); >> -- else if (bytes > 1024 * 1024) >> -- printf("%s%.1f MiB", p, (double)bytes / (1024 * 1024)); >> -- else if (bytes > 1024 && bytes != 0) >> -- printf("%s%.1f KiB", p, (double)bytes / 1024); >> -+ if (bytes > GiB) >> -+ printf("%s%lld.%lld GiB", p, >> -+ bytes / GiB, bytes % GiB / (GiB / 10)); >> -+ else if (bytes > MiB) >> -+ printf("%s%lld.%lld MiB", p, >> -+ bytes / MiB, bytes % MiB / (MiB / 10)); >> -+ else if (bytes > KiB && bytes != 0) >> -+ printf("%s%lld.%lld KiB", p, >> -+ bytes / KiB, bytes % KiB / (KiB / 10)); >> - else >> - return; >> - >> --- >> -2.7.4 >> - >> 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 5bd0574..0000000 >> --- 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 @@ >> -From e6f1a85c0a3df24fe3ca9a520dc697105e75a80c Mon Sep 17 00:00:00 2001 >> -From: Andrea Adami <andrea.adami@gmail.com> >> -Date: Sat, 27 Jan 2018 09:39:26 +0100 >> -Subject: [PATCH 8/9] ubi-utils: ubiformat.c: convert to integer arithmetic >> - >> -Do not cast percent to double, it is just used as upper limit. >> -Avoid floating point to fix compilation for aarch64 against klibc: >> - >> -error: '-mgeneral-regs-only' is incompatible with floating-point code >> -| int percent = ((double)si->ok_cnt)/si->good_cnt * 100; >> -| ^~~~~~~ >> - >> -Notes: >> -* The checks in the code above this line ensure that si->good_cnt is not 0. >> - >> -* The code assumes si->good_cnt * 100 will not overflow, then we can use >> - (si->ok_cnt * 100) safely because the former is bigger. >> - >> -* The truncated result does not affect the logic: >> - i.e. a value of 49.9 is truncated to 49 and is still <50. >> - >> -Upstream-Status: Submitted >> - >> -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> >> ---- >> - ubi-utils/ubiformat.c | 2 +- >> - 1 file changed, 1 insertion(+), 1 deletion(-) >> - >> -diff --git a/ubi-utils/ubiformat.c b/ubi-utils/ubiformat.c >> -index 21409ca..d93164a 100644 >> ---- a/ubi-utils/ubiformat.c >> -+++ b/ubi-utils/ubiformat.c >> -@@ -843,7 +843,7 @@ int main(int argc, char * const argv[]) >> - } >> - >> - if (!args.override_ec && si->empty_cnt < si->good_cnt) { >> -- int percent = ((double)si->ok_cnt)/si->good_cnt * 100; >> -+ int percent = (si->ok_cnt * 100) / si->good_cnt; >> - >> - /* >> - * Make sure the majority of eraseblocks have valid >> --- >> -2.7.4 >> - >> 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 658246a..0000000 >> --- 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 @@ >> -From 2229f3b9fd4bad47794c28e558ad273173cea73d Mon Sep 17 00:00:00 2001 >> -From: Andrea Adami <andrea.adami@gmail.com> >> -Date: Sat, 27 Jan 2018 09:52:46 +0100 >> -Subject: [PATCH 9/9] Eliminate warnings about implicit non-const casting in >> - libmtd >> - >> -The mtd_get_dev_info1 function reads (among other things) name and type >> -string into coresponding struct mtd_dev_info fields. >> - >> -The struct mtd_dev_info has the string fields marked const, requiring >> -them to be cast to non-const version during initialization. >> - >> -This cast was previously omitted from the dev_read_data calls, >> -triggering warnings during compilation. >> - >> -Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at> >> -Signed-off-by: Richard Weinberger <richard@nod.at> >> - >> -Upstream-Status: Backport >> - >> -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> >> ---- >> - lib/libmtd.c | 4 ++-- >> - 1 file changed, 2 insertions(+), 2 deletions(-) >> - >> -diff --git a/lib/libmtd.c b/lib/libmtd.c >> -index 60b4782..5f0bcbc 100644 >> ---- a/lib/libmtd.c >> -+++ b/lib/libmtd.c >> -@@ -746,13 +746,13 @@ int mtd_get_dev_info1(libmtd_t desc, int mtd_num, struct mtd_dev_info *mtd) >> - if (dev_get_major(lib, mtd_num, &mtd->major, &mtd->minor)) >> - return -1; >> - >> -- ret = dev_read_data(lib->mtd_name, mtd_num, &mtd->name, >> -+ ret = dev_read_data(lib->mtd_name, mtd_num, (char *)&mtd->name, >> - MTD_NAME_MAX + 1); >> - if (ret < 0) >> - return -1; >> - ((char *)mtd->name)[ret - 1] = '\0'; >> - >> -- ret = dev_read_data(lib->mtd_type, mtd_num, &mtd->type_str, >> -+ ret = dev_read_data(lib->mtd_type, mtd_num, (char *)&mtd->type_str, >> - MTD_TYPE_MAX + 1); >> - if (ret < 0) >> - return -1; >> --- >> -2.7.4 >> - >> diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0001-Add-simple-getline-implementation-to-libmissing.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0001-Add-simple-getline-implementation-to-libmissing.patch >> new file mode 100644 >> index 0000000..d4c6d87 >> --- /dev/null >> +++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0001-Add-simple-getline-implementation-to-libmissing.patch >> @@ -0,0 +1,187 @@ >> +From 10c289454dad34632d767694aecb508dae5073bf Mon Sep 17 00:00:00 2001 >> +From: David Oberhollenzer <david.oberhollenzer@sigma-star.at> >> +Date: Thu, 1 Feb 2018 12:16:18 +0100 >> +Subject: [PATCH 1/4] Add simple getline() implementation to libmissing >> + >> +Some C libraries, like klibc don't implement getline(). This patch >> +adds a simple stub implementation to libmissing that does an fgets >> +into a stack allocated buffer and returns the result. >> + >> +Upstream-Status: Backport >> + >> +Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at> >> +--- >> + configure.ac | 1 + >> + include/common.h | 1 + >> + include/libmissing.h | 7 +++++++ >> + jffsX-utils/Makemodule.am | 2 +- >> + lib/Makemodule.am | 3 ++- >> + lib/getline.c | 36 ++++++++++++++++++++++++++++++++++++ >> + misc-utils/Makemodule.am | 2 ++ >> + ubi-utils/Makemodule.am | 2 +- >> + ubifs-utils/Makemodule.am | 1 + >> + 9 files changed, 52 insertions(+), 3 deletions(-) >> + create mode 100644 lib/getline.c >> + >> +diff --git a/configure.ac b/configure.ac >> +index 83d754f..5af0115 100644 >> +--- a/configure.ac >> ++++ b/configure.ac >> +@@ -191,6 +191,7 @@ if test "x$need_cmocka" = "xyes"; then >> + fi >> + >> + AC_CHECK_HEADERS([execinfo.h]) >> ++AC_CHECK_FUNCS([getline]) >> + >> + ##### produce summary on dependencies ##### >> + >> +diff --git a/include/common.h b/include/common.h >> +index 2ce5d22..f8f72ea 100644 >> +--- a/include/common.h >> ++++ b/include/common.h >> +@@ -32,6 +32,7 @@ >> + #include <sys/sysmacros.h> >> + >> + #include "config.h" >> ++#include "libmissing.h" >> + >> + #ifndef PROGRAM_NAME >> + # error "You must define PROGRAM_NAME before including this header" >> +diff --git a/include/libmissing.h b/include/libmissing.h >> +index 0196033..09dbce1 100644 >> +--- a/include/libmissing.h >> ++++ b/include/libmissing.h >> +@@ -7,11 +7,18 @@ >> + #include <execinfo.h> >> + #endif >> + >> ++#include <sys/types.h> >> ++#include <stdio.h> >> ++ >> + #ifndef HAVE_EXECINFO_H >> + int backtrace(void **buffer, int size); >> + char **backtrace_symbols(void *const *buffer, int size); >> + void backtrace_symbols_fd(void *const *buffer, int size, int fd); >> + #endif >> + >> ++#ifndef HAVE_GETLINE >> ++ssize_t getline(char **lineptr, size_t *n, FILE *stream); >> ++#endif >> ++ >> + #endif /* LIBMISSING_H */ >> + >> +diff --git a/jffsX-utils/Makemodule.am b/jffsX-utils/Makemodule.am >> +index fb181de..9d7a5d9 100644 >> +--- a/jffsX-utils/Makemodule.am >> ++++ b/jffsX-utils/Makemodule.am >> +@@ -17,7 +17,7 @@ jffs2dump_SOURCES = jffsX-utils/jffs2dump.c >> + jffs2dump_LDADD = libmtd.a $(ZLIB_LIBS) $(LZO_LIBS) >> + >> + sumtool_SOURCES = jffsX-utils/sumtool.c >> +-sumtool_LDADD = libmtd.a >> ++sumtool_LDADD = libmtd.a libmissing.a >> + >> + JFFSX_BINS = \ >> + mkfs.jffs2 jffs2dump jffs2reader sumtool >> +diff --git a/lib/Makemodule.am b/lib/Makemodule.am >> +index 5bee5b6..645632a 100644 >> +--- a/lib/Makemodule.am >> ++++ b/lib/Makemodule.am >> +@@ -7,7 +7,8 @@ libmtd_a_SOURCES = \ >> + lib/libmtd_int.h >> + >> + libmissing_a_SOURCES = \ >> +- lib/execinfo.c >> ++ lib/execinfo.c \ >> ++ lib/getline.c >> + >> + libubi_a_SOURCES = \ >> + lib/libubi.c \ >> +diff --git a/lib/getline.c b/lib/getline.c >> +new file mode 100644 >> +index 0000000..c575bf7 >> +--- /dev/null >> ++++ b/lib/getline.c >> +@@ -0,0 +1,36 @@ >> ++#include <stdlib.h> >> ++#include <string.h> >> ++ >> ++#include "libmissing.h" >> ++ >> ++#ifndef HAVE_GETLINE >> ++ssize_t getline(char **lineptr, size_t *n, FILE *stream) >> ++{ >> ++ char buffer[256], *new; >> ++ size_t count; >> ++ >> ++ if (!(*lineptr)) >> ++ *n = 0; >> ++ >> ++ if (!fgets(buffer, sizeof(buffer), stream)) { >> ++ if (!feof(stream)) >> ++ return -1; >> ++ >> ++ buffer[0] = '\0'; >> ++ } >> ++ >> ++ count = strlen(buffer) + 1; >> ++ >> ++ if (*n < count) { >> ++ new = realloc(*lineptr, count); >> ++ if (!new) >> ++ return -1; >> ++ *lineptr = new; >> ++ *n = count; >> ++ } >> ++ >> ++ memcpy(*lineptr, buffer, count); >> ++ return count; >> ++} >> ++#endif >> ++ >> +diff --git a/misc-utils/Makemodule.am b/misc-utils/Makemodule.am >> +index ce1c385..bfc5342 100644 >> +--- a/misc-utils/Makemodule.am >> ++++ b/misc-utils/Makemodule.am >> +@@ -1,4 +1,5 @@ >> + ftl_format_SOURCES = misc-utils/ftl_format.c >> ++ftl_format_LDADD = libmissing.a >> + >> + doc_loadbios_SOURCES = misc-utils/doc_loadbios.c >> + >> +@@ -25,6 +26,7 @@ flash_otp_info_SOURCES = misc-utils/flash_otp_info.c >> + flash_otp_dump_SOURCES = misc-utils/flash_otp_dump.c >> + >> + flash_otp_lock_SOURCES = misc-utils/flash_otp_lock.c >> ++flash_otp_lock_LDADD = libmissing.a >> + >> + flash_otp_write_SOURCES = misc-utils/flash_otp_write.c >> + >> +diff --git a/ubi-utils/Makemodule.am b/ubi-utils/Makemodule.am >> +index 215eac2..7b447c7 100644 >> +--- a/ubi-utils/Makemodule.am >> ++++ b/ubi-utils/Makemodule.am >> +@@ -23,7 +23,7 @@ ubinize_SOURCES = ubi-utils/ubinize.c >> + ubinize_LDADD = libubi.a libubigen.a libmtd.a libiniparser.a >> + >> + ubiformat_SOURCES = ubi-utils/ubiformat.c >> +-ubiformat_LDADD = libubi.a libubigen.a libmtd.a libscan.a >> ++ubiformat_LDADD = libubi.a libubigen.a libmtd.a libscan.a libmissing.a >> + >> + ubirename_SOURCES = ubi-utils/ubirename.c >> + ubirename_LDADD = libmtd.a libubi.a >> +diff --git a/ubifs-utils/Makemodule.am b/ubifs-utils/Makemodule.am >> +index 5862afb..787beb9 100644 >> +--- a/ubifs-utils/Makemodule.am >> ++++ b/ubifs-utils/Makemodule.am >> +@@ -17,6 +17,7 @@ mkfs_ubifs_SOURCES = \ >> + ubifs-utils/mkfs.ubifs/hashtable/hashtable_itr.c \ >> + ubifs-utils/mkfs.ubifs/devtable.c >> + mkfs_ubifs_LDADD = libmtd.a libubi.a $(ZLIB_LIBS) $(LZO_LIBS) $(UUID_LIBS) -lm >> ++mkfs_ubifs_LDADD += libmissing.a >> + mkfs_ubifs_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_CFLAGS) $(LZO_CFLAGS) $(UUID_CFLAGS) \ >> + -I$(top_srcdir)/ubi-utils/include -I$(top_srcdir)/ubifs-utils/mkfs.ubifs/ >> + >> +-- >> +2.7.4 >> + >> diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0002-Instead-of-doing-preprocessor-magic-just-output-off_.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0002-Instead-of-doing-preprocessor-magic-just-output-off_.patch >> new file mode 100644 >> index 0000000..bb675a7 >> --- /dev/null >> +++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0002-Instead-of-doing-preprocessor-magic-just-output-off_.patch >> @@ -0,0 +1,326 @@ >> +From 01c98d5d5d044d9a125abcdbb2f3d771966365b0 Mon Sep 17 00:00:00 2001 >> +From: mirabilos <m@mirbsd.org> >> +Date: Thu, 1 Feb 2018 15:34:07 +0100 >> +Subject: [PATCH 2/4] Instead of doing preprocessor magic, just output off_t as >> + long long >> + >> +Fix warnings abot PRIdoff_t in libmtd.c, in mtd_read (and mtd_write): >> + >> +In file included from ../git/lib/libmtd.c:40:0: >> +../git/lib/libmtd.c: In function 'mtd_read': >> +../git/include/common.h:110:18: warning: format '%ld' expects argument of >> + type 'long int', but argument 5 has type 'off_t {aka long long int}' >> + [-Wformat=] >> + >> +../git/include/common.h:120:2: note: in expansion of macro 'errmsg' >> + errmsg(fmt, ##__VA_ARGS__); \ >> + ^~~~~~ >> +../git/lib/libmtd.c:1082:10: note: in expansion of macro 'sys_errmsg' >> + return sys_errmsg("cannot seek mtd%d to offset %"PRIdoff_t, >> + ^~~~~~~~~~ >> + >> +/usr/lib/klibc/include/inttypes.h:28:17: note: format string is defined here >> + #define PRId32 "d" >> + >> +Upstream-Status: Submitted >> + >> +Signed-off-by: Thorsten Glaser <tg@mirbsd.org> >> +--- >> + include/common.h | 18 ------------------ >> + jffsX-utils/mkfs.jffs2.c | 20 ++++++++++---------- >> + lib/libmtd.c | 8 ++++---- >> + misc-utils/flash_erase.c | 6 +++--- >> + misc-utils/flash_otp_write.c | 2 +- >> + misc-utils/ftl_check.c | 2 +- >> + misc-utils/mtd_debug.c | 4 ++-- >> + misc-utils/serve_image.c | 4 ++-- >> + tests/fs-tests/integrity/integck.c | 4 ++-- >> + tests/mtd-tests/nandpagetest.c | 4 ++-- >> + tests/ubi-tests/integ.c | 6 +++--- >> + ubifs-utils/mkfs.ubifs/mkfs.ubifs.c | 6 +++--- >> + 12 files changed, 33 insertions(+), 51 deletions(-) >> + >> +diff --git a/include/common.h b/include/common.h >> +index f8f72ea..642c212 100644 >> +--- a/include/common.h >> ++++ b/include/common.h >> +@@ -70,24 +70,6 @@ extern "C" { >> + #define O_CLOEXEC 0 >> + #endif >> + >> +-/* define a print format specifier for off_t */ >> +-#if (SIZEOF_OFF_T >= 8) >> +-#define PRIxoff_t PRIx64 >> +-#define PRIdoff_t PRId64 >> +-#else >> +-#define PRIxoff_t "l"PRIx32 >> +-#define PRIdoff_t "l"PRId32 >> +-#endif >> +- >> +-/* define a print format specifier for loff_t */ >> +-#if (SIZEOF_LOFF_T >= 8) >> +-#define PRIxloff_t PRIx64 >> +-#define PRIdloff_t PRId64 >> +-#else >> +-#define PRIxloff_t "l"PRIx32 >> +-#define PRIdloff_t "l"PRId32 >> +-#endif >> +- >> + /* Verbose messages */ >> + #define bareverbose(verbose, fmt, ...) do { \ >> + if (verbose) \ >> +diff --git a/jffsX-utils/mkfs.jffs2.c b/jffsX-utils/mkfs.jffs2.c >> +index 9aa6c39..0661786 100644 >> +--- a/jffsX-utils/mkfs.jffs2.c >> ++++ b/jffsX-utils/mkfs.jffs2.c >> +@@ -1237,8 +1237,8 @@ static void recursive_populate_directory(struct filesystem_entry *dir) >> + } else switch (e->sb.st_mode & S_IFMT) { >> + case S_IFDIR: >> + if (verbose) { >> +- printf("\td %04o %9" PRIdoff_t " %5d:%-3d %s\n", >> +- e->sb.st_mode & ~S_IFMT, e->sb.st_size, >> ++ printf("\td %04o %9lld %5d:%-3d %s\n", >> ++ e->sb.st_mode & ~S_IFMT, (long long)e->sb.st_size, >> + (int) (e->sb.st_uid), (int) (e->sb.st_gid), >> + e->name); >> + } >> +@@ -1247,8 +1247,8 @@ static void recursive_populate_directory(struct filesystem_entry *dir) >> + break; >> + case S_IFSOCK: >> + if (verbose) { >> +- printf("\ts %04o %9" PRIdoff_t " %5d:%-3d %s\n", >> +- e->sb.st_mode & ~S_IFMT, e->sb.st_size, >> ++ printf("\ts %04o %9lld %5d:%-3d %s\n", >> ++ e->sb.st_mode & ~S_IFMT, (long long)e->sb.st_size, >> + (int) e->sb.st_uid, (int) e->sb.st_gid, e->name); >> + } >> + write_pipe(e); >> +@@ -1256,8 +1256,8 @@ static void recursive_populate_directory(struct filesystem_entry *dir) >> + break; >> + case S_IFIFO: >> + if (verbose) { >> +- printf("\tp %04o %9" PRIdoff_t " %5d:%-3d %s\n", >> +- e->sb.st_mode & ~S_IFMT, e->sb.st_size, >> ++ printf("\tp %04o %9lld %5d:%-3d %s\n", >> ++ e->sb.st_mode & ~S_IFMT, (long long)e->sb.st_size, >> + (int) e->sb.st_uid, (int) e->sb.st_gid, e->name); >> + } >> + write_pipe(e); >> +@@ -1285,8 +1285,8 @@ static void recursive_populate_directory(struct filesystem_entry *dir) >> + break; >> + case S_IFLNK: >> + if (verbose) { >> +- printf("\tl %04o %9" PRIdoff_t " %5d:%-3d %s -> %s\n", >> +- e->sb.st_mode & ~S_IFMT, e->sb.st_size, >> ++ printf("\tl %04o %9lld %5d:%-3d %s -> %s\n", >> ++ e->sb.st_mode & ~S_IFMT, (long long)e->sb.st_size, >> + (int) e->sb.st_uid, (int) e->sb.st_gid, e->name, >> + e->link); >> + } >> +@@ -1297,8 +1297,8 @@ static void recursive_populate_directory(struct filesystem_entry *dir) >> + wrote = write_regular_file(e); >> + write_xattr_entry(e); >> + if (verbose) { >> +- printf("\tf %04o %9" PRIdoff_t " (%9u) %5d:%-3d %s\n", >> +- e->sb.st_mode & ~S_IFMT, e->sb.st_size, wrote, >> ++ printf("\tf %04o %9lld (%9u) %5d:%-3d %s\n", >> ++ e->sb.st_mode & ~S_IFMT, (long long)e->sb.st_size, wrote, >> + (int) e->sb.st_uid, (int) e->sb.st_gid, e->name); >> + } >> + break; >> +diff --git a/lib/libmtd.c b/lib/libmtd.c >> +index 86c89ae..f375381 100644 >> +--- a/lib/libmtd.c >> ++++ b/lib/libmtd.c >> +@@ -1079,8 +1079,8 @@ int mtd_read(const struct mtd_dev_info *mtd, int fd, int eb, int offs, >> + /* Seek to the beginning of the eraseblock */ >> + seek = (off_t)eb * mtd->eb_size + offs; >> + if (lseek(fd, seek, SEEK_SET) != seek) >> +- return sys_errmsg("cannot seek mtd%d to offset %"PRIdoff_t, >> +- mtd->mtd_num, seek); >> ++ return sys_errmsg("cannot seek mtd%d to offset %lld", >> ++ mtd->mtd_num, (long long)seek); >> + >> + while (rd < len) { >> + ret = read(fd, buf + rd, len - rd); >> +@@ -1188,8 +1188,8 @@ int mtd_write(libmtd_t desc, const struct mtd_dev_info *mtd, int fd, int eb, >> + if (data) { >> + /* Seek to the beginning of the eraseblock */ >> + if (lseek(fd, seek, SEEK_SET) != seek) >> +- return sys_errmsg("cannot seek mtd%d to offset %"PRIdoff_t, >> +- mtd->mtd_num, seek); >> ++ return sys_errmsg("cannot seek mtd%d to offset %lld", >> ++ mtd->mtd_num, (long long)seek); >> + ret = write(fd, data, len); >> + if (ret != len) >> + return sys_errmsg("cannot write %d bytes to mtd%d " >> +diff --git a/misc-utils/flash_erase.c b/misc-utils/flash_erase.c >> +index 0c9449f..ec4b2e1 100644 >> +--- a/misc-utils/flash_erase.c >> ++++ b/misc-utils/flash_erase.c >> +@@ -53,8 +53,8 @@ int target_endian = __BYTE_ORDER; >> + static void show_progress(struct mtd_dev_info *mtd, off_t start, int eb, >> + int eb_start, int eb_cnt) >> + { >> +- bareverbose(!quiet, "\rErasing %d Kibyte @ %"PRIxoff_t" -- %2i %% complete ", >> +- mtd->eb_size / 1024, start, ((eb - eb_start) * 100) / eb_cnt); >> ++ bareverbose(!quiet, "\rErasing %d Kibyte @ %llx -- %2i %% complete ", >> ++ mtd->eb_size / 1024, (unsigned long long)start, ((eb - eb_start) * 100) / eb_cnt); >> + fflush(stdout); >> + } >> + >> +@@ -210,7 +210,7 @@ int main(int argc, char *argv[]) >> + if (!noskipbad) { >> + int ret = mtd_is_bad(&mtd, fd, eb); >> + if (ret > 0) { >> +- verbose(!quiet, "Skipping bad block at %08"PRIxoff_t, offset); >> ++ verbose(!quiet, "Skipping bad block at %08llx", (unsigned long long)offset); >> + continue; >> + } else if (ret < 0) { >> + if (errno == EOPNOTSUPP) { >> +diff --git a/misc-utils/flash_otp_write.c b/misc-utils/flash_otp_write.c >> +index b02d0b0..04c96c6 100644 >> +--- a/misc-utils/flash_otp_write.c >> ++++ b/misc-utils/flash_otp_write.c >> +@@ -76,7 +76,7 @@ int main(int argc,char *argv[]) >> + return errno; >> + } >> + >> +- printf("Writing OTP user data on %s at offset 0x%"PRIxoff_t"\n", argv[2], offset); >> ++ printf("Writing OTP user data on %s at offset 0x%llx\n", argv[2], (unsigned long long)offset); >> + >> + if (mtd_type_is_nand_user(&mtdInfo)) >> + len = mtdInfo.writesize; >> +diff --git a/misc-utils/ftl_check.c b/misc-utils/ftl_check.c >> +index a853cf4..e854922 100644 >> +--- a/misc-utils/ftl_check.c >> ++++ b/misc-utils/ftl_check.c >> +@@ -131,7 +131,7 @@ static void check_partition(int fd) >> + perror("read failed"); >> + break; >> + } >> +- printf("\nErase unit %"PRIdoff_t":\n", i); >> ++ printf("\nErase unit %lld:\n", (long long)i); >> + if ((hdr2.FormattedSize != hdr.FormattedSize) || >> + (hdr2.NumEraseUnits != hdr.NumEraseUnits) || >> + (hdr2.SerialNumber != hdr.SerialNumber)) >> +diff --git a/misc-utils/mtd_debug.c b/misc-utils/mtd_debug.c >> +index ac37e23..d65ad36 100644 >> +--- a/misc-utils/mtd_debug.c >> ++++ b/misc-utils/mtd_debug.c >> +@@ -160,7 +160,7 @@ retry: >> + if (buf != NULL) >> + free(buf); >> + close(outfd); >> +- printf("Copied %zu bytes from address 0x%.8"PRIxoff_t" in flash to %s\n", len, offset, filename); >> ++ printf("Copied %zu bytes from address 0x%.8llx in flash to %s\n", len, (unsigned long long)offset, filename); >> + return 0; >> + >> + err2: >> +@@ -225,7 +225,7 @@ retry: >> + if (buf != NULL) >> + free(buf); >> + fclose(fp); >> +- printf("Copied %d bytes from %s to address 0x%.8"PRIxoff_t" in flash\n", len, filename, offset); >> ++ printf("Copied %d bytes from %s to address 0x%.8llx in flash\n", len, filename, (unsigned long long)offset); >> + return 0; >> + } >> + >> +diff --git a/misc-utils/serve_image.c b/misc-utils/serve_image.c >> +index f2475d6..6c8c8fb 100644 >> +--- a/misc-utils/serve_image.c >> ++++ b/misc-utils/serve_image.c >> +@@ -129,8 +129,8 @@ int main(int argc, char **argv) >> + } >> + >> + if (st.st_size % erasesize) { >> +- fprintf(stderr, "Image size %" PRIdoff_t " bytes is not a multiple of erasesize %d bytes\n", >> +- st.st_size, erasesize); >> ++ fprintf(stderr, "Image size %lld bytes is not a multiple of erasesize %d bytes\n", >> ++ (long long)st.st_size, erasesize); >> + exit(1); >> + } >> + image = mmap(NULL, st.st_size, PROT_READ, MAP_PRIVATE, rfd, 0); >> +diff --git a/tests/fs-tests/integrity/integck.c b/tests/fs-tests/integrity/integck.c >> +index 84753d6..0a7f142 100644 >> +--- a/tests/fs-tests/integrity/integck.c >> ++++ b/tests/fs-tests/integrity/integck.c >> +@@ -897,8 +897,8 @@ static ssize_t file_write_data(struct file_info *file, int fd, off_t offset, >> + remains = size; >> + actual = 0; >> + written = IO_BUFFER_SIZE; >> +- v("write %zd bytes, offset %"PRIdoff_t", file %s", >> +- size, offset, get_file_name(file)); >> ++ v("write %zd bytes, offset %lld, file %s", >> ++ size, (long long)offset, get_file_name(file)); >> + while (remains) { >> + /* Fill up buffer with random data */ >> + if (written < IO_BUFFER_SIZE) { >> +diff --git a/tests/mtd-tests/nandpagetest.c b/tests/mtd-tests/nandpagetest.c >> +index c6812df..465e548 100644 >> +--- a/tests/mtd-tests/nandpagetest.c >> ++++ b/tests/mtd-tests/nandpagetest.c >> +@@ -232,8 +232,8 @@ static int verify_eraseblock(int ebnum) >> + return err; >> + >> + if (lseek(fd, addr, SEEK_SET) != addr) { >> +- fprintf(stderr, "cannot seek mtd%d to offset %"PRIdloff_t, >> +- mtd.mtd_num, addr); >> ++ fprintf(stderr, "cannot seek mtd%d to offset %lld", >> ++ mtd.mtd_num, (long long)addr); >> + return -1; >> + } >> + >> +diff --git a/tests/ubi-tests/integ.c b/tests/ubi-tests/integ.c >> +index 26c2ce5..1cd0649 100644 >> +--- a/tests/ubi-tests/integ.c >> ++++ b/tests/ubi-tests/integ.c >> +@@ -243,7 +243,7 @@ static void check_erase_block(struct erase_block_info *erase_block, int fd) >> + while (size) >> + if (read_buffer[--size] != 0xff) { >> + fprintf(stderr, "block no. = %d\n" , erase_block->block_number); >> +- fprintf(stderr, "offset = %"PRIdoff_t"\n" , gap_start); >> ++ fprintf(stderr, "offset = %lld\n" , (long long)gap_start); >> + fprintf(stderr, "size = %ld\n" , (long) bytes_read); >> + error_exit("verify 0xff failed"); >> + } >> +@@ -254,7 +254,7 @@ static void check_erase_block(struct erase_block_info *erase_block, int fd) >> + errno = 0; >> + bytes_read = read(fd, read_buffer, w->size); >> + if (bytes_read != w->size) { >> +- fprintf(stderr, "offset = %"PRIdoff_t"\n" , w->offset); >> ++ fprintf(stderr, "offset = %lld\n" , (long long)w->offset); >> + fprintf(stderr, "size = %ld\n" , (long) w->size); >> + fprintf(stderr, "bytes_read = %ld\n" , (long) bytes_read); >> + error_exit("read failed"); >> +@@ -279,7 +279,7 @@ static void check_erase_block(struct erase_block_info *erase_block, int fd) >> + while (size) >> + if (read_buffer[--size] != 0xff) { >> + fprintf(stderr, "block no. = %d\n" , erase_block->block_number); >> +- fprintf(stderr, "offset = %"PRIdoff_t"\n" , gap_start); >> ++ fprintf(stderr, "offset = %lld\n" , (long long)gap_start); >> + fprintf(stderr, "size = %ld\n" , (long) bytes_read); >> + error_exit("verify 0xff failed!"); >> + } >> +diff --git a/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c b/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c >> +index c916f48..f0237ab 100644 >> +--- a/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c >> ++++ b/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c >> +@@ -772,11 +772,11 @@ int write_leb(int lnum, int len, void *buf) >> + return sys_err_msg("ubi_leb_change_start failed"); >> + >> + if (lseek(out_fd, pos, SEEK_SET) != pos) >> +- return sys_err_msg("lseek failed seeking %"PRIdoff_t, pos); >> ++ return sys_err_msg("lseek failed seeking %lld", (long long)pos); >> + >> + if (write(out_fd, buf, c->leb_size) != c->leb_size) >> +- return sys_err_msg("write failed writing %d bytes at pos %"PRIdoff_t, >> +- c->leb_size, pos); >> ++ return sys_err_msg("write failed writing %d bytes at pos %lld", >> ++ c->leb_size, (long long)pos); >> + >> + return 0; >> + } >> +-- >> +2.7.4 >> + >> diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0003-Makefile.am-only-build-ubi-utils.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0003-Makefile.am-only-build-ubi-utils.patch >> new file mode 100644 >> index 0000000..08c53d1 >> --- /dev/null >> +++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0003-Makefile.am-only-build-ubi-utils.patch >> @@ -0,0 +1,34 @@ >> +From 139d93bc405272a3261d57be26da842e737fe4d0 Mon Sep 17 00:00:00 2001 >> +From: Andrea Adami <andrea.adami@gmail.com> >> +Date: Sun, 28 Jan 2018 23:10:34 +0100 >> +Subject: [PATCH 3/4] Makefile.am: only build ubi-utils >> + >> +We only target the ubi-utils, static, small. >> + >> +Upstream-Status: Inappropriate [embedded specific] >> + >> +Signed-off-by: Andrea Adami <andrea.adami@gmail.com> >> +--- >> + Makefile.am | 6 +++--- >> + 1 file changed, 3 insertions(+), 3 deletions(-) >> + >> +diff --git a/Makefile.am b/Makefile.am >> +index 5a6e77c..98715dd 100644 >> +--- a/Makefile.am >> ++++ b/Makefile.am >> +@@ -34,9 +34,9 @@ EXTRA_DIST += $(GLOBAL_HEADER) $(GLOBAL_EXTRA) >> + >> + include lib/Makemodule.am >> + include ubi-utils/Makemodule.am >> +-include misc-utils/Makemodule.am >> +-include nand-utils/Makemodule.am >> +-include nor-utils/Makemodule.am >> ++#include misc-utils/Makemodule.am >> ++#include nand-utils/Makemodule.am >> ++#include nor-utils/Makemodule.am >> + >> + if BUILD_UBIFS >> + include ubifs-utils/Makemodule.am >> +-- >> +2.7.4 >> + >> diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0004-mtd-utils-common.h-no-features.h-for-klibc-builds.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0004-mtd-utils-common.h-no-features.h-for-klibc-builds.patch >> new file mode 100644 >> index 0000000..5da05fa >> --- /dev/null >> +++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0004-mtd-utils-common.h-no-features.h-for-klibc-builds.patch >> @@ -0,0 +1,38 @@ >> +From ae1cf6d0eb1833e46549328a4473222c259723d7 Mon Sep 17 00:00:00 2001 >> +From: Andrea Adami <andrea.adami@gmail.com> >> +Date: Thu, 1 Feb 2018 00:25:00 +0100 >> +Subject: [PATCH 4/4] mtd-utils: common.h: no features.h for klibc builds >> + >> +Add guard around features.h to fix missing include (here first error): >> + >> + ../git/include/common.h:29:10: >> + fatal error: features.h: No such file or directory >> + #include <features.h> >> + ^~~~~~~~~~~~ >> + compilation terminated >> + >> +Upstream-Status: Submitted >> + >> +Signed-off-by: Andrea Adami <andrea.adami@gmail.com> >> +--- >> + include/common.h | 3 +++ >> + 1 file changed, 3 insertions(+) >> + >> +diff --git a/include/common.h b/include/common.h >> +index 642c212..f7c71fe 100644 >> +--- a/include/common.h >> ++++ b/include/common.h >> +@@ -26,7 +26,10 @@ >> + #include <string.h> >> + #include <fcntl.h> >> + #include <errno.h> >> ++#if defined(__KLIBC__) >> ++#else >> + #include <features.h> >> ++#endif >> + #include <inttypes.h> >> + #include <unistd.h> >> + #include <sys/sysmacros.h> >> +-- >> +2.7.4 >> + >> diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_1.5.2.bb b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_2.0.2.bb >> similarity index 64% >> rename from meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_1.5.2.bb >> rename to meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_2.0.2.bb >> index abb0d4b..85bc372 100644 >> --- a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_1.5.2.bb >> +++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_2.0.2.bb >> @@ -7,30 +7,30 @@ LICENSE = "GPLv2+" >> LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ >> file://include/common.h;beginline=1;endline=17;md5=ba05b07912a44ea2bf81ce409380049c" >> >> -inherit klibc >> +inherit autotools pkgconfig klibc >> >> -SRCREV = "aea36417067dade75192bafa03af70b6eb2677b1" >> +SRCREV = "bc63d36e39f389c8c17f6a8e9db47f2acc884659" >> SRC_URI = "git://git.infradead.org/mtd-utils.git \ >> - file://0001-Makefile-build-ubi-utils-only.patch \ >> - file://0002-common.mk-for-klibc-CC-is-klcc.patch \ >> - file://0003-libubi.c-add-klibc-specific-fixes-for-ioctl.patch \ >> - file://0004-Restore-compatibility-to-dietlibc-klibc-musl-libc-af.patch \ >> - file://0005-common.h-more-workarounds-for-klibc-compatibility.patch \ >> - file://0006-libiniparser-remove-unused-function-needing-float.patch \ >> - file://0007-mtd-utils-common.c-convert-to-integer-arithmetic.patch \ >> - file://0008-ubi-utils-ubiformat.c-convert-to-integer-arithmetic.patch \ >> - file://0009-Eliminate-warnings-about-implicit-non-const-casting-.patch \ >> + file://0001-Add-simple-getline-implementation-to-libmissing.patch \ >> + file://0002-Instead-of-doing-preprocessor-magic-just-output-off_.patch \ >> + file://0003-Makefile.am-only-build-ubi-utils.patch \ >> + file://0004-mtd-utils-common.h-no-features.h-for-klibc-builds.patch \ >> " >> >> S = "${WORKDIR}/git/" >> >> -EXTRA_OEMAKE = "'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'CFLAGS=${CFLAGS} -I${S}include -DWITHOUT_XATTR' 'BUILDDIR=${S}'" >> +EXTRA_OECONF += "--disable-tests --without-jffs --without-ubifs" >> + >> +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'xattr', d)}" >> +PACKAGECONFIG[xattr] = ",,acl," >> + >> +EXTRA_OEMAKE = "'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'CFLAGS=${CFLAGS} ${@bb.utils.contains('PACKAGECONFIG', 'xattr', '', '-DWITHOUT_XATTR', d)} -I${S}/include' 'BUILDDIR=${S}'" >> >> do_install () { >> oe_runmake install DESTDIR=${D} SBINDIR=${sbindir} MANDIR=${mandir} INCLUDEDIR=${includedir} >> } >> >> -PACKAGES = "ubi-utils-klibc-dbg" >> +PACKAGES = "ubi-utils-klibc-dbg ubi-utils-klibc-doc" >> >> PACKAGES =+ "mtdinfo-klibc ubiattach-klibc ubiblock-klibc ubicrc32-klibc ubidetach-klibc \ >> ubiformat-klibc ubimkvol-klibc ubinfo-klibc ubinize-klibc ubirename-klibc \ > [-- Attachment #2: log.do_compile.7250 --] [-- Type: application/octet-stream, Size: 28324 bytes --] DEBUG: SITE files ['endian-little', 'bit-64', 'arm-common', 'arm-64', 'common-linux', 'common-musl', 'aarch64-linux', 'aarch64-linux-musl', 'common'] DEBUG: Executing shell function do_compile NOTE: make -j 8 CC=aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot RANLIB=aarch64-oe-linux-musl-ranlib AR=aarch64-oe-linux-musl-ar CFLAGS= -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include BUILDDIR=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git/ aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../git -I./include -Wall -Wextra -Wunused -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -Wjump-misses-init -Wuninitialized -Winit-self -Wlogical-op -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-parameter -Wunused-result -Wunused-variable -Wduplicated-cond -Wduplicated-branches -Wrestrict -Wnull-dereference -Wno-shadow -Wno-sign-compare -D_GNU_SOURCE -std=gnu99 -I../git/include -DWITHOUT_XATTR -DWITHOUT_LZO -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -c -o lib/libmtd.o ../git/lib/libmtd.c aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../git -I./include -Wall -Wextra -Wunused -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -Wjump-misses-init -Wuninitialized -Winit-self -Wlogical-op -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-parameter -Wunused-result -Wunused-variable -Wduplicated-cond -Wduplicated-branches -Wrestrict -Wnull-dereference -Wno-shadow -Wno-sign-compare -D_GNU_SOURCE -std=gnu99 -I../git/include -DWITHOUT_XATTR -DWITHOUT_LZO -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -c -o lib/libfec.o ../git/lib/libfec.c aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../git -I./include -Wall -Wextra -Wunused -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -Wjump-misses-init -Wuninitialized -Winit-self -Wlogical-op -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-parameter -Wunused-result -Wunused-variable -Wduplicated-cond -Wduplicated-branches -Wrestrict -Wnull-dereference -Wno-shadow -Wno-sign-compare -D_GNU_SOURCE -std=gnu99 -I../git/include -DWITHOUT_XATTR -DWITHOUT_LZO -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -c -o lib/common.o ../git/lib/common.c aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../git -I./include -Wall -Wextra -Wunused -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -Wjump-misses-init -Wuninitialized -Winit-self -Wlogical-op -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-parameter -Wunused-result -Wunused-variable -Wduplicated-cond -Wduplicated-branches -Wrestrict -Wnull-dereference -Wno-shadow -Wno-sign-compare -D_GNU_SOURCE -std=gnu99 -I../git/include -DWITHOUT_XATTR -DWITHOUT_LZO -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -c -o lib/libcrc32.o ../git/lib/libcrc32.c aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../git -I./include -Wall -Wextra -Wunused -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -Wjump-misses-init -Wuninitialized -Winit-self -Wlogical-op -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-parameter -Wunused-result -Wunused-variable -Wduplicated-cond -Wduplicated-branches -Wrestrict -Wnull-dereference -Wno-shadow -Wno-sign-compare -D_GNU_SOURCE -std=gnu99 -I../git/include -DWITHOUT_XATTR -DWITHOUT_LZO -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -c -o lib/libmtd_legacy.o ../git/lib/libmtd_legacy.c aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../git -I./include -Wall -Wextra -Wunused -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -Wjump-misses-init -Wuninitialized -Winit-self -Wlogical-op -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-parameter -Wunused-result -Wunused-variable -Wduplicated-cond -Wduplicated-branches -Wrestrict -Wnull-dereference -Wno-shadow -Wno-sign-compare -D_GNU_SOURCE -std=gnu99 -I../git/include -DWITHOUT_XATTR -DWITHOUT_LZO -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -c -o lib/execinfo.o ../git/lib/execinfo.c aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../git -I./include -Wall -Wextra -Wunused -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -Wjump-misses-init -Wuninitialized -Winit-self -Wlogical-op -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-parameter -Wunused-result -Wunused-variable -Wduplicated-cond -Wduplicated-branches -Wrestrict -Wnull-dereference -Wno-shadow -Wno-sign-compare -D_GNU_SOURCE -std=gnu99 -I../git/include -DWITHOUT_XATTR -DWITHOUT_LZO -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -c -o lib/getline.o ../git/lib/getline.c aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../git -I./include -Wall -Wextra -Wunused -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -Wjump-misses-init -Wuninitialized -Winit-self -Wlogical-op -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-parameter -Wunused-result -Wunused-variable -Wduplicated-cond -Wduplicated-branches -Wrestrict -Wnull-dereference -Wno-shadow -Wno-sign-compare -D_GNU_SOURCE -std=gnu99 -I../git/include -DWITHOUT_XATTR -DWITHOUT_LZO -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -c -o lib/libubi.o ../git/lib/libubi.c aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../git -I./include -Wall -Wextra -Wunused -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -Wjump-misses-init -Wuninitialized -Winit-self -Wlogical-op -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-parameter -Wunused-result -Wunused-variable -Wduplicated-cond -Wduplicated-branches -Wrestrict -Wnull-dereference -Wno-shadow -Wno-sign-compare -D_GNU_SOURCE -std=gnu99 -I../git/include -DWITHOUT_XATTR -DWITHOUT_LZO -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -c -o lib/libubigen.o ../git/lib/libubigen.c aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../git -I./include -Wall -Wextra -Wunused -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -Wjump-misses-init -Wuninitialized -Winit-self -Wlogical-op -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-parameter -Wunused-result -Wunused-variable -Wduplicated-cond -Wduplicated-branches -Wrestrict -Wnull-dereference -Wno-shadow -Wno-sign-compare -D_GNU_SOURCE -std=gnu99 -I../git/include -DWITHOUT_XATTR -DWITHOUT_LZO -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -c -o lib/libscan.o ../git/lib/libscan.c aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../git -I./include -Wall -Wextra -Wunused -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -Wjump-misses-init -Wuninitialized -Winit-self -Wlogical-op -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-parameter -Wunused-result -Wunused-variable -Wduplicated-cond -Wduplicated-branches -Wrestrict -Wnull-dereference -Wno-shadow -Wno-sign-compare -D_GNU_SOURCE -std=gnu99 -I../git/include -DWITHOUT_XATTR -DWITHOUT_LZO -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -c -o lib/libiniparser.o ../git/lib/libiniparser.c aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../git -I./include -Wall -Wextra -Wunused -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -Wjump-misses-init -Wuninitialized -Winit-self -Wlogical-op -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-parameter -Wunused-result -Wunused-variable -Wduplicated-cond -Wduplicated-branches -Wrestrict -Wnull-dereference -Wno-shadow -Wno-sign-compare -D_GNU_SOURCE -std=gnu99 -I../git/include -DWITHOUT_XATTR -DWITHOUT_LZO -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -c -o lib/dictionary.o ../git/lib/dictionary.c aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../git -I./include -Wall -Wextra -Wunused -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -Wjump-misses-init -Wuninitialized -Winit-self -Wlogical-op -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-parameter -Wunused-result -Wunused-variable -Wduplicated-cond -Wduplicated-branches -Wrestrict -Wnull-dereference -Wno-shadow -Wno-sign-compare -D_GNU_SOURCE -std=gnu99 -I../git/include -DWITHOUT_XATTR -DWITHOUT_LZO -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -c -o ubi-utils/ubiupdatevol.o ../git/ubi-utils/ubiupdatevol.c aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../git -I./include -Wall -Wextra -Wunused -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -Wjump-misses-init -Wuninitialized -Winit-self -Wlogical-op -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-parameter -Wunused-result -Wunused-variable -Wduplicated-cond -Wduplicated-branches -Wrestrict -Wnull-dereference -Wno-shadow -Wno-sign-compare -D_GNU_SOURCE -std=gnu99 -I../git/include -DWITHOUT_XATTR -DWITHOUT_LZO -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -c -o ubi-utils/ubimkvol.o ../git/ubi-utils/ubimkvol.c aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../git -I./include -Wall -Wextra -Wunused -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -Wjump-misses-init -Wuninitialized -Winit-self -Wlogical-op -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-parameter -Wunused-result -Wunused-variable -Wduplicated-cond -Wduplicated-branches -Wrestrict -Wnull-dereference -Wno-shadow -Wno-sign-compare -D_GNU_SOURCE -std=gnu99 -I../git/include -DWITHOUT_XATTR -DWITHOUT_LZO -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -c -o ubi-utils/ubirmvol.o ../git/ubi-utils/ubirmvol.c aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../git -I./include -Wall -Wextra -Wunused -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -Wjump-misses-init -Wuninitialized -Winit-self -Wlogical-op -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-parameter -Wunused-result -Wunused-variable -Wduplicated-cond -Wduplicated-branches -Wrestrict -Wnull-dereference -Wno-shadow -Wno-sign-compare -D_GNU_SOURCE -std=gnu99 -I../git/include -DWITHOUT_XATTR -DWITHOUT_LZO -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -c -o ubi-utils/ubicrc32.o ../git/ubi-utils/ubicrc32.c aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../git -I./include -Wall -Wextra -Wunused -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -Wjump-misses-init -Wuninitialized -Winit-self -Wlogical-op -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-parameter -Wunused-result -Wunused-variable -Wduplicated-cond -Wduplicated-branches -Wrestrict -Wnull-dereference -Wno-shadow -Wno-sign-compare -D_GNU_SOURCE -std=gnu99 -I../git/include -DWITHOUT_XATTR -DWITHOUT_LZO -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -c -o ubi-utils/ubinfo.o ../git/ubi-utils/ubinfo.c aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../git -I./include -Wall -Wextra -Wunused -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -Wjump-misses-init -Wuninitialized -Winit-self -Wlogical-op -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-parameter -Wunused-result -Wunused-variable -Wduplicated-cond -Wduplicated-branches -Wrestrict -Wnull-dereference -Wno-shadow -Wno-sign-compare -D_GNU_SOURCE -std=gnu99 -I../git/include -DWITHOUT_XATTR -DWITHOUT_LZO -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -c -o ubi-utils/ubiattach.o ../git/ubi-utils/ubiattach.c aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../git -I./include -Wall -Wextra -Wunused -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -Wjump-misses-init -Wuninitialized -Winit-self -Wlogical-op -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-parameter -Wunused-result -Wunused-variable -Wduplicated-cond -Wduplicated-branches -Wrestrict -Wnull-dereference -Wno-shadow -Wno-sign-compare -D_GNU_SOURCE -std=gnu99 -I../git/include -DWITHOUT_XATTR -DWITHOUT_LZO -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -c -o ubi-utils/ubidetach.o ../git/ubi-utils/ubidetach.c aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../git -I./include -Wall -Wextra -Wunused -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -Wjump-misses-init -Wuninitialized -Winit-self -Wlogical-op -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-parameter -Wunused-result -Wunused-variable -Wduplicated-cond -Wduplicated-branches -Wrestrict -Wnull-dereference -Wno-shadow -Wno-sign-compare -D_GNU_SOURCE -std=gnu99 -I../git/include -DWITHOUT_XATTR -DWITHOUT_LZO -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -c -o ubi-utils/ubinize.o ../git/ubi-utils/ubinize.c aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../git -I./include -Wall -Wextra -Wunused -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -Wjump-misses-init -Wuninitialized -Winit-self -Wlogical-op -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-parameter -Wunused-result -Wunused-variable -Wduplicated-cond -Wduplicated-branches -Wrestrict -Wnull-dereference -Wno-shadow -Wno-sign-compare -D_GNU_SOURCE -std=gnu99 -I../git/include -DWITHOUT_XATTR -DWITHOUT_LZO -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -c -o ubi-utils/ubiformat.o ../git/ubi-utils/ubiformat.c aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../git -I./include -Wall -Wextra -Wunused -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -Wjump-misses-init -Wuninitialized -Winit-self -Wlogical-op -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-parameter -Wunused-result -Wunused-variable -Wduplicated-cond -Wduplicated-branches -Wrestrict -Wnull-dereference -Wno-shadow -Wno-sign-compare -D_GNU_SOURCE -std=gnu99 -I../git/include -DWITHOUT_XATTR -DWITHOUT_LZO -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -c -o ubi-utils/ubirename.o ../git/ubi-utils/ubirename.c aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../git -I./include -Wall -Wextra -Wunused -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -Wjump-misses-init -Wuninitialized -Winit-self -Wlogical-op -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-parameter -Wunused-result -Wunused-variable -Wduplicated-cond -Wduplicated-branches -Wrestrict -Wnull-dereference -Wno-shadow -Wno-sign-compare -D_GNU_SOURCE -std=gnu99 -I../git/include -DWITHOUT_XATTR -DWITHOUT_LZO -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -c -o ubi-utils/mtdinfo.o ../git/ubi-utils/mtdinfo.c aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../git -I./include -Wall -Wextra -Wunused -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -Wjump-misses-init -Wuninitialized -Winit-self -Wlogical-op -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-parameter -Wunused-result -Wunused-variable -Wduplicated-cond -Wduplicated-branches -Wrestrict -Wnull-dereference -Wno-shadow -Wno-sign-compare -D_GNU_SOURCE -std=gnu99 -I../git/include -DWITHOUT_XATTR -DWITHOUT_LZO -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -c -o ubi-utils/ubirsvol.o ../git/ubi-utils/ubirsvol.c aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../git -I./include -Wall -Wextra -Wunused -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -Wjump-misses-init -Wuninitialized -Winit-self -Wlogical-op -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-parameter -Wunused-result -Wunused-variable -Wduplicated-cond -Wduplicated-branches -Wrestrict -Wnull-dereference -Wno-shadow -Wno-sign-compare -D_GNU_SOURCE -std=gnu99 -I../git/include -DWITHOUT_XATTR -DWITHOUT_LZO -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -c -o ubi-utils/ubiblock.o ../git/ubi-utils/ubiblock.c rm -f libmissing.a aarch64-oe-linux-musl-ar cru libmissing.a lib/execinfo.o lib/getline.o aarch64-oe-linux-musl-ar: `u' modifier ignored since `D' is the default (see `U') aarch64-oe-linux-musl-ranlib libmissing.a rm -f libubi.a rm -f libubigen.a aarch64-oe-linux-musl-ar cru libubi.a lib/libubi.o aarch64-oe-linux-musl-ar cru libubigen.a lib/libubigen.o aarch64-oe-linux-musl-ar: aarch64-oe-linux-musl-ar: `u' modifier ignored since `D' is the default (see `U') `u' modifier ignored since `D' is the default (see `U') aarch64-oe-linux-musl-ranlib libubigen.a aarch64-oe-linux-musl-ranlib libubi.a rm -f libscan.a rm -f libiniparser.a aarch64-oe-linux-musl-ar cru libscan.a lib/libscan.o aarch64-oe-linux-musl-ar cru libiniparser.a lib/libiniparser.o lib/dictionary.o aarch64-oe-linux-musl-ar: `u' modifier ignored since `D' is the default (see `U') aarch64-oe-linux-musl-ar: `u' modifier ignored since `D' is the default (see `U') aarch64-oe-linux-musl-ranlib libscan.a aarch64-oe-linux-musl-ranlib libiniparser.a rm -f libmtd.a aarch64-oe-linux-musl-ar cru libmtd.a lib/libmtd.o lib/libfec.o lib/common.o lib/libcrc32.o lib/libmtd_legacy.o aarch64-oe-linux-musl-ar: `u' modifier ignored since `D' is the default (see `U') aarch64-oe-linux-musl-ranlib libmtd.a ./aarch64-oe-linux-musl-libtool --tag=CC --mode=link aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -o ubiupdatevol ubi-utils/ubiupdatevol.o libmtd.a libubi.a ./aarch64-oe-linux-musl-libtool --tag=CC --mode=link aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -o ubimkvol ubi-utils/ubimkvol.o libmtd.a libubi.a ./aarch64-oe-linux-musl-libtool --tag=CC --mode=link aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -o ubirmvol ubi-utils/ubirmvol.o libmtd.a libubi.a ./aarch64-oe-linux-musl-libtool --tag=CC --mode=link aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -o ubicrc32 ubi-utils/ubicrc32.o libmtd.a libubi.a ./aarch64-oe-linux-musl-libtool --tag=CC --mode=link aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -o ubinfo ubi-utils/ubinfo.o libmtd.a libubi.a aarch64-oe-linux-musl-libtool: link: aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -o ubimkvol ubi-utils/ubimkvol.o libmtd.a libubi.a aarch64-oe-linux-musl-libtool: link: aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -o ubirmvol ubi-utils/ubirmvol.o libmtd.a libubi.a aarch64-oe-linux-musl-libtool: link: aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -o ubiupdatevol ubi-utils/ubiupdatevol.o libmtd.a libubi.a ./aarch64-oe-linux-musl-libtool --tag=CC --mode=link aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -o ubiattach ubi-utils/ubiattach.o libmtd.a libubi.a ./aarch64-oe-linux-musl-libtool --tag=CC --mode=link aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -o ubidetach ubi-utils/ubidetach.o libmtd.a libubi.a ./aarch64-oe-linux-musl-libtool --tag=CC --mode=link aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -o ubirename ubi-utils/ubirename.o libmtd.a libubi.a ./aarch64-oe-linux-musl-libtool --tag=CC --mode=link aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -o mtdinfo ubi-utils/mtdinfo.o libubi.a libubigen.a libmtd.a aarch64-oe-linux-musl-libtool: link: aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -o ubicrc32 ubi-utils/ubicrc32.o libmtd.a libubi.a aarch64-oe-linux-musl-libtool: link: aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -o ubinfo ubi-utils/ubinfo.o libmtd.a libubi.a ./aarch64-oe-linux-musl-libtool --tag=CC --mode=link aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -o ubirsvol ubi-utils/ubirsvol.o libmtd.a libubi.a ./aarch64-oe-linux-musl-libtool --tag=CC --mode=link aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -o ubiblock ubi-utils/ubiblock.o libmtd.a libubi.a ./aarch64-oe-linux-musl-libtool --tag=CC --mode=link aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -o ubinize ubi-utils/ubinize.o libubi.a libubigen.a libmtd.a libiniparser.a aarch64-oe-linux-musl-libtool: link: aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -o ubiattach ubi-utils/ubiattach.o libmtd.a libubi.a aarch64-oe-linux-musl-libtool: link: aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -o ubirename ubi-utils/ubirename.o libmtd.a libubi.a aarch64-oe-linux-musl-libtool: link: aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -o mtdinfo ubi-utils/mtdinfo.o libubi.a libubigen.a libmtd.a aarch64-oe-linux-musl-libtool: link: aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -o ubidetach ubi-utils/ubidetach.o libmtd.a libubi.a aarch64-oe-linux-musl-libtool: link: aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -o ubirsvol ubi-utils/ubirsvol.o libmtd.a libubi.a aarch64-oe-linux-musl-libtool: link: aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -o ubiblock ubi-utils/ubiblock.o libmtd.a libubi.a aarch64-oe-linux-musl-libtool: link: aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -o ubinize ubi-utils/ubinize.o libubi.a libubigen.a libmtd.a libiniparser.a ./aarch64-oe-linux-musl-libtool --tag=CC --mode=link aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -o ubiformat ubi-utils/ubiformat.o libubi.a libubigen.a libmtd.a libscan.a libmissing.a aarch64-oe-linux-musl-libtool: link: aarch64-oe-linux-musl-klcc --sysroot=/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/recipe-sysroot -I/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/ubi-utils-klibc/2.0.2-r0/git//include -o ubiformat ubi-utils/ubiformat.o libubi.a libubigen.a libmtd.a libscan.a libmissing.a DEBUG: Shell function do_compile finished ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [meta-initramfs][PATCH] ubi-utils-klibc: update from v. 1.5.2 to 2.0.2 2018-05-17 15:31 ` Andrea Adami @ 2018-05-17 16:09 ` Andrea Adami 2018-05-17 20:44 ` Andrea Adami 0 siblings, 1 reply; 6+ messages in thread From: Andrea Adami @ 2018-05-17 16:09 UTC (permalink / raw) To: akuster808, Khem Raj; +Cc: OpenEmbedded Devel List On Thu, May 17, 2018 at 5:31 PM, Andrea Adami <andrea.adami@gmail.com> wrote: > On Thu, May 17, 2018 at 4:15 PM, akuster808 <akuster808@gmail.com> wrote: >> >> >> On 05/13/2018 03:16 PM, Andrea Adami wrote: >>> Update to new version and drop accepted patches. >>> >>> Signed-off-by: Andrea Adami <andrea.adami@gmail.com> >>> --- >>> .../0001-Makefile-build-ubi-utils-only.patch | 87 ------ >>> .../0002-common.mk-for-klibc-CC-is-klcc.patch | 27 -- >>> ...bubi.c-add-klibc-specific-fixes-for-ioctl.patch | 76 ----- >>> ...patibility-to-dietlibc-klibc-musl-libc-af.patch | 88 ------ >>> ...-more-workarounds-for-klibc-compatibility.patch | 52 ---- >>> ...rser-remove-unused-function-needing-float.patch | 85 ------ >>> ...ls-common.c-convert-to-integer-arithmetic.patch | 64 ---- >>> ...ubiformat.c-convert-to-integer-arithmetic.patch | 44 --- >>> ...arnings-about-implicit-non-const-casting-.patch | 48 --- >>> ...mple-getline-implementation-to-libmissing.patch | 187 ++++++++++++ >>> ...doing-preprocessor-magic-just-output-off_.patch | 326 +++++++++++++++++++++ >>> .../0003-Makefile.am-only-build-ubi-utils.patch | 34 +++ >>> ...s-common.h-no-features.h-for-klibc-builds.patch | 38 +++ >>> ...ils-klibc_1.5.2.bb => ubi-utils-klibc_2.0.2.bb} | 26 +- >> >> This fails on qemuarm with the following error. >> >> | ../git/include/libmissing.h:7:10: fatal error: execinfo.h: No such >> file or directory >> | #include <execinfo.h> >> | ^~~~~~~~~~~~ >> | compilation terminated. >> | Makefile:2452: recipe for target 'ubi-utils/ubimkvol.o' failed >> | make: *** [ubi-utils/ubimkvol.o] Error 1 >> | Makefile:2452: recipe for target 'ubi-utils/ubicrc32.o' failed >> | make: *** [ubi-utils/ubicrc32.o] Error 1 >> | In file included from ../git/include/common.h:38:0, >> | from ../git/ubi-utils/ubiupdatevol.c:40: >> | ../git/include/libmissing.h:7:10: fatal error: execinfo.h: No such >> file or directory >> | #include <execinfo.h> >> | ^~~~~~~~~~~~ >> | compilation terminated. >> | Makefile:2452: recipe for target 'ubi-utils/ubiupdatevol.o' failed >> | make: *** [ubi-utils/ubiupdatevol.o] Error 1 >> | ERROR: oe_runmake failed >> >> http://errors.yoctoproject.org/Errors/Build/60410/ >> >> - Armin > > > Hi Armin, > thanks for testing. > > Strange, I did cross-build for all archs, maybe some oe-core change. > I'll compare with my log (attached the quemuarm). > > Cheers > Andrea > I see the issue is with execinfo.h. As of last week ...musl did not have backtrace/execinfo so I think musl has been updated and now the HAVE_EXECINFO_H check fails. I'll try to fix this in the recipe. Cheers Andrea >> >>> 14 files changed, 598 insertions(+), 584 deletions(-) >>> delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0001-Makefile-build-ubi-utils-only.patch >>> delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0002-common.mk-for-klibc-CC-is-klcc.patch >>> delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0003-libubi.c-add-klibc-specific-fixes-for-ioctl.patch >>> delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0004-Restore-compatibility-to-dietlibc-klibc-musl-libc-af.patch >>> delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0005-common.h-more-workarounds-for-klibc-compatibility.patch >>> delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0006-libiniparser-remove-unused-function-needing-float.patch >>> delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0007-mtd-utils-common.c-convert-to-integer-arithmetic.patch >>> delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0008-ubi-utils-ubiformat.c-convert-to-integer-arithmetic.patch >>> delete mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0009-Eliminate-warnings-about-implicit-non-const-casting-.patch >>> create mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0001-Add-simple-getline-implementation-to-libmissing.patch >>> create mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0002-Instead-of-doing-preprocessor-magic-just-output-off_.patch >>> create mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0003-Makefile.am-only-build-ubi-utils.patch >>> create mode 100644 meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0004-mtd-utils-common.h-no-features.h-for-klibc-builds.patch >>> rename meta-initramfs/recipes-devtools/mtd/{ubi-utils-klibc_1.5.2.bb => ubi-utils-klibc_2.0.2.bb} (64%) >>> >>> 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 6ac2cca..0000000 >>> --- 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 @@ >>> -From 1c989e4c36d0bf76ab444f984bc73b98eeacd03f Mon Sep 17 00:00:00 2001 >>> -From: Andrea Adami <andrea.adami@gmail.com> >>> -Date: Sun, 29 Jun 2014 00:32:29 +0200 >>> -Subject: [PATCH 1/9] Makefile: build ubi-utils only >>> - >>> -We build all the static ubi-utils but actually only ubiattach is needed in >>> -a minimalistic initramfs for the mount of ubi volumes. >>> - >>> -More fixes are needed in order to build the full mtd-utils. >>> -The first issue is: >>> - >>> -| mkfs.jffs2.c:64:20: fatal error: libgen.h: No such file or directory >>> -| #include <libgen.h> >>> - >>> -Removing the include then the second error is: >>> - >>> -| mkfs.jffs2.c:1570:22: error: '_SC_PAGESIZE' undeclared >>> -| (first use in this function) >>> -| page_size = sysconf(_SC_PAGESIZE); >>> - >>> -Upstream-Status: Inappropriate [embedded specific] >>> - >>> -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> >>> ---- >>> - Makefile | 26 ++------------------------ >>> - 1 file changed, 2 insertions(+), 24 deletions(-) >>> - >>> -diff --git a/Makefile b/Makefile >>> -index 3ce8587..8b79f71 100644 >>> ---- a/Makefile >>> -+++ b/Makefile >>> -@@ -16,28 +16,11 @@ endif >>> - >>> - TESTS = tests >>> - >>> --MTD_BINS = \ >>> -- ftl_format flash_erase nanddump doc_loadbios \ >>> -- ftl_check mkfs.jffs2 flash_lock flash_unlock \ >>> -- flash_otp_info flash_otp_dump flash_otp_lock flash_otp_write \ >>> -- mtd_debug flashcp nandwrite nandtest mtdpart \ >>> -- jffs2dump \ >>> -- nftldump nftl_format docfdisk \ >>> -- rfddump rfdformat \ >>> -- serve_image recv_image \ >>> -- sumtool jffs2reader >>> - UBI_BINS = \ >>> - ubiupdatevol ubimkvol ubirmvol ubicrc32 ubinfo ubiattach \ >>> - ubidetach ubinize ubiformat ubirename mtdinfo ubirsvol ubiblock >>> - >>> --BINS = $(MTD_BINS) >>> --BINS += mkfs.ubifs/mkfs.ubifs >>> --BINS += $(addprefix ubi-utils/,$(UBI_BINS)) >>> --SCRIPTS = flash_eraseall >>> -- >>> --TARGETS = $(BINS) >>> --TARGETS += lib/libmtd.a >>> --TARGETS += ubi-utils/libubi.a >>> -+BINS = $(addprefix ubi-utils/,$(UBI_BINS)) >>> - >>> - OBJDEPS = $(BUILDDIR)/include/version.h >>> - >>> -@@ -61,12 +44,9 @@ endif >>> - rm -f $(BUILDDIR)/include/version.h >>> - $(MAKE) -C $(TESTS) clean >>> - >>> --install:: $(addprefix $(BUILDDIR)/,${BINS}) ${SCRIPTS} >>> -+install:: $(addprefix $(BUILDDIR)/,${BINS}) >>> - mkdir -p ${DESTDIR}/${SBINDIR} >>> - install -m 0755 $^ ${DESTDIR}/${SBINDIR}/ >>> -- mkdir -p ${DESTDIR}/${MANDIR}/man1 >>> -- install -m 0644 mkfs.jffs2.1 ${DESTDIR}/${MANDIR}/man1/ >>> -- -gzip -9f ${DESTDIR}/${MANDIR}/man1/*.1 >>> - >>> - tests:: >>> - $(MAKE) -C $(TESTS) >>> -@@ -91,8 +71,6 @@ LDLIBS_mkfs.jffs2 = -lz $(LZOLDLIBS) >>> - LDFLAGS_jffs2reader = $(ZLIBLDFLAGS) $(LZOLDFLAGS) >>> - LDLIBS_jffs2reader = -lz $(LZOLDLIBS) >>> - >>> --$(foreach v,$(MTD_BINS),$(eval $(call mkdep,,$(v)))) >>> -- >>> - # >>> - # Common libmtd >>> - # >>> --- >>> -2.7.4 >>> - >>> 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 c23d11f..0000000 >>> --- 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 @@ >>> -From 89c76bbe82a2029a25b0654eb0a1d0b22d6e6877 Mon Sep 17 00:00:00 2001 >>> -From: Andrea Adami <andrea.adami@gmail.com> >>> -Date: Sun, 29 Jun 2014 00:37:28 +0200 >>> -Subject: [PATCH 2/9] common.mk: for klibc $(CC) is klcc >>> - >>> -Do not hardcode: assign the value to the variable if it is not already defined. >>> - >>> -Upstream-Status: Submitted >>> - >>> -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> >>> ---- >>> - common.mk | 2 +- >>> - 1 file changed, 1 insertion(+), 1 deletion(-) >>> - >>> -diff --git a/common.mk b/common.mk >>> -index ba87377..126d11a 100644 >>> ---- a/common.mk >>> -+++ b/common.mk >>> -@@ -1,4 +1,4 @@ >>> --CC := $(CROSS)gcc >>> -+CC ?= $(CROSS)gcc >>> - AR := $(CROSS)ar >>> - RANLIB := $(CROSS)ranlib >>> - >>> --- >>> -2.7.4 >>> - >>> 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 9ad4a5b..0000000 >>> --- 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 @@ >>> -From fecbb7056d621a30f7106e67f5fe209763571b70 Mon Sep 17 00:00:00 2001 >>> -From: Andrea Adami <andrea.adami@gmail.com> >>> -Date: Sun, 29 Jun 2014 00:40:15 +0200 >>> -Subject: [PATCH 3/9] libubi.c: add klibc specific fixes for ioctl >>> - >>> -First issue is that ioctl() in klibc doesn't expect a constant as arg3. >>> -Second issue is that arg3 in klibc ioctl() implementation is not optional. >>> - >>> -Fixes: >>> - >>> -| ubi-utils/libubi.c: In function 'do_attach': >>> -| ubi-utils/libubi.c:698:8: warning: passing argument 3 of 'ioctl' discards >>> -| 'const' qualifier from pointer target type >>> -| ret = ioctl(fd, UBI_IOCATT, r); >>> -| ^ >>> -| In file included from ubi-utils/libubi.c:32:0: >>> -| .../lib/klibc/include/sys/ioctl.h:15:14: note: expected 'void *' but argument >>> -| is of type 'const struct ubi_attach_req *' >>> -| __extern int ioctl(int, int, void *); >>> -| ^ >>> - >>> -| ubi-utils/libubi.c: In function 'ubi_vol_block_create': >>> -| ubi-utils/libubi.c:1118:9: error: too few arguments to function 'ioctl' >>> -| return ioctl(fd, UBI_IOCVOLCRBLK); >>> -| ^ >>> -| In file included from ubi-utils/libubi.c:32:0: >>> -| .../lib/klibc/include/sys/ioctl.h:15:14: note: declared here >>> -| __extern int ioctl(int, int, void *); >>> -| ^ >>> -| ubi-utils/libubi.c: In function 'ubi_vol_block_remove': >>> -| ubi-utils/libubi.c:1123:9: error: too few arguments to function 'ioctl' >>> -| return ioctl(fd, UBI_IOCVOLRMBLK); >>> -| ^ >>> -| In file included from ubi-utils/libubi.c:32:0: >>> -| .../usr/lib/klibc/include/sys/ioctl.h:15:14: note: declared here >>> -| __extern int ioctl(int, int, void *); >>> -| ^ >>> - >>> -Upstream-Status: Accepted >>> - >>> -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> >>> ---- >>> - ubi-utils/libubi.c | 6 +++--- >>> - 1 file changed, 3 insertions(+), 3 deletions(-) >>> - >>> -diff --git a/ubi-utils/libubi.c b/ubi-utils/libubi.c >>> -index 97c0434..2b49833 100644 >>> ---- a/ubi-utils/libubi.c >>> -+++ b/ubi-utils/libubi.c >>> -@@ -687,7 +687,7 @@ void libubi_close(libubi_t desc) >>> - * success and %-1 in case of failure. @r->ubi_num contains newly created UBI >>> - * device number. >>> - */ >>> --static int do_attach(const char *node, const struct ubi_attach_req *r) >>> -+static int do_attach(const char *node, struct ubi_attach_req *r) >>> - { >>> - int fd, ret; >>> - >>> -@@ -1115,12 +1115,12 @@ int ubi_rsvol(libubi_t desc, const char *node, int vol_id, long long bytes) >>> - >>> - int ubi_vol_block_create(int fd) >>> - { >>> -- return ioctl(fd, UBI_IOCVOLCRBLK); >>> -+ return ioctl(fd, UBI_IOCVOLCRBLK, NULL); >>> - } >>> - >>> - int ubi_vol_block_remove(int fd) >>> - { >>> -- return ioctl(fd, UBI_IOCVOLRMBLK); >>> -+ return ioctl(fd, UBI_IOCVOLRMBLK, NULL); >>> - } >>> - >>> - int ubi_update_start(libubi_t desc, int fd, long long bytes) >>> --- >>> -2.7.4 >>> - >>> 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 2f31fb4..0000000 >>> --- 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 @@ >>> -From b668cb75cb7e72ff92055209130d4cd4b3cacbdb Mon Sep 17 00:00:00 2001 >>> -From: Thorsten Glaser <tg@mirbsd.org> >>> -Date: Fri, 20 Jun 2014 10:56:27 +0000 >>> -Subject: [PATCH 4/9] Restore compatibility to dietlibc, klibc, musl libc after >>> - commit 4f1b108 >>> -MIME-Version: 1.0 >>> -Content-Type: text/plain; charset=UTF-8 >>> -Content-Transfer-Encoding: 8bit >>> - >>> -Each C library has their own way to define off_t, and the <features.h> >>> -header is nonstandard and specific to the GNU libc and those that clone >>> -it (uClibc). Fefe’s dietlibc uses different flags, and klibc always uses >>> -a 64-bit off_t (like the BSDs); musl libc cannot be recognised using cpp >>> -instructions, so we assume 64 bit there (and on unknown C libraries) and >>> -leave it to the user to submit a follow-up fix if we guess wrong. I also >>> -added a static assertion to verify the 64 bit guess is correct. >>> - >>> -It would be really better using a configure script for this instead. >>> - >>> -Fixes: >>> -| CC lib/libmtd.o >>> -| In file included from ubi-utils/ubiutils-common.c:35:0: >>> -| ./include/common.h:29:22: fatal error: features.h: No such file or directory >>> -| #include <features.h> >>> -| ^ >>> -| compilation terminated. >>> - >>> -Upstream-Status: Submitted >>> - >>> -Signed-off-by: Thorsten Glaser <tg@mirbsd.org> >>> -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> >>> ---- >>> - include/common.h | 24 ++++++++++++++++++++++++ >>> - 1 file changed, 24 insertions(+) >>> - >>> -diff --git a/include/common.h b/include/common.h >>> -index fb0ca83..5a20964 100644 >>> ---- a/include/common.h >>> -+++ b/include/common.h >>> -@@ -26,7 +26,9 @@ >>> - #include <string.h> >>> - #include <fcntl.h> >>> - #include <errno.h> >>> -+#if defined(__GLIBC__) || defined(__UCLIBC__) >>> - #include <features.h> >>> -+#endif >>> - #include <inttypes.h> >>> - #include "version.h" >>> - >>> -@@ -67,6 +69,21 @@ extern "C" { >>> - #endif >>> - >>> - /* define a print format specifier for off_t */ >>> -+#if defined(__KLIBC__) >>> -+/* always 64 bit on klibc */ >>> -+#define PRIxoff_t PRIx64 >>> -+#define PRIdoff_t PRId64 >>> -+#elif defined(__dietlibc__) >>> -+/* depends on compiler flags on dietlibc */ >>> -+#if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64) >>> -+#define PRIxoff_t PRIx64 >>> -+#define PRIdoff_t PRId64 >>> -+#else >>> -+#define PRIxoff_t "l"PRIx32 >>> -+#define PRIdoff_t "l"PRId32 >>> -+#endif >>> -+#elif defined(__GLIBC__) || defined(__UCLIBC__) >>> -+/* depends on compiler flags on glibc and uClibc */ >>> - #ifdef __USE_FILE_OFFSET64 >>> - #define PRIxoff_t PRIx64 >>> - #define PRIdoff_t PRId64 >>> -@@ -74,6 +91,13 @@ extern "C" { >>> - #define PRIxoff_t "l"PRIx32 >>> - #define PRIdoff_t "l"PRId32 >>> - #endif >>> -+#else >>> -+/* unknown libc or musl */ >>> -+#define PRIxoff_t PRIx64 >>> -+#define PRIdoff_t PRId64 >>> -+/* verify our guess of 64 bit is correct */ >>> -+static char __PRIxoff_t_static_assert[sizeof(off_t) == 8 ? 1 : -1]; >>> -+#endif >>> - >>> - /* Verbose messages */ >>> - #define bareverbose(verbose, fmt, ...) do { \ >>> --- >>> -2.7.4 >>> - >>> 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 8309a72..0000000 >>> --- 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 @@ >>> -From 5d4a66b502003ef385dab31a17012246407e7364 Mon Sep 17 00:00:00 2001 >>> -From: Andrea Adami <andrea.adami@gmail.com> >>> -Date: Sun, 29 Jun 2014 00:44:03 +0200 >>> -Subject: [PATCH 5/9] common.h: more workarounds for klibc compatibility >>> - >>> -Patch is addressing two issues: >>> -* First, Klibc doesn't have rpmatch(). >>> -* Second, Klibc lacks getline() >>> - >>> -Fixes: >>> -| LD ubi-utils/ubiformat >>> -| .../git/ubi-utils/ubiformat.o: In function `prompt': >>> -| .../git/./include/common.h:157: undefined reference to `getline' >>> -| .../git/./include/common.h:164: undefined reference to `rpmatch' >>> -| .../git/./include/common.h:157: undefined reference to `getline' >>> -| .../git/./include/common.h:164: undefined reference to `rpmatch' >>> - >>> -Upstream-Status: Submitted >>> - >>> -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> >>> ---- >>> - include/common.h | 8 +++++--- >>> - 1 file changed, 5 insertions(+), 3 deletions(-) >>> - >>> -diff --git a/include/common.h b/include/common.h >>> -index 5a20964..2f51e1c 100644 >>> ---- a/include/common.h >>> -+++ b/include/common.h >>> -@@ -161,15 +161,17 @@ static inline int __rpmatch(const char *resp) >>> - */ >>> - static inline bool prompt(const char *msg, bool def) >>> - { >>> -- char *line = NULL; >>> -- size_t len; >>> -+ char *line; >>> - bool ret = def; >>> - >>> -+ const int sizeof_line = 2; >>> -+ line = malloc(sizeof_line); >>> -+ >>> - do { >>> - normsg_cont("%s (%c/%c) ", msg, def ? 'Y' : 'y', def ? 'n' : 'N'); >>> - fflush(stdout); >>> - >>> -- while (getline(&line, &len, stdin) == -1) { >>> -+ while (fgets(line, sizeof_line, stdin) == NULL) { >>> - printf("failed to read prompt; assuming '%s'\n", >>> - def ? "yes" : "no"); >>> - break; >>> --- >>> -2.7.4 >>> - >>> 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 d046f95..0000000 >>> --- 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 @@ >>> -From 2af30e9b2988111e45ed6ea6af55e49ec7cb1cb1 Mon Sep 17 00:00:00 2001 >>> -From: Andrea Adami <andrea.adami@gmail.com> >>> -Date: Sun, 29 Jun 2014 00:44:57 +0200 >>> -Subject: [PATCH 6/9] libiniparser: remove unused function needing float >>> - >>> -Fixes: >>> -| LD ubi-utils/ubiformat >>> -| .../git/ubi-utils/libiniparser.a(libiniparser.o): In function >>> -| ` LD ubi-utils/ubirename >>> -| iniparser_getdouble': >>> -| .../git/ubi-utils/libiniparser.c:336: undefined reference to `atof' >>> - >>> -Grep doesn't reveal any occurrence of iniparser_getdouble(), using atof() so >>> -remove it: floating-point is not supported in klibc >>> - >>> -Upstream-Status: Accepted >>> - >>> -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> >>> ---- >>> - ubi-utils/include/libiniparser.h | 15 --------------- >>> - ubi-utils/libiniparser.c | 22 ---------------------- >>> - 2 files changed, 37 deletions(-) >>> - >>> -diff --git a/ubi-utils/include/libiniparser.h b/ubi-utils/include/libiniparser.h >>> -index be3c667..abd77aa 100644 >>> ---- a/ubi-utils/include/libiniparser.h >>> -+++ b/ubi-utils/include/libiniparser.h >>> -@@ -158,21 +158,6 @@ int iniparser_getint(dictionary * d, const char * key, int notfound); >>> - >>> - /*-------------------------------------------------------------------------*/ >>> - /** >>> -- @brief Get the string associated to a key, convert to a double >>> -- @param d Dictionary to search >>> -- @param key Key string to look for >>> -- @param notfound Value to return in case of error >>> -- @return double >>> -- >>> -- This function queries a dictionary for a key. A key as read from an >>> -- ini file is given as "section:key". If the key cannot be found, >>> -- the notfound value is returned. >>> -- */ >>> --/*--------------------------------------------------------------------------*/ >>> --double iniparser_getdouble(dictionary * d, char * key, double notfound); >>> -- >>> --/*-------------------------------------------------------------------------*/ >>> --/** >>> - @brief Get the string associated to a key, convert to a boolean >>> - @param d Dictionary to search >>> - @param key Key string to look for >>> -diff --git a/ubi-utils/libiniparser.c b/ubi-utils/libiniparser.c >>> -index 898f57f..ba70c08 100644 >>> ---- a/ubi-utils/libiniparser.c >>> -+++ b/ubi-utils/libiniparser.c >>> -@@ -316,28 +316,6 @@ int iniparser_getint(dictionary * d, const char * key, int notfound) >>> - >>> - /*-------------------------------------------------------------------------*/ >>> - /** >>> -- @brief Get the string associated to a key, convert to a double >>> -- @param d Dictionary to search >>> -- @param key Key string to look for >>> -- @param notfound Value to return in case of error >>> -- @return double >>> -- >>> -- This function queries a dictionary for a key. A key as read from an >>> -- ini file is given as "section:key". If the key cannot be found, >>> -- the notfound value is returned. >>> -- */ >>> --/*--------------------------------------------------------------------------*/ >>> --double iniparser_getdouble(dictionary * d, char * key, double notfound) >>> --{ >>> -- char * str ; >>> -- >>> -- str = iniparser_getstring(d, key, INI_INVALID_KEY); >>> -- if (str==INI_INVALID_KEY) return notfound ; >>> -- return atof(str); >>> --} >>> -- >>> --/*-------------------------------------------------------------------------*/ >>> --/** >>> - @brief Get the string associated to a key, convert to a boolean >>> - @param d Dictionary to search >>> - @param key Key string to look for >>> --- >>> -2.7.4 >>> - >>> 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 36b012f..0000000 >>> --- 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 @@ >>> -From 41e7c76b0853bf5241b38b8167dfd57c27fef1eb Mon Sep 17 00:00:00 2001 >>> -From: Andrea Adami <andrea.adami@gmail.com> >>> -Date: Sun, 28 Jan 2018 21:47:59 +0100 >>> -Subject: [PATCH 7/9] mtd-utils: common.c: convert to integer arithmetic >>> - >>> -We use floating point just to print out KiB, MiB, GiB. >>> -Avoid that to be klibc friendly. >>> - >>> -Fixes compilation for aarch64 against klibc: >>> - >>> -error: '-mgeneral-regs-only' is incompatible with floating-point argument >>> -| printf("%s%.1f GiB", p, (double)bytes / (1024 * 1024 * 1024)); >>> -etc. >>> - >>> -Note: >>> -* In the KiB case, we could apparently multiply by 100 before dividing >>> - without risking overflow. This code simply avoids multiplications. >>> - >>> -Upstream-Status: Submitted >>> - >>> -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> >>> ---- >>> - ubi-utils/ubiutils-common.c | 18 ++++++++++++------ >>> - 1 file changed, 12 insertions(+), 6 deletions(-) >>> - >>> -diff --git a/ubi-utils/ubiutils-common.c b/ubi-utils/ubiutils-common.c >>> -index 6609a6b..0ded2a4 100644 >>> ---- a/ubi-utils/ubiutils-common.c >>> -+++ b/ubi-utils/ubiutils-common.c >>> -@@ -107,6 +107,9 @@ long long ubiutils_get_bytes(const char *str) >>> - void ubiutils_print_bytes(long long bytes, int bracket) >>> - { >>> - const char *p; >>> -+ int GiB = 1024 * 1024 * 1024; >>> -+ int MiB = 1024 * 1024; >>> -+ int KiB = 1024; >>> - >>> - if (bracket) >>> - p = " ("; >>> -@@ -115,12 +118,15 @@ void ubiutils_print_bytes(long long bytes, int bracket) >>> - >>> - printf("%lld bytes", bytes); >>> - >>> -- if (bytes > 1024 * 1024 * 1024) >>> -- printf("%s%.1f GiB", p, (double)bytes / (1024 * 1024 * 1024)); >>> -- else if (bytes > 1024 * 1024) >>> -- printf("%s%.1f MiB", p, (double)bytes / (1024 * 1024)); >>> -- else if (bytes > 1024 && bytes != 0) >>> -- printf("%s%.1f KiB", p, (double)bytes / 1024); >>> -+ if (bytes > GiB) >>> -+ printf("%s%lld.%lld GiB", p, >>> -+ bytes / GiB, bytes % GiB / (GiB / 10)); >>> -+ else if (bytes > MiB) >>> -+ printf("%s%lld.%lld MiB", p, >>> -+ bytes / MiB, bytes % MiB / (MiB / 10)); >>> -+ else if (bytes > KiB && bytes != 0) >>> -+ printf("%s%lld.%lld KiB", p, >>> -+ bytes / KiB, bytes % KiB / (KiB / 10)); >>> - else >>> - return; >>> - >>> --- >>> -2.7.4 >>> - >>> 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 5bd0574..0000000 >>> --- 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 @@ >>> -From e6f1a85c0a3df24fe3ca9a520dc697105e75a80c Mon Sep 17 00:00:00 2001 >>> -From: Andrea Adami <andrea.adami@gmail.com> >>> -Date: Sat, 27 Jan 2018 09:39:26 +0100 >>> -Subject: [PATCH 8/9] ubi-utils: ubiformat.c: convert to integer arithmetic >>> - >>> -Do not cast percent to double, it is just used as upper limit. >>> -Avoid floating point to fix compilation for aarch64 against klibc: >>> - >>> -error: '-mgeneral-regs-only' is incompatible with floating-point code >>> -| int percent = ((double)si->ok_cnt)/si->good_cnt * 100; >>> -| ^~~~~~~ >>> - >>> -Notes: >>> -* The checks in the code above this line ensure that si->good_cnt is not 0. >>> - >>> -* The code assumes si->good_cnt * 100 will not overflow, then we can use >>> - (si->ok_cnt * 100) safely because the former is bigger. >>> - >>> -* The truncated result does not affect the logic: >>> - i.e. a value of 49.9 is truncated to 49 and is still <50. >>> - >>> -Upstream-Status: Submitted >>> - >>> -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> >>> ---- >>> - ubi-utils/ubiformat.c | 2 +- >>> - 1 file changed, 1 insertion(+), 1 deletion(-) >>> - >>> -diff --git a/ubi-utils/ubiformat.c b/ubi-utils/ubiformat.c >>> -index 21409ca..d93164a 100644 >>> ---- a/ubi-utils/ubiformat.c >>> -+++ b/ubi-utils/ubiformat.c >>> -@@ -843,7 +843,7 @@ int main(int argc, char * const argv[]) >>> - } >>> - >>> - if (!args.override_ec && si->empty_cnt < si->good_cnt) { >>> -- int percent = ((double)si->ok_cnt)/si->good_cnt * 100; >>> -+ int percent = (si->ok_cnt * 100) / si->good_cnt; >>> - >>> - /* >>> - * Make sure the majority of eraseblocks have valid >>> --- >>> -2.7.4 >>> - >>> 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 658246a..0000000 >>> --- 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 @@ >>> -From 2229f3b9fd4bad47794c28e558ad273173cea73d Mon Sep 17 00:00:00 2001 >>> -From: Andrea Adami <andrea.adami@gmail.com> >>> -Date: Sat, 27 Jan 2018 09:52:46 +0100 >>> -Subject: [PATCH 9/9] Eliminate warnings about implicit non-const casting in >>> - libmtd >>> - >>> -The mtd_get_dev_info1 function reads (among other things) name and type >>> -string into coresponding struct mtd_dev_info fields. >>> - >>> -The struct mtd_dev_info has the string fields marked const, requiring >>> -them to be cast to non-const version during initialization. >>> - >>> -This cast was previously omitted from the dev_read_data calls, >>> -triggering warnings during compilation. >>> - >>> -Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at> >>> -Signed-off-by: Richard Weinberger <richard@nod.at> >>> - >>> -Upstream-Status: Backport >>> - >>> -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> >>> ---- >>> - lib/libmtd.c | 4 ++-- >>> - 1 file changed, 2 insertions(+), 2 deletions(-) >>> - >>> -diff --git a/lib/libmtd.c b/lib/libmtd.c >>> -index 60b4782..5f0bcbc 100644 >>> ---- a/lib/libmtd.c >>> -+++ b/lib/libmtd.c >>> -@@ -746,13 +746,13 @@ int mtd_get_dev_info1(libmtd_t desc, int mtd_num, struct mtd_dev_info *mtd) >>> - if (dev_get_major(lib, mtd_num, &mtd->major, &mtd->minor)) >>> - return -1; >>> - >>> -- ret = dev_read_data(lib->mtd_name, mtd_num, &mtd->name, >>> -+ ret = dev_read_data(lib->mtd_name, mtd_num, (char *)&mtd->name, >>> - MTD_NAME_MAX + 1); >>> - if (ret < 0) >>> - return -1; >>> - ((char *)mtd->name)[ret - 1] = '\0'; >>> - >>> -- ret = dev_read_data(lib->mtd_type, mtd_num, &mtd->type_str, >>> -+ ret = dev_read_data(lib->mtd_type, mtd_num, (char *)&mtd->type_str, >>> - MTD_TYPE_MAX + 1); >>> - if (ret < 0) >>> - return -1; >>> --- >>> -2.7.4 >>> - >>> diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0001-Add-simple-getline-implementation-to-libmissing.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0001-Add-simple-getline-implementation-to-libmissing.patch >>> new file mode 100644 >>> index 0000000..d4c6d87 >>> --- /dev/null >>> +++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0001-Add-simple-getline-implementation-to-libmissing.patch >>> @@ -0,0 +1,187 @@ >>> +From 10c289454dad34632d767694aecb508dae5073bf Mon Sep 17 00:00:00 2001 >>> +From: David Oberhollenzer <david.oberhollenzer@sigma-star.at> >>> +Date: Thu, 1 Feb 2018 12:16:18 +0100 >>> +Subject: [PATCH 1/4] Add simple getline() implementation to libmissing >>> + >>> +Some C libraries, like klibc don't implement getline(). This patch >>> +adds a simple stub implementation to libmissing that does an fgets >>> +into a stack allocated buffer and returns the result. >>> + >>> +Upstream-Status: Backport >>> + >>> +Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at> >>> +--- >>> + configure.ac | 1 + >>> + include/common.h | 1 + >>> + include/libmissing.h | 7 +++++++ >>> + jffsX-utils/Makemodule.am | 2 +- >>> + lib/Makemodule.am | 3 ++- >>> + lib/getline.c | 36 ++++++++++++++++++++++++++++++++++++ >>> + misc-utils/Makemodule.am | 2 ++ >>> + ubi-utils/Makemodule.am | 2 +- >>> + ubifs-utils/Makemodule.am | 1 + >>> + 9 files changed, 52 insertions(+), 3 deletions(-) >>> + create mode 100644 lib/getline.c >>> + >>> +diff --git a/configure.ac b/configure.ac >>> +index 83d754f..5af0115 100644 >>> +--- a/configure.ac >>> ++++ b/configure.ac >>> +@@ -191,6 +191,7 @@ if test "x$need_cmocka" = "xyes"; then >>> + fi >>> + >>> + AC_CHECK_HEADERS([execinfo.h]) >>> ++AC_CHECK_FUNCS([getline]) >>> + >>> + ##### produce summary on dependencies ##### >>> + >>> +diff --git a/include/common.h b/include/common.h >>> +index 2ce5d22..f8f72ea 100644 >>> +--- a/include/common.h >>> ++++ b/include/common.h >>> +@@ -32,6 +32,7 @@ >>> + #include <sys/sysmacros.h> >>> + >>> + #include "config.h" >>> ++#include "libmissing.h" >>> + >>> + #ifndef PROGRAM_NAME >>> + # error "You must define PROGRAM_NAME before including this header" >>> +diff --git a/include/libmissing.h b/include/libmissing.h >>> +index 0196033..09dbce1 100644 >>> +--- a/include/libmissing.h >>> ++++ b/include/libmissing.h >>> +@@ -7,11 +7,18 @@ >>> + #include <execinfo.h> >>> + #endif >>> + >>> ++#include <sys/types.h> >>> ++#include <stdio.h> >>> ++ >>> + #ifndef HAVE_EXECINFO_H >>> + int backtrace(void **buffer, int size); >>> + char **backtrace_symbols(void *const *buffer, int size); >>> + void backtrace_symbols_fd(void *const *buffer, int size, int fd); >>> + #endif >>> + >>> ++#ifndef HAVE_GETLINE >>> ++ssize_t getline(char **lineptr, size_t *n, FILE *stream); >>> ++#endif >>> ++ >>> + #endif /* LIBMISSING_H */ >>> + >>> +diff --git a/jffsX-utils/Makemodule.am b/jffsX-utils/Makemodule.am >>> +index fb181de..9d7a5d9 100644 >>> +--- a/jffsX-utils/Makemodule.am >>> ++++ b/jffsX-utils/Makemodule.am >>> +@@ -17,7 +17,7 @@ jffs2dump_SOURCES = jffsX-utils/jffs2dump.c >>> + jffs2dump_LDADD = libmtd.a $(ZLIB_LIBS) $(LZO_LIBS) >>> + >>> + sumtool_SOURCES = jffsX-utils/sumtool.c >>> +-sumtool_LDADD = libmtd.a >>> ++sumtool_LDADD = libmtd.a libmissing.a >>> + >>> + JFFSX_BINS = \ >>> + mkfs.jffs2 jffs2dump jffs2reader sumtool >>> +diff --git a/lib/Makemodule.am b/lib/Makemodule.am >>> +index 5bee5b6..645632a 100644 >>> +--- a/lib/Makemodule.am >>> ++++ b/lib/Makemodule.am >>> +@@ -7,7 +7,8 @@ libmtd_a_SOURCES = \ >>> + lib/libmtd_int.h >>> + >>> + libmissing_a_SOURCES = \ >>> +- lib/execinfo.c >>> ++ lib/execinfo.c \ >>> ++ lib/getline.c >>> + >>> + libubi_a_SOURCES = \ >>> + lib/libubi.c \ >>> +diff --git a/lib/getline.c b/lib/getline.c >>> +new file mode 100644 >>> +index 0000000..c575bf7 >>> +--- /dev/null >>> ++++ b/lib/getline.c >>> +@@ -0,0 +1,36 @@ >>> ++#include <stdlib.h> >>> ++#include <string.h> >>> ++ >>> ++#include "libmissing.h" >>> ++ >>> ++#ifndef HAVE_GETLINE >>> ++ssize_t getline(char **lineptr, size_t *n, FILE *stream) >>> ++{ >>> ++ char buffer[256], *new; >>> ++ size_t count; >>> ++ >>> ++ if (!(*lineptr)) >>> ++ *n = 0; >>> ++ >>> ++ if (!fgets(buffer, sizeof(buffer), stream)) { >>> ++ if (!feof(stream)) >>> ++ return -1; >>> ++ >>> ++ buffer[0] = '\0'; >>> ++ } >>> ++ >>> ++ count = strlen(buffer) + 1; >>> ++ >>> ++ if (*n < count) { >>> ++ new = realloc(*lineptr, count); >>> ++ if (!new) >>> ++ return -1; >>> ++ *lineptr = new; >>> ++ *n = count; >>> ++ } >>> ++ >>> ++ memcpy(*lineptr, buffer, count); >>> ++ return count; >>> ++} >>> ++#endif >>> ++ >>> +diff --git a/misc-utils/Makemodule.am b/misc-utils/Makemodule.am >>> +index ce1c385..bfc5342 100644 >>> +--- a/misc-utils/Makemodule.am >>> ++++ b/misc-utils/Makemodule.am >>> +@@ -1,4 +1,5 @@ >>> + ftl_format_SOURCES = misc-utils/ftl_format.c >>> ++ftl_format_LDADD = libmissing.a >>> + >>> + doc_loadbios_SOURCES = misc-utils/doc_loadbios.c >>> + >>> +@@ -25,6 +26,7 @@ flash_otp_info_SOURCES = misc-utils/flash_otp_info.c >>> + flash_otp_dump_SOURCES = misc-utils/flash_otp_dump.c >>> + >>> + flash_otp_lock_SOURCES = misc-utils/flash_otp_lock.c >>> ++flash_otp_lock_LDADD = libmissing.a >>> + >>> + flash_otp_write_SOURCES = misc-utils/flash_otp_write.c >>> + >>> +diff --git a/ubi-utils/Makemodule.am b/ubi-utils/Makemodule.am >>> +index 215eac2..7b447c7 100644 >>> +--- a/ubi-utils/Makemodule.am >>> ++++ b/ubi-utils/Makemodule.am >>> +@@ -23,7 +23,7 @@ ubinize_SOURCES = ubi-utils/ubinize.c >>> + ubinize_LDADD = libubi.a libubigen.a libmtd.a libiniparser.a >>> + >>> + ubiformat_SOURCES = ubi-utils/ubiformat.c >>> +-ubiformat_LDADD = libubi.a libubigen.a libmtd.a libscan.a >>> ++ubiformat_LDADD = libubi.a libubigen.a libmtd.a libscan.a libmissing.a >>> + >>> + ubirename_SOURCES = ubi-utils/ubirename.c >>> + ubirename_LDADD = libmtd.a libubi.a >>> +diff --git a/ubifs-utils/Makemodule.am b/ubifs-utils/Makemodule.am >>> +index 5862afb..787beb9 100644 >>> +--- a/ubifs-utils/Makemodule.am >>> ++++ b/ubifs-utils/Makemodule.am >>> +@@ -17,6 +17,7 @@ mkfs_ubifs_SOURCES = \ >>> + ubifs-utils/mkfs.ubifs/hashtable/hashtable_itr.c \ >>> + ubifs-utils/mkfs.ubifs/devtable.c >>> + mkfs_ubifs_LDADD = libmtd.a libubi.a $(ZLIB_LIBS) $(LZO_LIBS) $(UUID_LIBS) -lm >>> ++mkfs_ubifs_LDADD += libmissing.a >>> + mkfs_ubifs_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_CFLAGS) $(LZO_CFLAGS) $(UUID_CFLAGS) \ >>> + -I$(top_srcdir)/ubi-utils/include -I$(top_srcdir)/ubifs-utils/mkfs.ubifs/ >>> + >>> +-- >>> +2.7.4 >>> + >>> diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0002-Instead-of-doing-preprocessor-magic-just-output-off_.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0002-Instead-of-doing-preprocessor-magic-just-output-off_.patch >>> new file mode 100644 >>> index 0000000..bb675a7 >>> --- /dev/null >>> +++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0002-Instead-of-doing-preprocessor-magic-just-output-off_.patch >>> @@ -0,0 +1,326 @@ >>> +From 01c98d5d5d044d9a125abcdbb2f3d771966365b0 Mon Sep 17 00:00:00 2001 >>> +From: mirabilos <m@mirbsd.org> >>> +Date: Thu, 1 Feb 2018 15:34:07 +0100 >>> +Subject: [PATCH 2/4] Instead of doing preprocessor magic, just output off_t as >>> + long long >>> + >>> +Fix warnings abot PRIdoff_t in libmtd.c, in mtd_read (and mtd_write): >>> + >>> +In file included from ../git/lib/libmtd.c:40:0: >>> +../git/lib/libmtd.c: In function 'mtd_read': >>> +../git/include/common.h:110:18: warning: format '%ld' expects argument of >>> + type 'long int', but argument 5 has type 'off_t {aka long long int}' >>> + [-Wformat=] >>> + >>> +../git/include/common.h:120:2: note: in expansion of macro 'errmsg' >>> + errmsg(fmt, ##__VA_ARGS__); \ >>> + ^~~~~~ >>> +../git/lib/libmtd.c:1082:10: note: in expansion of macro 'sys_errmsg' >>> + return sys_errmsg("cannot seek mtd%d to offset %"PRIdoff_t, >>> + ^~~~~~~~~~ >>> + >>> +/usr/lib/klibc/include/inttypes.h:28:17: note: format string is defined here >>> + #define PRId32 "d" >>> + >>> +Upstream-Status: Submitted >>> + >>> +Signed-off-by: Thorsten Glaser <tg@mirbsd.org> >>> +--- >>> + include/common.h | 18 ------------------ >>> + jffsX-utils/mkfs.jffs2.c | 20 ++++++++++---------- >>> + lib/libmtd.c | 8 ++++---- >>> + misc-utils/flash_erase.c | 6 +++--- >>> + misc-utils/flash_otp_write.c | 2 +- >>> + misc-utils/ftl_check.c | 2 +- >>> + misc-utils/mtd_debug.c | 4 ++-- >>> + misc-utils/serve_image.c | 4 ++-- >>> + tests/fs-tests/integrity/integck.c | 4 ++-- >>> + tests/mtd-tests/nandpagetest.c | 4 ++-- >>> + tests/ubi-tests/integ.c | 6 +++--- >>> + ubifs-utils/mkfs.ubifs/mkfs.ubifs.c | 6 +++--- >>> + 12 files changed, 33 insertions(+), 51 deletions(-) >>> + >>> +diff --git a/include/common.h b/include/common.h >>> +index f8f72ea..642c212 100644 >>> +--- a/include/common.h >>> ++++ b/include/common.h >>> +@@ -70,24 +70,6 @@ extern "C" { >>> + #define O_CLOEXEC 0 >>> + #endif >>> + >>> +-/* define a print format specifier for off_t */ >>> +-#if (SIZEOF_OFF_T >= 8) >>> +-#define PRIxoff_t PRIx64 >>> +-#define PRIdoff_t PRId64 >>> +-#else >>> +-#define PRIxoff_t "l"PRIx32 >>> +-#define PRIdoff_t "l"PRId32 >>> +-#endif >>> +- >>> +-/* define a print format specifier for loff_t */ >>> +-#if (SIZEOF_LOFF_T >= 8) >>> +-#define PRIxloff_t PRIx64 >>> +-#define PRIdloff_t PRId64 >>> +-#else >>> +-#define PRIxloff_t "l"PRIx32 >>> +-#define PRIdloff_t "l"PRId32 >>> +-#endif >>> +- >>> + /* Verbose messages */ >>> + #define bareverbose(verbose, fmt, ...) do { \ >>> + if (verbose) \ >>> +diff --git a/jffsX-utils/mkfs.jffs2.c b/jffsX-utils/mkfs.jffs2.c >>> +index 9aa6c39..0661786 100644 >>> +--- a/jffsX-utils/mkfs.jffs2.c >>> ++++ b/jffsX-utils/mkfs.jffs2.c >>> +@@ -1237,8 +1237,8 @@ static void recursive_populate_directory(struct filesystem_entry *dir) >>> + } else switch (e->sb.st_mode & S_IFMT) { >>> + case S_IFDIR: >>> + if (verbose) { >>> +- printf("\td %04o %9" PRIdoff_t " %5d:%-3d %s\n", >>> +- e->sb.st_mode & ~S_IFMT, e->sb.st_size, >>> ++ printf("\td %04o %9lld %5d:%-3d %s\n", >>> ++ e->sb.st_mode & ~S_IFMT, (long long)e->sb.st_size, >>> + (int) (e->sb.st_uid), (int) (e->sb.st_gid), >>> + e->name); >>> + } >>> +@@ -1247,8 +1247,8 @@ static void recursive_populate_directory(struct filesystem_entry *dir) >>> + break; >>> + case S_IFSOCK: >>> + if (verbose) { >>> +- printf("\ts %04o %9" PRIdoff_t " %5d:%-3d %s\n", >>> +- e->sb.st_mode & ~S_IFMT, e->sb.st_size, >>> ++ printf("\ts %04o %9lld %5d:%-3d %s\n", >>> ++ e->sb.st_mode & ~S_IFMT, (long long)e->sb.st_size, >>> + (int) e->sb.st_uid, (int) e->sb.st_gid, e->name); >>> + } >>> + write_pipe(e); >>> +@@ -1256,8 +1256,8 @@ static void recursive_populate_directory(struct filesystem_entry *dir) >>> + break; >>> + case S_IFIFO: >>> + if (verbose) { >>> +- printf("\tp %04o %9" PRIdoff_t " %5d:%-3d %s\n", >>> +- e->sb.st_mode & ~S_IFMT, e->sb.st_size, >>> ++ printf("\tp %04o %9lld %5d:%-3d %s\n", >>> ++ e->sb.st_mode & ~S_IFMT, (long long)e->sb.st_size, >>> + (int) e->sb.st_uid, (int) e->sb.st_gid, e->name); >>> + } >>> + write_pipe(e); >>> +@@ -1285,8 +1285,8 @@ static void recursive_populate_directory(struct filesystem_entry *dir) >>> + break; >>> + case S_IFLNK: >>> + if (verbose) { >>> +- printf("\tl %04o %9" PRIdoff_t " %5d:%-3d %s -> %s\n", >>> +- e->sb.st_mode & ~S_IFMT, e->sb.st_size, >>> ++ printf("\tl %04o %9lld %5d:%-3d %s -> %s\n", >>> ++ e->sb.st_mode & ~S_IFMT, (long long)e->sb.st_size, >>> + (int) e->sb.st_uid, (int) e->sb.st_gid, e->name, >>> + e->link); >>> + } >>> +@@ -1297,8 +1297,8 @@ static void recursive_populate_directory(struct filesystem_entry *dir) >>> + wrote = write_regular_file(e); >>> + write_xattr_entry(e); >>> + if (verbose) { >>> +- printf("\tf %04o %9" PRIdoff_t " (%9u) %5d:%-3d %s\n", >>> +- e->sb.st_mode & ~S_IFMT, e->sb.st_size, wrote, >>> ++ printf("\tf %04o %9lld (%9u) %5d:%-3d %s\n", >>> ++ e->sb.st_mode & ~S_IFMT, (long long)e->sb.st_size, wrote, >>> + (int) e->sb.st_uid, (int) e->sb.st_gid, e->name); >>> + } >>> + break; >>> +diff --git a/lib/libmtd.c b/lib/libmtd.c >>> +index 86c89ae..f375381 100644 >>> +--- a/lib/libmtd.c >>> ++++ b/lib/libmtd.c >>> +@@ -1079,8 +1079,8 @@ int mtd_read(const struct mtd_dev_info *mtd, int fd, int eb, int offs, >>> + /* Seek to the beginning of the eraseblock */ >>> + seek = (off_t)eb * mtd->eb_size + offs; >>> + if (lseek(fd, seek, SEEK_SET) != seek) >>> +- return sys_errmsg("cannot seek mtd%d to offset %"PRIdoff_t, >>> +- mtd->mtd_num, seek); >>> ++ return sys_errmsg("cannot seek mtd%d to offset %lld", >>> ++ mtd->mtd_num, (long long)seek); >>> + >>> + while (rd < len) { >>> + ret = read(fd, buf + rd, len - rd); >>> +@@ -1188,8 +1188,8 @@ int mtd_write(libmtd_t desc, const struct mtd_dev_info *mtd, int fd, int eb, >>> + if (data) { >>> + /* Seek to the beginning of the eraseblock */ >>> + if (lseek(fd, seek, SEEK_SET) != seek) >>> +- return sys_errmsg("cannot seek mtd%d to offset %"PRIdoff_t, >>> +- mtd->mtd_num, seek); >>> ++ return sys_errmsg("cannot seek mtd%d to offset %lld", >>> ++ mtd->mtd_num, (long long)seek); >>> + ret = write(fd, data, len); >>> + if (ret != len) >>> + return sys_errmsg("cannot write %d bytes to mtd%d " >>> +diff --git a/misc-utils/flash_erase.c b/misc-utils/flash_erase.c >>> +index 0c9449f..ec4b2e1 100644 >>> +--- a/misc-utils/flash_erase.c >>> ++++ b/misc-utils/flash_erase.c >>> +@@ -53,8 +53,8 @@ int target_endian = __BYTE_ORDER; >>> + static void show_progress(struct mtd_dev_info *mtd, off_t start, int eb, >>> + int eb_start, int eb_cnt) >>> + { >>> +- bareverbose(!quiet, "\rErasing %d Kibyte @ %"PRIxoff_t" -- %2i %% complete ", >>> +- mtd->eb_size / 1024, start, ((eb - eb_start) * 100) / eb_cnt); >>> ++ bareverbose(!quiet, "\rErasing %d Kibyte @ %llx -- %2i %% complete ", >>> ++ mtd->eb_size / 1024, (unsigned long long)start, ((eb - eb_start) * 100) / eb_cnt); >>> + fflush(stdout); >>> + } >>> + >>> +@@ -210,7 +210,7 @@ int main(int argc, char *argv[]) >>> + if (!noskipbad) { >>> + int ret = mtd_is_bad(&mtd, fd, eb); >>> + if (ret > 0) { >>> +- verbose(!quiet, "Skipping bad block at %08"PRIxoff_t, offset); >>> ++ verbose(!quiet, "Skipping bad block at %08llx", (unsigned long long)offset); >>> + continue; >>> + } else if (ret < 0) { >>> + if (errno == EOPNOTSUPP) { >>> +diff --git a/misc-utils/flash_otp_write.c b/misc-utils/flash_otp_write.c >>> +index b02d0b0..04c96c6 100644 >>> +--- a/misc-utils/flash_otp_write.c >>> ++++ b/misc-utils/flash_otp_write.c >>> +@@ -76,7 +76,7 @@ int main(int argc,char *argv[]) >>> + return errno; >>> + } >>> + >>> +- printf("Writing OTP user data on %s at offset 0x%"PRIxoff_t"\n", argv[2], offset); >>> ++ printf("Writing OTP user data on %s at offset 0x%llx\n", argv[2], (unsigned long long)offset); >>> + >>> + if (mtd_type_is_nand_user(&mtdInfo)) >>> + len = mtdInfo.writesize; >>> +diff --git a/misc-utils/ftl_check.c b/misc-utils/ftl_check.c >>> +index a853cf4..e854922 100644 >>> +--- a/misc-utils/ftl_check.c >>> ++++ b/misc-utils/ftl_check.c >>> +@@ -131,7 +131,7 @@ static void check_partition(int fd) >>> + perror("read failed"); >>> + break; >>> + } >>> +- printf("\nErase unit %"PRIdoff_t":\n", i); >>> ++ printf("\nErase unit %lld:\n", (long long)i); >>> + if ((hdr2.FormattedSize != hdr.FormattedSize) || >>> + (hdr2.NumEraseUnits != hdr.NumEraseUnits) || >>> + (hdr2.SerialNumber != hdr.SerialNumber)) >>> +diff --git a/misc-utils/mtd_debug.c b/misc-utils/mtd_debug.c >>> +index ac37e23..d65ad36 100644 >>> +--- a/misc-utils/mtd_debug.c >>> ++++ b/misc-utils/mtd_debug.c >>> +@@ -160,7 +160,7 @@ retry: >>> + if (buf != NULL) >>> + free(buf); >>> + close(outfd); >>> +- printf("Copied %zu bytes from address 0x%.8"PRIxoff_t" in flash to %s\n", len, offset, filename); >>> ++ printf("Copied %zu bytes from address 0x%.8llx in flash to %s\n", len, (unsigned long long)offset, filename); >>> + return 0; >>> + >>> + err2: >>> +@@ -225,7 +225,7 @@ retry: >>> + if (buf != NULL) >>> + free(buf); >>> + fclose(fp); >>> +- printf("Copied %d bytes from %s to address 0x%.8"PRIxoff_t" in flash\n", len, filename, offset); >>> ++ printf("Copied %d bytes from %s to address 0x%.8llx in flash\n", len, filename, (unsigned long long)offset); >>> + return 0; >>> + } >>> + >>> +diff --git a/misc-utils/serve_image.c b/misc-utils/serve_image.c >>> +index f2475d6..6c8c8fb 100644 >>> +--- a/misc-utils/serve_image.c >>> ++++ b/misc-utils/serve_image.c >>> +@@ -129,8 +129,8 @@ int main(int argc, char **argv) >>> + } >>> + >>> + if (st.st_size % erasesize) { >>> +- fprintf(stderr, "Image size %" PRIdoff_t " bytes is not a multiple of erasesize %d bytes\n", >>> +- st.st_size, erasesize); >>> ++ fprintf(stderr, "Image size %lld bytes is not a multiple of erasesize %d bytes\n", >>> ++ (long long)st.st_size, erasesize); >>> + exit(1); >>> + } >>> + image = mmap(NULL, st.st_size, PROT_READ, MAP_PRIVATE, rfd, 0); >>> +diff --git a/tests/fs-tests/integrity/integck.c b/tests/fs-tests/integrity/integck.c >>> +index 84753d6..0a7f142 100644 >>> +--- a/tests/fs-tests/integrity/integck.c >>> ++++ b/tests/fs-tests/integrity/integck.c >>> +@@ -897,8 +897,8 @@ static ssize_t file_write_data(struct file_info *file, int fd, off_t offset, >>> + remains = size; >>> + actual = 0; >>> + written = IO_BUFFER_SIZE; >>> +- v("write %zd bytes, offset %"PRIdoff_t", file %s", >>> +- size, offset, get_file_name(file)); >>> ++ v("write %zd bytes, offset %lld, file %s", >>> ++ size, (long long)offset, get_file_name(file)); >>> + while (remains) { >>> + /* Fill up buffer with random data */ >>> + if (written < IO_BUFFER_SIZE) { >>> +diff --git a/tests/mtd-tests/nandpagetest.c b/tests/mtd-tests/nandpagetest.c >>> +index c6812df..465e548 100644 >>> +--- a/tests/mtd-tests/nandpagetest.c >>> ++++ b/tests/mtd-tests/nandpagetest.c >>> +@@ -232,8 +232,8 @@ static int verify_eraseblock(int ebnum) >>> + return err; >>> + >>> + if (lseek(fd, addr, SEEK_SET) != addr) { >>> +- fprintf(stderr, "cannot seek mtd%d to offset %"PRIdloff_t, >>> +- mtd.mtd_num, addr); >>> ++ fprintf(stderr, "cannot seek mtd%d to offset %lld", >>> ++ mtd.mtd_num, (long long)addr); >>> + return -1; >>> + } >>> + >>> +diff --git a/tests/ubi-tests/integ.c b/tests/ubi-tests/integ.c >>> +index 26c2ce5..1cd0649 100644 >>> +--- a/tests/ubi-tests/integ.c >>> ++++ b/tests/ubi-tests/integ.c >>> +@@ -243,7 +243,7 @@ static void check_erase_block(struct erase_block_info *erase_block, int fd) >>> + while (size) >>> + if (read_buffer[--size] != 0xff) { >>> + fprintf(stderr, "block no. = %d\n" , erase_block->block_number); >>> +- fprintf(stderr, "offset = %"PRIdoff_t"\n" , gap_start); >>> ++ fprintf(stderr, "offset = %lld\n" , (long long)gap_start); >>> + fprintf(stderr, "size = %ld\n" , (long) bytes_read); >>> + error_exit("verify 0xff failed"); >>> + } >>> +@@ -254,7 +254,7 @@ static void check_erase_block(struct erase_block_info *erase_block, int fd) >>> + errno = 0; >>> + bytes_read = read(fd, read_buffer, w->size); >>> + if (bytes_read != w->size) { >>> +- fprintf(stderr, "offset = %"PRIdoff_t"\n" , w->offset); >>> ++ fprintf(stderr, "offset = %lld\n" , (long long)w->offset); >>> + fprintf(stderr, "size = %ld\n" , (long) w->size); >>> + fprintf(stderr, "bytes_read = %ld\n" , (long) bytes_read); >>> + error_exit("read failed"); >>> +@@ -279,7 +279,7 @@ static void check_erase_block(struct erase_block_info *erase_block, int fd) >>> + while (size) >>> + if (read_buffer[--size] != 0xff) { >>> + fprintf(stderr, "block no. = %d\n" , erase_block->block_number); >>> +- fprintf(stderr, "offset = %"PRIdoff_t"\n" , gap_start); >>> ++ fprintf(stderr, "offset = %lld\n" , (long long)gap_start); >>> + fprintf(stderr, "size = %ld\n" , (long) bytes_read); >>> + error_exit("verify 0xff failed!"); >>> + } >>> +diff --git a/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c b/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c >>> +index c916f48..f0237ab 100644 >>> +--- a/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c >>> ++++ b/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c >>> +@@ -772,11 +772,11 @@ int write_leb(int lnum, int len, void *buf) >>> + return sys_err_msg("ubi_leb_change_start failed"); >>> + >>> + if (lseek(out_fd, pos, SEEK_SET) != pos) >>> +- return sys_err_msg("lseek failed seeking %"PRIdoff_t, pos); >>> ++ return sys_err_msg("lseek failed seeking %lld", (long long)pos); >>> + >>> + if (write(out_fd, buf, c->leb_size) != c->leb_size) >>> +- return sys_err_msg("write failed writing %d bytes at pos %"PRIdoff_t, >>> +- c->leb_size, pos); >>> ++ return sys_err_msg("write failed writing %d bytes at pos %lld", >>> ++ c->leb_size, (long long)pos); >>> + >>> + return 0; >>> + } >>> +-- >>> +2.7.4 >>> + >>> diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0003-Makefile.am-only-build-ubi-utils.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0003-Makefile.am-only-build-ubi-utils.patch >>> new file mode 100644 >>> index 0000000..08c53d1 >>> --- /dev/null >>> +++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0003-Makefile.am-only-build-ubi-utils.patch >>> @@ -0,0 +1,34 @@ >>> +From 139d93bc405272a3261d57be26da842e737fe4d0 Mon Sep 17 00:00:00 2001 >>> +From: Andrea Adami <andrea.adami@gmail.com> >>> +Date: Sun, 28 Jan 2018 23:10:34 +0100 >>> +Subject: [PATCH 3/4] Makefile.am: only build ubi-utils >>> + >>> +We only target the ubi-utils, static, small. >>> + >>> +Upstream-Status: Inappropriate [embedded specific] >>> + >>> +Signed-off-by: Andrea Adami <andrea.adami@gmail.com> >>> +--- >>> + Makefile.am | 6 +++--- >>> + 1 file changed, 3 insertions(+), 3 deletions(-) >>> + >>> +diff --git a/Makefile.am b/Makefile.am >>> +index 5a6e77c..98715dd 100644 >>> +--- a/Makefile.am >>> ++++ b/Makefile.am >>> +@@ -34,9 +34,9 @@ EXTRA_DIST += $(GLOBAL_HEADER) $(GLOBAL_EXTRA) >>> + >>> + include lib/Makemodule.am >>> + include ubi-utils/Makemodule.am >>> +-include misc-utils/Makemodule.am >>> +-include nand-utils/Makemodule.am >>> +-include nor-utils/Makemodule.am >>> ++#include misc-utils/Makemodule.am >>> ++#include nand-utils/Makemodule.am >>> ++#include nor-utils/Makemodule.am >>> + >>> + if BUILD_UBIFS >>> + include ubifs-utils/Makemodule.am >>> +-- >>> +2.7.4 >>> + >>> diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0004-mtd-utils-common.h-no-features.h-for-klibc-builds.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0004-mtd-utils-common.h-no-features.h-for-klibc-builds.patch >>> new file mode 100644 >>> index 0000000..5da05fa >>> --- /dev/null >>> +++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0004-mtd-utils-common.h-no-features.h-for-klibc-builds.patch >>> @@ -0,0 +1,38 @@ >>> +From ae1cf6d0eb1833e46549328a4473222c259723d7 Mon Sep 17 00:00:00 2001 >>> +From: Andrea Adami <andrea.adami@gmail.com> >>> +Date: Thu, 1 Feb 2018 00:25:00 +0100 >>> +Subject: [PATCH 4/4] mtd-utils: common.h: no features.h for klibc builds >>> + >>> +Add guard around features.h to fix missing include (here first error): >>> + >>> + ../git/include/common.h:29:10: >>> + fatal error: features.h: No such file or directory >>> + #include <features.h> >>> + ^~~~~~~~~~~~ >>> + compilation terminated >>> + >>> +Upstream-Status: Submitted >>> + >>> +Signed-off-by: Andrea Adami <andrea.adami@gmail.com> >>> +--- >>> + include/common.h | 3 +++ >>> + 1 file changed, 3 insertions(+) >>> + >>> +diff --git a/include/common.h b/include/common.h >>> +index 642c212..f7c71fe 100644 >>> +--- a/include/common.h >>> ++++ b/include/common.h >>> +@@ -26,7 +26,10 @@ >>> + #include <string.h> >>> + #include <fcntl.h> >>> + #include <errno.h> >>> ++#if defined(__KLIBC__) >>> ++#else >>> + #include <features.h> >>> ++#endif >>> + #include <inttypes.h> >>> + #include <unistd.h> >>> + #include <sys/sysmacros.h> >>> +-- >>> +2.7.4 >>> + >>> diff --git a/meta-initramfs/recipes-devtools/mtd/ ubi-utils-klibc_1.5.2.bb b/meta-initramfs/recipes-devtools/mtd/ ubi-utils-klibc_2.0.2.bb >>> similarity index 64% >>> rename from meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_1.5.2.bb >>> rename to meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_2.0.2.bb >>> index abb0d4b..85bc372 100644 >>> --- a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_1.5.2.bb >>> +++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_2.0.2.bb >>> @@ -7,30 +7,30 @@ LICENSE = "GPLv2+" >>> LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ >>> file://include/common.h;beginline=1;endline=17;md5=ba05b07912a44ea2bf81ce409380049c" >>> >>> -inherit klibc >>> +inherit autotools pkgconfig klibc >>> >>> -SRCREV = "aea36417067dade75192bafa03af70b6eb2677b1" >>> +SRCREV = "bc63d36e39f389c8c17f6a8e9db47f2acc884659" >>> SRC_URI = "git://git.infradead.org/mtd-utils.git \ >>> - file://0001-Makefile-build-ubi-utils-only.patch \ >>> - file://0002-common.mk-for-klibc-CC-is-klcc.patch \ >>> - file://0003-libubi.c-add-klibc-specific-fixes-for-ioctl.patch \ >>> - file://0004-Restore-compatibility-to-dietlibc-klibc-musl-libc-af.patch \ >>> - file://0005-common.h-more-workarounds-for-klibc-compatibility.patch \ >>> - file://0006-libiniparser-remove-unused-function-needing-float.patch \ >>> - file://0007-mtd-utils-common.c-convert-to-integer-arithmetic.patch \ >>> - file://0008-ubi-utils-ubiformat.c-convert-to-integer-arithmetic.patch \ >>> - file://0009-Eliminate-warnings-about-implicit-non-const-casting-.patch \ >>> + file://0001-Add-simple-getline-implementation-to-libmissing.patch \ >>> + file://0002-Instead-of-doing-preprocessor-magic-just-output-off_.patch \ >>> + file://0003-Makefile.am-only-build-ubi-utils.patch \ >>> + file://0004-mtd-utils-common.h-no-features.h-for-klibc-builds.patch \ >>> " >>> >>> S = "${WORKDIR}/git/" >>> >>> -EXTRA_OEMAKE = "'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'CFLAGS=${CFLAGS} -I${S}include -DWITHOUT_XATTR' 'BUILDDIR=${S}'" >>> +EXTRA_OECONF += "--disable-tests --without-jffs --without-ubifs" >>> + >>> +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'xattr', d)}" >>> +PACKAGECONFIG[xattr] = ",,acl," >>> + >>> +EXTRA_OEMAKE = "'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'CFLAGS=${CFLAGS} ${@bb.utils.contains('PACKAGECONFIG', 'xattr', '', '-DWITHOUT_XATTR', d)} -I${S}/include' 'BUILDDIR=${S}'" >>> >>> do_install () { >>> oe_runmake install DESTDIR=${D} SBINDIR=${sbindir} MANDIR=${mandir} INCLUDEDIR=${includedir} >>> } >>> >>> -PACKAGES = "ubi-utils-klibc-dbg" >>> +PACKAGES = "ubi-utils-klibc-dbg ubi-utils-klibc-doc" >>> >>> PACKAGES =+ "mtdinfo-klibc ubiattach-klibc ubiblock-klibc ubicrc32-klibc ubidetach-klibc \ >>> ubiformat-klibc ubimkvol-klibc ubinfo-klibc ubinize-klibc ubirename-klibc \ >> ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [meta-initramfs][PATCH] ubi-utils-klibc: update from v. 1.5.2 to 2.0.2 2018-05-17 16:09 ` Andrea Adami @ 2018-05-17 20:44 ` Andrea Adami 2018-05-22 15:53 ` Andrea Adami 0 siblings, 1 reply; 6+ messages in thread From: Andrea Adami @ 2018-05-17 20:44 UTC (permalink / raw) To: akuster808, Khem Raj; +Cc: OpenEmbedded Devel List </cut> >> This fails on qemuarm with the following error. > > >> > >> | ../git/include/libmissing.h:7:10: fatal error: execinfo.h: No such > >> file or directory > >> | #include <execinfo.h> > >> | ^~~~~~~~~~~~ > >> | compilation terminated. > >> | Makefile:2452: recipe for target 'ubi-utils/ubimkvol.o' failed > >> | make: *** [ubi-utils/ubimkvol.o] Error 1 > >> | Makefile:2452: recipe for target 'ubi-utils/ubicrc32.o' failed > >> | make: *** [ubi-utils/ubicrc32.o] Error 1 > >> | In file included from ../git/include/common.h:38:0, > >> | from ../git/ubi-utils/ubiupdatevol.c:40: > >> | ../git/include/libmissing.h:7:10: fatal error: execinfo.h: No such > >> file or directory > >> | #include <execinfo.h> > >> | ^~~~~~~~~~~~ > >> | compilation terminated. > >> | Makefile:2452: recipe for target 'ubi-utils/ubiupdatevol.o' failed > >> | make: *** [ubi-utils/ubiupdatevol.o] Error 1 > >> | ERROR: oe_runmake failed > >> > >> http://errors.yoctoproject.org/Errors/Build/60410/ > >> > >> - Armin > > > > > > Hi Armin, > > thanks for testing. > > > > Strange, I did cross-build for all archs, maybe some oe-core change. > > I'll compare with my log (attached the quemuarm). > > > > Cheers > > Andrea > > > > I see the issue is with execinfo.h. > As of last week ...musl did not have backtrace/execinfo so I think musl has been updated and now the HAVE_EXECINFO_H check fails. > I'll try to fix this in the recipe. > > > Cheers > Andrea > Armin, I can't reproduce this even after git-pull: Build Configuration: BB_VERSION = "1.37.0" BUILD_SYS = "x86_64-linux" NATIVELSBSTRING = "ubuntu-16.04" TARGET_SYS = "arm-oe-linux-musleabi" MACHINE = "qemuarm" DISTRO = "nodistro" DISTRO_VERSION = "nodistro.0" TUNE_FEATURES = "arm armv5 thumb dsp" TARGET_FPU = "soft" meta = "master:9611485bba03ef77ff31121e3b1da7cd57990c3e" meta-handheld = "master:891fefa796ff3a12e4d9470f44597a375818acb6" meta-initramfs meta-oe = "master:61576573e70f8c1d338ddb23d7b76044f68d1cd9" here logs of tosa (armv5te) and qemuarm (armv5e): https://pastebin.com/vNx4D14z https://pastebin.com/gw8vZvCf Please send me full configure and build logs. Andrea ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [meta-initramfs][PATCH] ubi-utils-klibc: update from v. 1.5.2 to 2.0.2 2018-05-17 20:44 ` Andrea Adami @ 2018-05-22 15:53 ` Andrea Adami 0 siblings, 0 replies; 6+ messages in thread From: Andrea Adami @ 2018-05-22 15:53 UTC (permalink / raw) To: akuster808, Khem Raj; +Cc: OpenEmbedded Devel List On Thu, May 17, 2018 at 10:44 PM, Andrea Adami <andrea.adami@gmail.com> wrote: > </cut> > >>> This fails on qemuarm with the following error. >> >> >> >> >> | ../git/include/libmissing.h:7:10: fatal error: execinfo.h: No such >> >> file or directory >> >> | #include <execinfo.h> >> >> | ^~~~~~~~~~~~ >> >> | compilation terminated. >> >> | Makefile:2452: recipe for target 'ubi-utils/ubimkvol.o' failed >> >> | make: *** [ubi-utils/ubimkvol.o] Error 1 >> >> | Makefile:2452: recipe for target 'ubi-utils/ubicrc32.o' failed >> >> | make: *** [ubi-utils/ubicrc32.o] Error 1 >> >> | In file included from ../git/include/common.h:38:0, >> >> | from ../git/ubi-utils/ubiupdatevol.c:40: >> >> | ../git/include/libmissing.h:7:10: fatal error: execinfo.h: No such >> >> file or directory >> >> | #include <execinfo.h> >> >> | ^~~~~~~~~~~~ >> >> | compilation terminated. >> >> | Makefile:2452: recipe for target 'ubi-utils/ubiupdatevol.o' failed >> >> | make: *** [ubi-utils/ubiupdatevol.o] Error 1 >> >> | ERROR: oe_runmake failed >> >> >> >> http://errors.yoctoproject.org/Errors/Build/60410/ >> >> >> >> - Armin >> > >> > >> > Hi Armin, >> > thanks for testing. >> > >> > Strange, I did cross-build for all archs, maybe some oe-core change. >> > I'll compare with my log (attached the quemuarm). >> > >> > Cheers >> > Andrea >> > >> >> I see the issue is with execinfo.h. >> As of last week ...musl did not have backtrace/execinfo so I think musl has been updated and now the HAVE_EXECINFO_H check fails. >> I'll try to fix this in the recipe. >> >> >> Cheers >> Andrea >> > Armin, > > I can't reproduce this even after git-pull: > > Build Configuration: > BB_VERSION = "1.37.0" > BUILD_SYS = "x86_64-linux" > NATIVELSBSTRING = "ubuntu-16.04" > TARGET_SYS = "arm-oe-linux-musleabi" > MACHINE = "qemuarm" > DISTRO = "nodistro" > DISTRO_VERSION = "nodistro.0" > TUNE_FEATURES = "arm armv5 thumb dsp" > TARGET_FPU = "soft" > meta = "master:9611485bba03ef77ff31121e3b1da7cd57990c3e" > meta-handheld = "master:891fefa796ff3a12e4d9470f44597a375818acb6" > meta-initramfs > meta-oe = "master:61576573e70f8c1d338ddb23d7b76044f68d1cd9" > > here logs of tosa (armv5te) and qemuarm (armv5e): > > https://pastebin.com/vNx4D14z > https://pastebin.com/gw8vZvCf > > > Please send me full configure and build logs. > Andrea Ok, after the post I realized it is happening only with glibc. Musl builds fine. The cause is the backported patch I received from the upstream maintainer: let say for the moment I will skip that patch and replace getline() like it was before. This should fix the glibc build so I plan to send a patch v2. Please disregard this one, thanks. Andrea ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2018-05-22 15:53 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2018-05-13 22:16 [meta-initramfs][PATCH] ubi-utils-klibc: update from v. 1.5.2 to 2.0.2 Andrea Adami 2018-05-17 14:15 ` akuster808 2018-05-17 15:31 ` Andrea Adami 2018-05-17 16:09 ` Andrea Adami 2018-05-17 20:44 ` Andrea Adami 2018-05-22 15:53 ` Andrea Adami
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.