Test for gai_strerror()
authorAlexander Barton <alex@barton.de>
Sun, 6 Nov 2011 13:16:59 +0000 (14:16 +0100)
committerAlexander Barton <alex@barton.de>
Sun, 6 Nov 2011 13:16:59 +0000 (14:16 +0100)
If gai_strerror() isn't available, use a macro that simply returns
a static error message (regardless of the real error code).

For example, GNU libc 2.0.7 doesn't implement gai_strerror().

configure.in
src/portab/portab.h

index e48e9e394148514e94c8978e3c796849f8153c9f..92434ec7d044945f9a25914804cd0df289acade1 100644 (file)
@@ -160,10 +160,12 @@ AC_FUNC_STRFTIME
 
 AC_CHECK_FUNCS([ \
        bind gethostbyaddr gethostbyname gethostname inet_ntoa \
-       setsid setsockopt socket strcasecmp waitpid],,AC_MSG_ERROR([required function missing!]))
+       setsid setsockopt socket strcasecmp waitpid],,
+       AC_MSG_ERROR([required function missing!]))
 
-AC_CHECK_FUNCS(getaddrinfo getnameinfo inet_aton sigaction sigprocmask snprintf \
- vsnprintf strdup strlcpy strlcat strtok_r)
+AC_CHECK_FUNCS([ \
+       gai_strerror getaddrinfo getnameinfo inet_aton sigaction \
+       sigprocmask snprintf vsnprintf strdup strlcpy strlcat strtok_r])
 
 # -- Configuration options --
 
index a75aa34d03ca88eb878f35cba0c93af9a1b98974..90f36a0ea0e586e3b64f6aeb762f73ba7a5f4098 100644 (file)
@@ -164,6 +164,10 @@ extern char * strtok_r PARAMS((char *str, const char *delim, char **saveptr));
 extern int vsnprintf PARAMS(( char *str, size_t count, const char *fmt, va_list args ));
 #endif
 
+#ifndef HAVE_GAI_STRERROR
+#define gai_strerror(r) "unknown error"
+#endif
+
 #ifndef PACKAGE_NAME
 #define PACKAGE_NAME PACKAGE
 #endif