On AIX 5.1 and likely also 5.2, I get these warnings passfd.c: In function 'sendfd': passfd.c:60: warning: implicit declaration of function 'CMSG_SPACE' passfd.c:67: warning: implicit declaration of function 'CMSG_LEN'
and later on link errors because CMSG_SPACE and CMSG_LEN are not functions. The reason is that <sys/socket.h> defines these two macros only if _LINUX_SOURCE_COMPAT is defined. This fixes it: 2011-03-13 Bruno Haible <br...@clisp.org> passfd: Fix link error on AIX 5.2. * m4/afunix.m4 (gl_SOCKET_AFUNIX): Define _LINUX_SOURCE_COMPAT. --- m4/afunix.m4.orig Sun Mar 13 23:59:07 2011 +++ m4/afunix.m4 Sun Mar 13 23:59:05 2011 @@ -1,4 +1,4 @@ -# afunix.m4 serial 4 +# 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, @@ -38,6 +38,10 @@ [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( -- In memoriam Odette Sansom <http://en.wikipedia.org/wiki/Odette_Hallowes>