-# afunix.m4 serial 2
+# afunix.m4 serial 5
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
[Define to 1 if <sys/socket.h> defines SCM_RIGHTS.])
fi
+ dnl Persuade AIX 5.2 <sys/socket.h> to declare CMSG_SPACE, CMSG_LEN.
+ AC_DEFINE([_LINUX_SOURCE_COMPAT], [1],
+ [Define in order to get some macros on AIX systems.])
+
AC_MSG_CHECKING([for UNIX domain sockets SCM_RIGHTS that behave in BSD4.4 way])
AC_CACHE_VAL([gl_cv_socket_unix_scm_rights_bsd44_way],
[AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[[#include <sys/types.h>
+ #include <stddef.h>
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
struct cmsghdr *cmsg;
int myfds[1] = {0};
char buf[CMSG_SPACE (sizeof (myfds))];
- int *fdptr;
msg.msg_control = buf;
msg.msg_controllen = sizeof buf;
AC_DEFINE([HAVE_UNIXSOCKET_SCM_RIGHTS_BSD43_WAY], [1],
[Define to 1 if fd can be sent/received in the BSD4.3 way.])
fi
+
+ AC_MSG_CHECKING([for UNIX domain sockets recvmsg() MSG_CMSG_CLOEXEC flag])
+ AC_CACHE_VAL([gl_cv_socket_unix_msg_cmsg_cloexec],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <sys/types.h>
+ #ifdef HAVE_SYS_SOCKET_H
+ #include <sys/socket.h>
+ #endif
+ #ifdef HAVE_SYS_UN_H
+ #include <sys/un.h>
+ #endif
+ #ifdef HAVE_WINSOCK2_H
+ #include <winsock2.h>
+ #endif
+ ]],
+ [[int flags = MSG_CMSG_CLOEXEC;
+ if (&flags) return 0;
+ ]])],
+ [gl_cv_socket_unix_msg_cmsg_cloexec=yes],
+ [gl_cv_socket_unix_msg_cmsg_cloexec=no])
+ ])
+ AC_MSG_RESULT([$gl_cv_socket_unix_msg_cmsg_cloexec])
+ if test $gl_cv_socket_unix_msg_cmsg_cloexec = yes; then
+ AC_DEFINE([HAVE_MSG_CMSG_CLOEXEC], [1],
+ [Define to 1 if recvmsg could be specified with MSG_CMSG_CLOEXEC.])
+ fi
])