--- a/Foundation/src/Error.cpp
+++ b/Foundation/src/Error.cpp
@@ -70,7 +70,7 @@ namespace Poco {
 
 #if (_XOPEN_SOURCE >= 600) || POCO_OS == POCO_OS_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));