--- ./gsoap/stdsoap2.cpp.orig +++ ./gsoap/stdsoap2.cpp @@ -18691,7 +18691,7 @@ { #ifndef WIN32 # ifdef HAVE_STRERROR_R -# if defined(_GNU_SOURCE) && !defined(__ANDROID__) +# if defined(_GNU_SOURCE) && !defined(__ANDROID__) && defined(__GLIBC__) return strerror_r(err, soap->msgbuf, sizeof(soap->msgbuf)); /* GNU-specific */ # else strerror_r(err, soap->msgbuf, sizeof(soap->msgbuf)); /* XSI-compliant */ --- ./gsoap/stdsoap2.h.orig +++ ./gsoap/stdsoap2.h @@ -677,7 +677,7 @@ # define SOAP_LOCALE(soap) ((soap)->c_locale ? (soap)->c_locale : ((soap)->c_locale = _create_locale(LC_ALL, "C"))) # define SOAP_FREELOCALE(soap) (void)((soap)->c_locale && (_free_locale((soap)->c_locale), ((soap)->c_locale = NULL))) # else -# if !defined(CYGWIN) +# if !defined(CYGWIN) && defined(__GLIBC__) # include # else # undef HAVE_STRTOF_L @@ -943,7 +943,7 @@ # endif #elif defined(SOCKLEN_T) # define SOAP_SOCKLEN_T SOCKLEN_T -#elif defined(__socklen_t_defined) || defined(_SOCKLEN_T) || defined(CYGWIN) || defined(FREEBSD) || defined(__FreeBSD__) || defined(OPENBSD) || defined(__QNX__) || defined(QNX) || defined(OS390) || defined(__ANDROID__) || defined(_XOPEN_SOURCE) +#elif defined(__socklen_t_defined) || defined(_SOCKLEN_T) || defined(CYGWIN) || defined(FREEBSD) || defined(__FreeBSD__) || defined(OPENBSD) || defined(__QNX__) || defined(QNX) || defined(OS390) || defined(__ANDROID__) || defined(_XOPEN_SOURCE) || defined (LINUX) # define SOAP_SOCKLEN_T socklen_t #elif defined(IRIX) || defined(WIN32) || defined(__APPLE__) || defined(SUN_OS) || defined(OPENSERVER) || defined(TRU64) || defined(VXWORKS) # define SOAP_SOCKLEN_T int