Reported by "Tom G. Christensen" <tgc@jupiterrise.com>.
+2009-05-20 Simon Josefsson <simon@josefsson.org>
+
+ MinGW and IRIX does not have sa_family_t type. Reported by "Tom
+ G. Christensen" <tgc@jupiterrise.com>.
+ * m4/sys_socket_h.m4: Check for sa_family_t.
+ * lib/sys_socket.in.h: Typedef sa_family_t when needed.
+ * modules/sys_socket: Substitute HAVE_SA_FAMILY_T.
+ * tests/test-sys_socket.c: Check that sa_family_t works.
+
2009-05-18 Eric Blake <ebb9@byu.net>
maint.mk: allow gnulib_dir in VPATH build
#ifndef _GL_SYS_SOCKET_H
#define _GL_SYS_SOCKET_H
+#if !@HAVE_SA_FAMILY_T@
+typedef unsigned short sa_family_t;
+#endif
+
#if !@HAVE_STRUCT_SOCKADDR_STORAGE@
# include <alignof.h>
/* Code taken from glibc sysdeps/unix/sysv/linux/bits/socket.h on
fi
# We need to check for ws2tcpip.h now.
gl_PREREQ_SYS_H_SOCKET
- AC_CHECK_TYPES([struct sockaddr_storage],,,[
+ AC_CHECK_TYPES([struct sockaddr_storage, sa_family_t],,,[
/* sys/types.h is not needed according to POSIX, but the
sys/socket.h in i386-unknown-freebsd4.10 and
powerpc-apple-darwin5.5 required it. */
HAVE_STRUCT_SOCKADDR_STORAGE=0
SYS_SOCKET_H='sys/socket.h'
fi
+ if test $ac_cv_type_sa_family_t = no; then
+ HAVE_SA_FAMILY_T=0
+ SYS_SOCKET_H='sys/socket.h'
+ fi
if test -n "$SYS_SOCKET_H"; then
gl_PREREQ_SYS_H_WINSOCK2
fi
GNULIB_SETSOCKOPT=0; AC_SUBST([GNULIB_SETSOCKOPT])
GNULIB_SHUTDOWN=0; AC_SUBST([GNULIB_SHUTDOWN])
HAVE_STRUCT_SOCKADDR_STORAGE=1; AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE])
+ HAVE_SA_FAMILY_T=1; AC_SUBST([HAVE_SA_FAMILY_T])
])
-e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \
-e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \
-e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE''@|$(HAVE_STRUCT_SOCKADDR_STORAGE)|g' \
+ -e 's|@''HAVE_SA_FAMILY_T''@|$(HAVE_SA_FAMILY_T)|g' \
-e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
< $(srcdir)/sys_socket.in.h; \
} > $@-t
main ()
{
struct sockaddr_storage x;
+ sa_family_t i;
/* Check some errno values. */
switch (0)
}
x.ss_family = 42;
+ i = 4711;
return 0;
}