--- a/Foundation/src/Error.cpp
+++ b/Foundation/src/Error.cpp
-@@ -66,7 +66,7 @@
- without -D_GNU_SOURCE is needed, otherwise the GNU version is
- preferred.
- */
--#if defined _GNU_SOURCE && !POCO_ANDROID
-+#if (defined _GNU_SOURCE && (defined __GLIBC__ || defined __UCLIBC__)) && !POCO_ANDROID
- char errmsg[256] = "";
- return std::string(strerror_r(errorCode, errmsg, 256));
- #elif (_XOPEN_SOURCE >= 600) || POCO_ANDROID
+@@ -70,7 +70,7 @@ namespace Poco {
+
+ #if (_XOPEN_SOURCE >= 600) || POCO_ANDROID || __APPLE__
+ setMessage(strerror_r(err, _buffer, sizeof(_buffer)));
+-#elif _GNU_SOURCE
++#elif (_GNU_SOURCE && (defined __GLIBC__ || defined __UCLIBC__))
+ setMessage(strerror_r(err, _buffer, sizeof(_buffer)));
+ #else
+ setMessage(strerror(err));