summaryrefslogtreecommitdiffstats
path: root/configure.in
diff options
context:
space:
mode:
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in40
1 files changed, 39 insertions, 1 deletions
diff --git a/configure.in b/configure.in
index 557238bc..4b613e06 100644
--- a/configure.in
+++ b/configure.in
@@ -131,7 +131,45 @@ AC_CHECK_SIZEOF(__int64)
## byte order
AC_C_BIGENDIAN
-AC_CHECK_FUNCS(vsnprintf vasprintf getpwnam_r nanosleep usleep poll)
+AC_CHECK_LIB(socket,socket)
+
+AC_CHECK_FUNCS(vsnprintf vasprintf nanosleep usleep poll setenv)
+
+AC_CACHE_CHECK([for posix getpwnam_r],
+ ac_cv_func_posix_getpwnam_r,
+ [AC_TRY_RUN([
+#include <errno.h>
+#include <pwd.h>
+int main () {
+ char buffer[10000];
+ struct passwd pwd, *pwptr = &pwd;
+ int error;
+ errno = 0;
+ error = getpwnam_r ("", &pwd, buffer,
+ sizeof (buffer), &pwptr);
+ return (error < 0 && errno == ENOSYS)
+ || error == ENOSYS;
+} ],
+ [ac_cv_func_posix_getpwnam_r=yes],
+ [ac_cv_func_posix_getpwnam_r=no])])
+if test "$ac_cv_func_posix_getpwnam_r" = yes; then
+ AC_DEFINE(HAVE_POSIX_GETPWNAM_R,1,
+ [Have POSIX function getpwnam_r])
+else
+ AC_CACHE_CHECK([for nonposix getpwnam_r],
+ ac_cv_func_nonposix_getpwnam_r,
+ [AC_TRY_LINK([#include <pwd.h>],
+ [char buffer[10000];
+ struct passwd pwd;
+ getpwnam_r ("", &pwd, buffer,
+ sizeof (buffer));],
+ [ac_cv_func_nonposix_getpwnam_r=yes],
+ [ac_cv_func_nonposix_getpwnam_r=no])])
+ if test "$ac_cv_func_nonposix_getpwnam_r" = yes; then
+ AC_DEFINE(HAVE_NONPOSIX_GETPWNAM_R,1,
+ [Have non-POSIX function getpwnam_r])
+ fi
+fi
dnl check for writev header and writev function so we're
dnl good to go if HAVE_WRITEV gets defined.