buildroot/package/mtd/0001-Fix-rpmatch-call-under-uClibc-and-musl.patch
Jörg Krause d9ae279e6a package/mtd: fix musl compile
Update rpmatch patch to commit 5923077649ca167991a24ca05bd285fdf6fa1a06 and
expand to musl. Rename it.

Add more patches to fix compile issues with musl.

Patches sent upstream:
1) "include/common.h: fix build against musl"
   http://patchwork.ozlabs.org/patch/464074/
2) "lib/libfec.c: fix build against musl"
   http://patchwork.ozlabs.org/patch/464073/
3) "serve_image: do not include error.h"
   http://patchwork.ozlabs.org/patch/464416/
4) "recv_image: do not include error.h"
   http://patchwork.ozlabs.org/patch/464417/

Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
Reported-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-04-25 10:20:23 +02:00

79 lines
2.6 KiB
Diff

From b56296212c27071f06d98cdad6b32b7db583adb0 Mon Sep 17 00:00:00 2001
From: Baruch Siach <baruch@tkos.co.il>
Date: Sun, 13 Apr 2014 15:26:46 +0300
Subject: [PATCH 1/1] Fix rpmatch() call under uClibc and musl
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The current uClibc 0.9.33 and the musl C library do not implement rpmatch().
Combine two upstream uClibc patches (commit 50c9e11f7e and
5923077649) and a musl patch sent to the mailing list
(http://patchwork.ozlabs.org/patch/464074/).
include/common.h: fix build against current uClibc
Commit dbe0fd17f2 (mtd-utils: new prompt() helper for talking to the user)
introduced a rpmatch() call. However, uClibc versions older than (not yet
released) 0.9.34 don't have rpmatch() implementation. Add one.
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Acked-by: Mike Frysinger <vapier@gentoo.org>
include/common.h: fix build against recent 0.9.33 uClibc
An implementation of rpmatch() was backported to the 0.9.33 branch of uClibc.
So the uClibc version check introduced in commit 50c9e11f7e (include/common.h:
fix build against current uClibc) is not enough. Rename the local rpmatch()
implementation to avoid collision.
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Acked-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
include/common.h: fix build against musl
Like uClibc version older than (not yet released) 0.9.34 musl does not have
a rpmatch() implementation.
uClibc defines both __UCLIBC__ and __GLIBC__. So first check for uCibc and its
version and then for a non glibc implementation (like musl). Note, musl does
not define __MUSL__.
Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
---
include/common.h | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/include/common.h b/include/common.h
index 4ffccea..944c712 100644
--- a/include/common.h
+++ b/include/common.h
@@ -102,6 +102,21 @@ extern "C" {
fprintf(stderr, "%s: warning!: " fmt "\n", PROGRAM_NAME, ##__VA_ARGS__); \
} while(0)
+/* uClibc versions before 0.9.34 and musl don't have rpmatch() */
+#if defined(__UCLIBC__) && \
+ (__UCLIBC_MAJOR__ == 0 && \
+ (__UCLIBC_MINOR__ < 9 || \
+ (__UCLIBC_MINOR__ == 9 && __UCLIBC_SUBLEVEL__ < 34))) || \
+ !defined(__GLIBC__)
+#undef rpmatch
+#define rpmatch __rpmatch
+static inline int __rpmatch(const char *resp)
+{
+ return (resp[0] == 'y' || resp[0] == 'Y') ? 1 :
+ (resp[0] == 'n' || resp[0] == 'N') ? 0 : -1;
+}
+#endif
+
/**
* prompt the user for confirmation
*/
--
2.3.6