ChangeLog: - added a test for the msg_control field in struct msghdr (does't appear in sparc-solaris) Wordier Description: This is the first part of a series of five patches needed to get wine compiled on sparc-solaris, and some of the provided applications to compile and run. I've verified that wine compiles with all five patches applied under linux-x86 and that the basics still work... Warren Baird : Warren_Baird@cimmetry.com diff -ur clean/wine-20020509/configure.ac wine-20020509/configure.ac --- clean/wine-20020509/configure.ac Thu May 9 21:33:41 2002 +++ wine-20020509/configure.ac Thu May 16 10:28:35 2002 @@ -1176,6 +1176,13 @@ #include <sys/socket.h>], [AC_DEFINE(HAVE_MSGHDR_ACCRIGHTS, 1, [Define if struct msghdr contains msg_accrights])]) +dnl Check for msg control fields in msghdr +WINE_CHECK_STRUCT_MEMBER(msghdr,msg_control, +[#include <sys/types.h> +#include <sys/socket.h>], + [AC_DEFINE(HAVE_MSGHDR_MSGCTRL, 1, [Define if struct msghdr contains msg_control])]) + + dnl Check for the sa_len member in struct sockaddr WINE_CHECK_STRUCT_MEMBER(sockaddr,sa_len, [#include <sys/types.h> diff -ur clean/wine-20020509/include/config.h.in wine-20020509/include/config.h.in --- clean/wine-20020509/include/config.h.in Thu May 9 21:33:41 2002 +++ wine-20020509/include/config.h.in Thu May 16 10:30:24 2002 @@ -293,6 +293,9 @@ /* Define if struct msghdr contains msg_accrights */ #undef HAVE_MSGHDR_ACCRIGHTS +/* Define if struct msghdr contains msg_control */ +#undef HAVE_MSGHDR_MSGCTRL + /* Define to 1 if you have the <ncurses.h> header file. */ #undef HAVE_NCURSES_H diff -ur clean/wine-20020509/dlls/winsock/socket.c wine-20020509/dlls/winsock/socket.c --- clean/wine-20020509/dlls/winsock/socket.c Fri Apr 26 21:05:35 2002 +++ wine-20020509/dlls/winsock/socket.c Thu May 16 10:34:37 2002 @@ -1141,10 +1141,11 @@ hdr.msg_iov = iov; hdr.msg_iovlen = count; +#ifdef HAVE_MSGHDR_MSGCTRL hdr.msg_control = NULL; hdr.msg_controllen = 0; hdr.msg_flags = 0; - +#endif if ( (n = recvmsg (fd, &hdr, *lpFlags)) == -1 ) { TRACE ( "recvmsg error %d\n", errno); @@ -1245,9 +1246,11 @@ hdr.msg_iov = iov; hdr.msg_iovlen = count; +#ifdef HAVE_MSGHDR_MSGCTRL hdr.msg_control = NULL; hdr.msg_controllen = 0; hdr.msg_flags = 0; +#endif n = sendmsg (fd, &hdr, dwFlags);