POSIX version of strerror_r returns int

visa/iga/IGALibrary/system.cpp:263:14: error: assigning to 'char *' from incompatible type 'int'
    errMsg = strerror_r(errCode, buf, sizeof(buf));
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

--- visa/iga/IGALibrary/system.cpp.orig	2021-09-11 19:03:27 UTC
+++ visa/iga/IGALibrary/system.cpp
@@ -259,8 +259,13 @@ std::string iga::FormatLastError(unsigned errCode)
         NULL);
     if (errMsg)
         msg = errMsg;
-#else
+#elif defined(__GLIBC__)
     errMsg = strerror_r(errCode, buf, sizeof(buf));
+#else
+    if (strerror_r(errCode, buf, sizeof(buf)))
+        errMsg = nullptr;
+    else
+        errMsg = buf;
 #endif // _WIN32
     if (errMsg == nullptr || errMsg[0] == 0)
         return "???";
