34 lines
1.4 KiB
Diff
34 lines
1.4 KiB
Diff
|
From 30159aea4b3f6421da9d74a8bf22aad6d3bf26b4 Mon Sep 17 00:00:00 2001
|
||
|
From: =?UTF-8?q?J=C3=B6rg=20Krause?= <joerg.krause@embedded.rocks>
|
||
|
Date: Mon, 4 Apr 2016 20:48:43 +0200
|
||
|
Subject: [PATCH] GNU version of strerror_r not available on musl
|
||
|
|
||
|
The GNU version of glibc' `strerror_r` is non-portable.
|
||
|
|
||
|
When the POSIX and GNU API collides musl always provides the POSIX API. That
|
||
|
being the case for `strerror_r` musl does only support the POSIX version,
|
||
|
despite of `_GNU_SOURCE`.
|
||
|
|
||
|
[Upstream commit: https://github.com/pocoproject/poco/commit/30159aea4b3f6421da9d74a8bf22aad6d3bf26b4]
|
||
|
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||
|
---
|
||
|
Foundation/src/Error.cpp | 5 ++++-
|
||
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/Foundation/src/Error.cpp b/Foundation/src/Error.cpp
|
||
|
index 6a8afb705f..00991fc0be 100644
|
||
|
--- a/Foundation/src/Error.cpp
|
||
|
+++ b/Foundation/src/Error.cpp
|
||
|
@@ -69,7 +69,10 @@ namespace Poco {
|
||
|
without -D_GNU_SOURCE is needed, otherwise the GNU version is
|
||
|
preferred.
|
||
|
*/
|
||
|
-#if defined _GNU_SOURCE && !POCO_ANDROID
|
||
|
+ /* The GNU version of strerror_r is non-portable and not
|
||
|
+ available on the musl C library.
|
||
|
+ */
|
||
|
+#if (defined __GLIBC__ || defined __UCLIBC__) && defined _GNU_SOURCE && !POCO_ANDROID
|
||
|
char errmsg[256] = "";
|
||
|
return std::string(strerror_r(errorCode, errmsg, 256));
|
||
|
#elif (_XOPEN_SOURCE >= 600) || POCO_ANDROID
|