[petsc-users] MATLAB with PETSC

Barry Smith bsmith at mcs.anl.gov
Thu Oct 8 13:37:44 CDT 2015


  Alexander,

  Windows supports a very different API for sockets than Unix. If you want this socket stuff for Windows I think you have to more or less write a completely different piece of code that is Windows specific.

   Barry

> On Oct 8, 2015, at 3:54 AM, Alexander Korovin <Alexander.Korovin at lgep.supelec.fr> wrote:
> 
> Dear, Petsc-users.
> 
> I'm sorry for your trouble.
> I'm trying to test the ability of PETSc (PETSc-3.6.2), in MATLAB
> (R2015a, version for Windows) using CYGWIN (latest version).
> For the configure I used:
> export PETSC_ARCH=win32-gnu
> ./configure PETSC_ARCH=win32-gnu --with-shared-libraries --with-matlab-engine --with-matlab --with-mpi=0 --download-fblaslapack=1 --with-x=0
> 
> There was an error in Matlab.py, because MATLAB does not work
> in NoDisplay mode in Windows. To fix this, I put "r = 8.5"
> after line 62 in Matlab.py.
> 
> Now  I  have  a lot of mistakes when I do make. They are all connected
> with the compilation of sopen.c.
> No error when I compile other files for MATLAB.
> 
> It would be nice if you could help me with this problem.
> Thank you in advance.
> 
> ***** copy of error messages *******
> $ /cygdrive/d/R2015a/bin/win32/mex -I/cygdrive/d/R2015a/petsc-3.6.2/include -I/cygdrive/d/R2015a/petsc-3.6.2/win32-gnu/include -I/cygdrive/d/R2015a/extern/include -I/cygdrive/d/R2015a/petsc-3.6.2/include/petsc/mpiuni swrite.c bread.c
> Warning: Legacy MEX infrastructure is provided for compatibility; it will be removed in a future version of MATLAB. For more information, consult the MEX release notes http://www.mathworks.com/help/matlab/release-notes.html.
> 
> $ /cygdrive/d/R2015a/bin/win32/mex -I/cygdrive/d/R2015a/petsc-3.6.2/include -I/cygdrive/d/R2015a/petsc-3.6.2/win32-gnu/include -I/cygdrive/d/R2015a/extern/include -I/cygdrive/d/R2015a/petsc-3.6.2/include/petsc/mpiuni sopen.c
> In file included from /usr/include/w32api/winsock2.h:56:0,
>                 from /usr/include/w32api/Ws2tcpip.h:17,
>                 from sopen.c:58:
> /usr/include/w32api/psdk_inc/_fd_types.h:100:2: warning: #warning "fd_set and associated macros have been defined in sys/types.      This can cause runtime problems with W32 sockets" [-Wcpp]
> #warning "fd_set and associated macros have been defined in sys/types.  \
>  ^
> In file included from /usr/include/w32api/winsock2.h:57:0,
>                 from /usr/include/w32api/Ws2tcpip.h:17,
>                 from sopen.c:58:
> /usr/include/w32api/psdk_inc/_ip_types.h:25:8: error: redefinition of ‘struct hostent’
> struct hostent {
>        ^
> In file included from sopen.c:43:0:
> /usr/include/netdb.h:79:8: note: originally defined here
> struct hostent {
>        ^
> In file included from /usr/include/w32api/winsock2.h:57:0,
>                 from /usr/include/w32api/Ws2tcpip.h:17,
>                 from sopen.c:58:
> /usr/include/w32api/psdk_inc/_ip_types.h:33:8: error: redefinition of ‘struct netent’
> struct netent {
>        ^
> In file included from sopen.c:43:0:
> /usr/include/netdb.h:93:8: note: originally defined here
> struct netent {
>        ^
> In file included from /usr/include/w32api/winsock2.h:57:0,
>                 from /usr/include/w32api/Ws2tcpip.h:17,
>                 from sopen.c:58:
> /usr/include/w32api/psdk_inc/_ip_types.h:40:8: error: redefinition of ‘struct servent’
> struct servent {
>        ^
> In file included from sopen.c:34:0:
> /usr/include/sys/socket.h:49:10: note: originally defined here
>   struct servent *getservbyname (const char *__name, const char *__proto);
>          ^
> In file included from /usr/include/w32api/winsock2.h:57:0,
>                 from /usr/include/w32api/Ws2tcpip.h:17,
>                 from sopen.c:58:
> /usr/include/w32api/psdk_inc/_ip_types.h:52:8: error: redefinition of ‘struct protoent’
> struct protoent {
>        ^
> In file included from sopen.c:43:0:
> /usr/include/netdb.h:107:8: note: originally defined here
> struct protoent
>        ^
> In file included from /usr/include/w32api/winsock2.h:57:0,
>                 from /usr/include/w32api/Ws2tcpip.h:17,
>                 from sopen.c:58:
> /usr/include/w32api/psdk_inc/_ip_types.h:63:8: error: redefinition of ‘struct linger’
> struct linger {
>        ^
> In file included from /usr/include/sys/socket.h:16:0,
>                 from sopen.c:34:
> /usr/include/cygwin/socket.h:62:8: note: originally defined here
> struct linger {
>        ^
> In file included from /usr/include/w32api/winsock2.h:57:0,
>                 from /usr/include/w32api/Ws2tcpip.h:17,
>                 from sopen.c:58:
> /usr/include/w32api/psdk_inc/_ip_types.h:70:8: error: redefinition of ‘struct sockaddr’
> struct sockaddr {
>        ^
> In file included from /usr/include/sys/socket.h:16:0,
>                 from sopen.c:34:
> /usr/include/cygwin/socket.h:31:8: note: originally defined here
> struct sockaddr {
>        ^
> In file included from /usr/include/w32api/winsock2.h:57:0,
>                 from /usr/include/w32api/Ws2tcpip.h:17,
>                 from sopen.c:58:
> /usr/include/w32api/psdk_inc/_ip_types.h:75:8: error: redefinition of ‘struct sockaddr_in’
> struct sockaddr_in {
>        ^
> In file included from /usr/include/netinet/in.h:14:0,
>                 from sopen.c:40:
> /usr/include/cygwin/in.h:189:8: note: originally defined here
> struct sockaddr_in
>        ^
> In file included from /usr/include/w32api/Ws2tcpip.h:17:0,
>                 from sopen.c:58:
> /usr/include/w32api/winsock2.h:260:10: error: redefinition of ‘struct sockaddr_storage’
>   struct sockaddr_storage {
>          ^
> In file included from /usr/include/sys/socket.h:16:0,
>                 from sopen.c:34:
> /usr/include/cygwin/socket.h:43:8: note: originally defined here
> struct sockaddr_storage {
>        ^
> In file included from /usr/include/w32api/Ws2tcpip.h:17:0,
>                 from sopen.c:58:
> /usr/include/w32api/winsock2.h:973:37: error: conflicting types for ‘accept’
>   WINSOCK_API_LINKAGE SOCKET WSAAPI accept(SOCKET s,struct sockaddr *addr,int *addrlen);
>                                     ^
> In file included from sopen.c:34:0:
> /usr/include/sys/socket.h:25:7: note: previous declaration of ‘accept’ was here
>   int accept (int, struct sockaddr *__peer, socklen_t *);
>       ^
> In file included from /usr/include/w32api/Ws2tcpip.h:17:0,
>                 from sopen.c:58:
> /usr/include/w32api/winsock2.h:974:34: error: conflicting types for ‘bind’
>   WINSOCK_API_LINKAGE int WSAAPI bind(SOCKET s,const struct sockaddr *name,int namelen);
>                                  ^
> In file included from sopen.c:34:0:
> /usr/include/sys/socket.h:27:7: note: previous declaration of ‘bind’ was here
>   int bind (int, const struct sockaddr *__my_addr, socklen_t __addrlen);
>       ^
> In file included from /usr/include/w32api/Ws2tcpip.h:17:0,
>                 from sopen.c:58:
> /usr/include/w32api/winsock2.h:976:34: error: conflicting types for ‘connect’
>   WINSOCK_API_LINKAGE int WSAAPI connect(SOCKET s,const struct sockaddr *name,int namelen);
>                                  ^
> In file included from sopen.c:34:0:
> /usr/include/sys/socket.h:28:7: note: previous declaration of ‘connect’ was here
>   int connect (int, const struct sockaddr *, socklen_t);
>       ^
> In file included from /usr/include/w32api/Ws2tcpip.h:17:0,
>                 from sopen.c:58:
> /usr/include/w32api/winsock2.h:978:34: error: conflicting types for ‘getpeername’
>   WINSOCK_API_LINKAGE int WSAAPI getpeername(SOCKET s,struct sockaddr *name,int *namelen);
>                                  ^
> In file included from sopen.c:34:0:
> /usr/include/sys/socket.h:29:7: note: previous declaration of ‘getpeername’ was here
>   int getpeername (int, struct sockaddr *__peer, socklen_t *);
>       ^
> In file included from /usr/include/w32api/Ws2tcpip.h:17:0,
>                 from sopen.c:58:
> /usr/include/w32api/winsock2.h:979:34: error: conflicting types for ‘getsockname’
>   WINSOCK_API_LINKAGE int WSAAPI getsockname(SOCKET s,struct sockaddr *name,int *namelen);
>                                  ^
> In file included from sopen.c:34:0:
> /usr/include/sys/socket.h:30:7: note: previous declaration of ‘getsockname’ was here
>   int getsockname (int, struct sockaddr *__addr, socklen_t *);
>       ^
> In file included from /usr/include/w32api/Ws2tcpip.h:17:0,
>                 from sopen.c:58:
> /usr/include/w32api/winsock2.h:980:34: error: conflicting types for ‘getsockopt’
>   WINSOCK_API_LINKAGE int WSAAPI getsockopt(SOCKET s,int level,int optname,char *optval,int *optlen);
>                                  ^
> In file included from sopen.c:34:0:
> /usr/include/sys/socket.h:42:7: note: previous declaration of ‘getsockopt’ was here
>   int getsockopt (int __s, int __level, int __optname, void *__optval,
>       ^
> In file included from /usr/include/w32api/Ws2tcpip.h:17:0,
>                 from sopen.c:58:
> /usr/include/w32api/winsock2.h:982:37: error: conflicting types for ‘htonl’
>   WINSOCK_API_LINKAGE u_long WSAAPI htonl(u_long hostlong);
>                                     ^
> In file included from /usr/include/cygwin/in.h:256:0,
>                 from /usr/include/netinet/in.h:14,
>                 from sopen.c:40:
> /usr/include/asm/byteorder.h:28:17: note: previous declaration of ‘htonl’ was here
> extern uint32_t htonl(uint32_t);
>                 ^
> In file included from /usr/include/w32api/Ws2tcpip.h:17:0,
>                 from sopen.c:58:
> /usr/include/w32api/winsock2.h:983:38: error: conflicting types for ‘htons’
>   WINSOCK_API_LINKAGE u_short WSAAPI htons(u_short hostshort);
>                                      ^
> In file included from /usr/include/cygwin/in.h:256:0,
>                 from /usr/include/netinet/in.h:14,
>                 from sopen.c:40:
> /usr/include/asm/byteorder.h:29:17: note: previous declaration of ‘htons’ was here
> extern uint16_t htons(uint16_t);
>                 ^
> In file included from /usr/include/w32api/Ws2tcpip.h:17:0,
>                 from sopen.c:58:
> /usr/include/w32api/winsock2.h:987:34: error: conflicting types for ‘listen’
>   WINSOCK_API_LINKAGE int WSAAPI listen(SOCKET s,int backlog);
>                                  ^
> In file included from sopen.c:34:0:
> /usr/include/sys/socket.h:31:7: note: previous declaration of ‘listen’ was here
>   int listen (int, int __n);
>       ^
> In file included from /usr/include/w32api/Ws2tcpip.h:17:0,
>                 from sopen.c:58:
> /usr/include/w32api/winsock2.h:989:37: error: conflicting types for ‘ntohl’
>   WINSOCK_API_LINKAGE u_long WSAAPI ntohl(u_long netlong);
>                                     ^
> In file included from /usr/include/cygwin/in.h:256:0,
>                 from /usr/include/netinet/in.h:14,
>                 from sopen.c:40:
> /usr/include/asm/byteorder.h:26:17: note: previous declaration of ‘ntohl’ was here
> extern uint32_t ntohl(uint32_t);
>                 ^
> In file included from /usr/include/w32api/Ws2tcpip.h:17:0,
>                 from sopen.c:58:
> /usr/include/w32api/winsock2.h:990:38: error: conflicting types for ‘ntohs’
>   WINSOCK_API_LINKAGE u_short WSAAPI ntohs(u_short netshort);
>                                      ^
> In file included from /usr/include/cygwin/in.h:256:0,
>                 from /usr/include/netinet/in.h:14,
>                 from sopen.c:40:
> /usr/include/asm/byteorder.h:27:17: note: previous declaration of ‘ntohs’ was here
> extern uint16_t ntohs(uint16_t);
>                 ^
> In file included from /usr/include/w32api/Ws2tcpip.h:17:0,
>                 from sopen.c:58:
> /usr/include/w32api/winsock2.h:992:34: error: conflicting types for ‘recv’
>   WINSOCK_API_LINKAGE int WSAAPI recv(SOCKET s,char *buf,int len,int flags);
>                                  ^
> In file included from sopen.c:34:0:
> /usr/include/sys/socket.h:32:11: note: previous declaration of ‘recv’ was here
>   ssize_t recv (int, void *__buff, size_t __len, int __flags);
>           ^
> In file included from /usr/include/w32api/Ws2tcpip.h:17:0,
>                 from sopen.c:58:
> /usr/include/w32api/winsock2.h:993:34: error: conflicting types for ‘recvfrom’
>   WINSOCK_API_LINKAGE int WSAAPI recvfrom(SOCKET s,char *buf,int len,int flags,struct sockaddr *from,int *fromlen);
>                                  ^
> In file included from sopen.c:34:0:
> /usr/include/sys/socket.h:33:11: note: previous declaration of ‘recvfrom’ was here
>   ssize_t recvfrom (int, void *__buff, size_t __len, int __flags,
>           ^
> In file included from /usr/include/w32api/Ws2tcpip.h:17:0,
>                 from sopen.c:58:
> /usr/include/w32api/winsock2.h:995:34: error: conflicting types for ‘select’
>   WINSOCK_API_LINKAGE int WSAAPI select(int nfds,fd_set *readfds,fd_set *writefds,fd_set *exceptfds,const PTIMEVAL timeout);
>                                  ^
> In file included from /usr/include/sys/time.h:49:0,
>                 from /usr/include/sys/socket.h:17,
>                 from sopen.c:34:
> /usr/include/sys/select.h:31:5: note: previous declaration of ‘select’ was here
> int select __P ((int __n, fd_set *__readfds, fd_set *__writefds,
>     ^
> In file included from /usr/include/w32api/Ws2tcpip.h:17:0,
>                 from sopen.c:58:
> /usr/include/w32api/winsock2.h:997:34: error: conflicting types for ‘send’
>   WINSOCK_API_LINKAGE int WSAAPI send(SOCKET s,const char *buf,int len,int flags);
>                                  ^
> In file included from sopen.c:34:0:
> /usr/include/sys/socket.h:36:11: note: previous declaration of ‘send’ was here
>   ssize_t send (int, const void *__buff, size_t __len, int __flags);
>           ^
> In file included from /usr/include/w32api/Ws2tcpip.h:17:0,
>                 from sopen.c:58:
> /usr/include/w32api/winsock2.h:998:34: error: conflicting types for ‘sendto’
>   WINSOCK_API_LINKAGE int WSAAPI sendto(SOCKET s,const char *buf,int len,int flags,const struct sockaddr *to,int tolen);
>                                  ^
> In file included from sopen.c:34:0:
> /usr/include/sys/socket.h:38:11: note: previous declaration of ‘sendto’ was here
>   ssize_t sendto (int, const void *, size_t __len, int __flags,
>           ^
> In file included from /usr/include/w32api/Ws2tcpip.h:17:0,
>                 from sopen.c:58:
> /usr/include/w32api/winsock2.h:999:34: error: conflicting types for ‘setsockopt’
>   WINSOCK_API_LINKAGE int WSAAPI setsockopt(SOCKET s,int level,int optname,const char *optval,int optlen);
>                                  ^
> In file included from sopen.c:34:0:
> /usr/include/sys/socket.h:40:7: note: previous declaration of ‘setsockopt’ was here
>   int setsockopt (int __s, int __level, int __optname, const void *optval,
>       ^
> In file included from /usr/include/w32api/Ws2tcpip.h:17:0,
>                 from sopen.c:58:
> /usr/include/w32api/winsock2.h:1000:34: error: conflicting types for ‘shutdown’
>   WINSOCK_API_LINKAGE int WSAAPI shutdown(SOCKET s,int how);
>                                  ^
> In file included from sopen.c:34:0:
> /usr/include/sys/socket.h:44:7: note: previous declaration of ‘shutdown’ was here
>   int shutdown (int, int);
>       ^
> In file included from /usr/include/w32api/Ws2tcpip.h:17:0,
>                 from sopen.c:58:
> /usr/include/w32api/winsock2.h:1001:37: error: conflicting types for ‘socket’
>   WINSOCK_API_LINKAGE SOCKET WSAAPI socket(int af,int type,int protocol);
>                                     ^
> In file included from sopen.c:34:0:
> /usr/include/sys/socket.h:45:7: note: previous declaration of ‘socket’ was here
>   int socket (int __family, int __type, int __protocol);
>       ^
> In file included from /usr/include/w32api/Ws2tcpip.h:17:0,
>                 from sopen.c:58:
> /usr/include/w32api/winsock2.h:1002:46: error: conflicting types for ‘gethostbyaddr’
>   WINSOCK_API_LINKAGE struct hostent *WSAAPI gethostbyaddr(const char *addr,int len,int type);
>                                              ^
> In file included from sopen.c:43:0:
> /usr/include/netdb.h:217:17: note: previous declaration of ‘gethostbyaddr’ was here
> struct hostent *gethostbyaddr (const char *, int, int);
>                 ^
> In file included from /usr/include/w32api/Ws2tcpip.h:17:0,
>                 from sopen.c:58:
> /usr/include/w32api/winsock2.h:1003:46: error: conflicting types for ‘gethostbyname’
>   WINSOCK_API_LINKAGE struct hostent *WSAAPI gethostbyname(const char *name);
>                                              ^
> In file included from sopen.c:43:0:
> /usr/include/netdb.h:218:17: note: previous declaration of ‘gethostbyname’ was here
> struct hostent *gethostbyname (const char *);
>                 ^
> In file included from /usr/include/w32api/Ws2tcpip.h:17:0,
>                 from sopen.c:58:
> /usr/include/w32api/winsock2.h:1004:34: error: conflicting types for ‘gethostname’
>   WINSOCK_API_LINKAGE int WSAAPI gethostname(char *name,int namelen);
>                                  ^
> In file included from /usr/include/stdio.h:29:0,
>                 from /cygdrive/d/R2015a/petsc-3.6.2/include/petscsys.h:138,
>                 from sopen.c:14:
> /usr/include/sys/unistd.h:249:6: note: previous declaration of ‘gethostname’ was here
>  int _EXFUN(gethostname, (char *__name, size_t __len));
>      ^
> In file included from /usr/include/w32api/Ws2tcpip.h:17:0,
>                 from sopen.c:58:
> /usr/include/w32api/winsock2.h:1005:46: error: conflicting types for ‘getservbyport’
>   WINSOCK_API_LINKAGE struct servent *WSAAPI getservbyport(int port,const char *proto);
>                                              ^
> In file included from sopen.c:43:0:
> /usr/include/netdb.h:228:17: note: previous declaration of ‘getservbyport’ was here
> struct servent *getservbyport (int, const char *);
>                 ^
> In file included from /usr/include/w32api/Ws2tcpip.h:17:0,
>                 from sopen.c:58:
> /usr/include/w32api/winsock2.h:1006:46: error: conflicting types for ‘getservbyname’
>   WINSOCK_API_LINKAGE struct servent *WSAAPI getservbyname(const char *name,const char *proto);
>                                              ^
> In file included from sopen.c:43:0:
> /usr/include/netdb.h:227:17: note: previous declaration of ‘getservbyname’ was here
> struct servent *getservbyname (const char *, const char *);
>                 ^
> In file included from /usr/include/w32api/Ws2tcpip.h:17:0,
>                 from sopen.c:58:
> /usr/include/w32api/winsock2.h:1007:47: error: conflicting types for ‘getprotobynumber’
>   WINSOCK_API_LINKAGE struct protoent *WSAAPI getprotobynumber(int number);
>                                               ^
> In file included from sopen.c:43:0:
> /usr/include/netdb.h:225:18: note: previous declaration of ‘getprotobynumber’ was here
> struct protoent *getprotobynumber (int);
>                  ^
> In file included from /usr/include/w32api/Ws2tcpip.h:17:0,
>                 from sopen.c:58:
> /usr/include/w32api/winsock2.h:1008:47: error: conflicting types for ‘getprotobyname’
>   WINSOCK_API_LINKAGE struct protoent *WSAAPI getprotobyname(const char *name);
>                                               ^
> In file included from sopen.c:43:0:
> /usr/include/netdb.h:224:18: note: previous declaration of ‘getprotobyname’ was here
> struct protoent *getprotobyname (const char *);
>                  ^
> In file included from /usr/include/w32api/Ws2tcpip.h:18:0,
>                 from sopen.c:58:
> /usr/include/w32api/ws2ipdef.h:23:16: error: redefinition of ‘struct ipv6_mreq’
> typedef struct ipv6_mreq {
>                ^
> In file included from /usr/include/cygwin/in.h:267:0,
>                 from /usr/include/netinet/in.h:14,
>                 from sopen.c:40:
> /usr/include/cygwin/in6.h:88:8: note: originally defined here
> struct ipv6_mreq
>        ^
> In file included from /usr/include/w32api/Ws2tcpip.h:18:0,
>                 from sopen.c:58:
> /usr/include/w32api/ws2ipdef.h:41:8: error: redefinition of ‘struct sockaddr_in6’
> struct sockaddr_in6 {
>        ^
> In file included from /usr/include/cygwin/in.h:267:0,
>                 from /usr/include/netinet/in.h:14,
>                 from sopen.c:40:
> /usr/include/cygwin/in6.h:112:8: note: originally defined here
> struct sockaddr_in6
>        ^
> In file included from /usr/include/sys/socket.h:16:0,
>                 from sopen.c:34:
> /usr/include/w32api/ws2ipdef.h:64:3: error: expected identifier before numeric constant
>   MCAST_INCLUDE   = 0,
>   ^
> In file included from /usr/include/w32api/Ws2tcpip.h:18:0,
>                 from sopen.c:58:
> /usr/include/w32api/ws2ipdef.h:79:16: error: redefinition of ‘struct group_filter’
> typedef struct group_filter {
>                ^
> In file included from /usr/include/netinet/in.h:14:0,
>                 from sopen.c:40:
> /usr/include/cygwin/in.h:174:8: note: originally defined here
> struct group_filter
>        ^
> In file included from /usr/include/w32api/Ws2tcpip.h:18:0,
>                 from sopen.c:58:
> /usr/include/w32api/ws2ipdef.h:87:16: error: redefinition of ‘struct group_req’
> typedef struct group_req {
>                ^
> In file included from /usr/include/netinet/in.h:14:0,
>                 from sopen.c:40:
> /usr/include/cygwin/in.h:161:8: note: originally defined here
> struct group_req
>        ^
> In file included from /usr/include/w32api/Ws2tcpip.h:18:0,
>                 from sopen.c:58:
> /usr/include/w32api/ws2ipdef.h:92:16: error: redefinition of ‘struct group_source_req’
> typedef struct group_source_req {
>                ^
> In file included from /usr/include/netinet/in.h:14:0,
>                 from sopen.c:40:
> /usr/include/cygwin/in.h:167:8: note: originally defined here
> struct group_source_req
>        ^
> In file included from /usr/include/w32api/Ws2tcpip.h:19:0,
>                 from sopen.c:58:
> /usr/include/w32api/psdk_inc/_ip_mreq1.h:12:8: error: redefinition of ‘struct ip_mreq’
> struct ip_mreq {
>        ^
> In file included from /usr/include/netinet/in.h:14:0,
>                 from sopen.c:40:
> /usr/include/cygwin/in.h:127:8: note: originally defined here
> struct ip_mreq
>        ^
> In file included from sopen.c:58:0:
> /usr/include/w32api/Ws2tcpip.h:22:8: error: redefinition of ‘struct ip_mreq_source’
> struct ip_mreq_source {
>        ^
> In file included from /usr/include/netinet/in.h:14:0,
>                 from sopen.c:40:
> /usr/include/cygwin/in.h:133:8: note: originally defined here
> struct ip_mreq_source
>        ^
> In file included from sopen.c:58:0:
> /usr/include/w32api/Ws2tcpip.h:28:8: error: redefinition of ‘struct ip_msfilter’
> struct ip_msfilter {
>        ^
> In file included from /usr/include/netinet/in.h:14:0,
>                 from sopen.c:40:
> /usr/include/cygwin/in.h:140:8: note: originally defined here
> struct ip_msfilter
>        ^
> In file included from /usr/include/cygwin/in.h:267:0,
>                 from /usr/include/netinet/in.h:14,
>                 from sopen.c:40:
> /usr/include/w32api/Ws2tcpip.h:86:5: error: expected identifier or ‘(’ before ‘const’
> int IN6_IS_ADDR_UNSPECIFIED(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:86:5: error: expected ‘)’ before ‘(’ token
> int IN6_IS_ADDR_UNSPECIFIED(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:86:5: error: expected ‘)’ before ‘[’ token
> int IN6_IS_ADDR_UNSPECIFIED(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:87:5: error: expected identifier or ‘(’ before ‘const’
> int IN6_IS_ADDR_LOOPBACK(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:87:5: error: expected ‘)’ before ‘(’ token
> int IN6_IS_ADDR_LOOPBACK(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:87:5: error: expected ‘)’ before ‘[’ token
> int IN6_IS_ADDR_LOOPBACK(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:88:5: error: expected identifier or ‘(’ before ‘const’
> int IN6_IS_ADDR_MULTICAST(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:88:5: error: expected ‘)’ before ‘(’ token
> int IN6_IS_ADDR_MULTICAST(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:88:5: error: expected ‘)’ before ‘[’ token
> int IN6_IS_ADDR_MULTICAST(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:89:5: error: expected identifier or ‘(’ before ‘const’
> int IN6_IS_ADDR_LINKLOCAL(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:89:5: error: expected ‘)’ before ‘(’ token
> int IN6_IS_ADDR_LINKLOCAL(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:89:5: error: expected ‘)’ before ‘[’ token
> int IN6_IS_ADDR_LINKLOCAL(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:89:5: error: expected ‘)’ before ‘==’ token
> int IN6_IS_ADDR_LINKLOCAL(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:90:5: error: expected identifier or ‘(’ before ‘const’
> int IN6_IS_ADDR_SITELOCAL(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:90:5: error: expected ‘)’ before ‘(’ token
> int IN6_IS_ADDR_SITELOCAL(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:90:5: error: expected ‘)’ before ‘[’ token
> int IN6_IS_ADDR_SITELOCAL(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:90:5: error: expected ‘)’ before ‘==’ token
> int IN6_IS_ADDR_SITELOCAL(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:91:5: error: expected identifier or ‘(’ before ‘const’
> int IN6_IS_ADDR_V4MAPPED(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:91:5: error: expected ‘)’ before ‘(’ token
> int IN6_IS_ADDR_V4MAPPED(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:91:5: error: expected ‘)’ before ‘[’ token
> int IN6_IS_ADDR_V4MAPPED(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:92:5: error: expected identifier or ‘(’ before ‘const’
> int IN6_IS_ADDR_V4COMPAT(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:92:5: error: expected ‘)’ before ‘(’ token
> int IN6_IS_ADDR_V4COMPAT(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:92:5: error: expected ‘)’ before ‘[’ token
> int IN6_IS_ADDR_V4COMPAT(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:93:5: error: expected identifier or ‘(’ before ‘const’
> int IN6_IS_ADDR_MC_NODELOCAL(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:93:5: error: expected ‘)’ before ‘(’ token
> int IN6_IS_ADDR_MC_NODELOCAL(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:93:5: error: expected ‘)’ before ‘[’ token
> int IN6_IS_ADDR_MC_NODELOCAL(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:93:5: error: expected ‘)’ before ‘&&’ token
> int IN6_IS_ADDR_MC_NODELOCAL(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:94:5: error: expected identifier or ‘(’ before ‘const’
> int IN6_IS_ADDR_MC_LINKLOCAL(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:94:5: error: expected ‘)’ before ‘(’ token
> int IN6_IS_ADDR_MC_LINKLOCAL(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:94:5: error: expected ‘)’ before ‘[’ token
> int IN6_IS_ADDR_MC_LINKLOCAL(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:94:5: error: expected ‘)’ before ‘&&’ token
> int IN6_IS_ADDR_MC_LINKLOCAL(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:95:5: error: expected identifier or ‘(’ before ‘const’
> int IN6_IS_ADDR_MC_SITELOCAL(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:95:5: error: expected ‘)’ before ‘(’ token
> int IN6_IS_ADDR_MC_SITELOCAL(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:95:5: error: expected ‘)’ before ‘[’ token
> int IN6_IS_ADDR_MC_SITELOCAL(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:95:5: error: expected ‘)’ before ‘&&’ token
> int IN6_IS_ADDR_MC_SITELOCAL(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:96:5: error: expected identifier or ‘(’ before ‘const’
> int IN6_IS_ADDR_MC_ORGLOCAL(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:96:5: error: expected ‘)’ before ‘(’ token
> int IN6_IS_ADDR_MC_ORGLOCAL(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:96:5: error: expected ‘)’ before ‘[’ token
> int IN6_IS_ADDR_MC_ORGLOCAL(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:96:5: error: expected ‘)’ before ‘&&’ token
> int IN6_IS_ADDR_MC_ORGLOCAL(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:97:5: error: expected identifier or ‘(’ before ‘const’
> int IN6_IS_ADDR_MC_GLOBAL(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:97:5: error: expected ‘)’ before ‘(’ token
> int IN6_IS_ADDR_MC_GLOBAL(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:97:5: error: expected ‘)’ before ‘[’ token
> int IN6_IS_ADDR_MC_GLOBAL(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:97:5: error: expected ‘)’ before ‘&&’ token
> int IN6_IS_ADDR_MC_GLOBAL(const struct in6_addr *);
>     ^
> /usr/include/w32api/Ws2tcpip.h:105:21: error: expected identifier or ‘(’ before ‘const’
> WS2TCPIP_INLINE int IN6_IS_ADDR_UNSPECIFIED(const struct in6_addr *a) { return ((a->s6_words[0]==0) && (a->s6_words[1]==0) && (a->s6_words[2]==0) && (a->s6_words[3]==0) && (a->s6_words[4]==0) && (a->s6_words[5]==0) && (a->s6_words[6]==0) && (a->s6_words[7]==0)); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:105:21: error: expected ‘)’ before ‘(’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_UNSPECIFIED(const struct in6_addr *a) { return ((a->s6_words[0]==0) && (a->s6_words[1]==0) && (a->s6_words[2]==0) && (a->s6_words[3]==0) && (a->s6_words[4]==0) && (a->s6_words[5]==0) && (a->s6_words[6]==0) && (a->s6_words[7]==0)); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:105:21: error: expected ‘)’ before ‘[’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_UNSPECIFIED(const struct in6_addr *a) { return ((a->s6_words[0]==0) && (a->s6_words[1]==0) && (a->s6_words[2]==0) && (a->s6_words[3]==0) && (a->s6_words[4]==0) && (a->s6_words[5]==0) && (a->s6_words[6]==0) && (a->s6_words[7]==0)); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:106:21: error: expected identifier or ‘(’ before ‘const’
> WS2TCPIP_INLINE int IN6_IS_ADDR_LOOPBACK(const struct in6_addr *a) { return ((a->s6_words[0]==0) && (a->s6_words[1]==0) && (a->s6_words[2]==0) && (a->s6_words[3]==0) && (a->s6_words[4]==0) && (a->s6_words[5]==0) && (a->s6_words[6]==0) && (a->s6_words[7]==0x0100)); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:106:21: error: expected ‘)’ before ‘(’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_LOOPBACK(const struct in6_addr *a) { return ((a->s6_words[0]==0) && (a->s6_words[1]==0) && (a->s6_words[2]==0) && (a->s6_words[3]==0) && (a->s6_words[4]==0) && (a->s6_words[5]==0) && (a->s6_words[6]==0) && (a->s6_words[7]==0x0100)); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:106:21: error: expected ‘)’ before ‘[’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_LOOPBACK(const struct in6_addr *a) { return ((a->s6_words[0]==0) && (a->s6_words[1]==0) && (a->s6_words[2]==0) && (a->s6_words[3]==0) && (a->s6_words[4]==0) && (a->s6_words[5]==0) && (a->s6_words[6]==0) && (a->s6_words[7]==0x0100)); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:107:21: error: expected identifier or ‘(’ before ‘const’
> WS2TCPIP_INLINE int IN6_IS_ADDR_MULTICAST(const struct in6_addr *a) { return (a->s6_bytes[0]==0xff); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:107:21: error: expected ‘)’ before ‘(’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_MULTICAST(const struct in6_addr *a) { return (a->s6_bytes[0]==0xff); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:107:21: error: expected ‘)’ before ‘[’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_MULTICAST(const struct in6_addr *a) { return (a->s6_bytes[0]==0xff); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:108:21: error: expected identifier or ‘(’ before ‘const’
> WS2TCPIP_INLINE int IN6_IS_ADDR_LINKLOCAL(const struct in6_addr *a) { return ((a->s6_bytes[0]==0xfe) && ((a->s6_bytes[1] & 0xc0)==0x80)); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:108:21: error: expected ‘)’ before ‘(’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_LINKLOCAL(const struct in6_addr *a) { return ((a->s6_bytes[0]==0xfe) && ((a->s6_bytes[1] & 0xc0)==0x80)); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:108:21: error: expected ‘)’ before ‘[’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_LINKLOCAL(const struct in6_addr *a) { return ((a->s6_bytes[0]==0xfe) && ((a->s6_bytes[1] & 0xc0)==0x80)); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:108:21: error: expected ‘)’ before ‘==’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_LINKLOCAL(const struct in6_addr *a) { return ((a->s6_bytes[0]==0xfe) && ((a->s6_bytes[1] & 0xc0)==0x80)); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:109:21: error: expected identifier or ‘(’ before ‘const’
> WS2TCPIP_INLINE int IN6_IS_ADDR_SITELOCAL(const struct in6_addr *a) { return ((a->s6_bytes[0]==0xfe) && ((a->s6_bytes[1] & 0xc0)==0xc0)); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:109:21: error: expected ‘)’ before ‘(’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_SITELOCAL(const struct in6_addr *a) { return ((a->s6_bytes[0]==0xfe) && ((a->s6_bytes[1] & 0xc0)==0xc0)); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:109:21: error: expected ‘)’ before ‘[’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_SITELOCAL(const struct in6_addr *a) { return ((a->s6_bytes[0]==0xfe) && ((a->s6_bytes[1] & 0xc0)==0xc0)); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:109:21: error: expected ‘)’ before ‘==’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_SITELOCAL(const struct in6_addr *a) { return ((a->s6_bytes[0]==0xfe) && ((a->s6_bytes[1] & 0xc0)==0xc0)); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:110:21: error: expected identifier or ‘(’ before ‘const’
> WS2TCPIP_INLINE int IN6_IS_ADDR_V4MAPPED(const struct in6_addr *a) { return ((a->s6_words[0]==0) && (a->s6_words[1]==0) && (a->s6_words[2]==0) && (a->s6_words[3]==0) && (a->s6_words[4]==0) && (a->s6_words[5]==0xffff)); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:110:21: error: expected ‘)’ before ‘(’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_V4MAPPED(const struct in6_addr *a) { return ((a->s6_words[0]==0) && (a->s6_words[1]==0) && (a->s6_words[2]==0) && (a->s6_words[3]==0) && (a->s6_words[4]==0) && (a->s6_words[5]==0xffff)); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:110:21: error: expected ‘)’ before ‘[’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_V4MAPPED(const struct in6_addr *a) { return ((a->s6_words[0]==0) && (a->s6_words[1]==0) && (a->s6_words[2]==0) && (a->s6_words[3]==0) && (a->s6_words[4]==0) && (a->s6_words[5]==0xffff)); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:111:21: error: expected identifier or ‘(’ before ‘const’
> WS2TCPIP_INLINE int IN6_IS_ADDR_V4COMPAT(const struct in6_addr *a) { return ((a->s6_words[0]==0) && (a->s6_words[1]==0) && (a->s6_words[2]==0) && (a->s6_words[3]==0) && (a->s6_words[4]==0) && (a->s6_words[5]==0) && !((a->s6_words[6]==0) && (a->s6_addr[14]==0) && ((a->s6_addr[15]==0) || (a->s6_addr[15]==1)))); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:111:21: error: expected ‘)’ before ‘(’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_V4COMPAT(const struct in6_addr *a) { return ((a->s6_words[0]==0) && (a->s6_words[1]==0) && (a->s6_words[2]==0) && (a->s6_words[3]==0) && (a->s6_words[4]==0) && (a->s6_words[5]==0) && !((a->s6_words[6]==0) && (a->s6_addr[14]==0) && ((a->s6_addr[15]==0) || (a->s6_addr[15]==1)))); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:111:21: error: expected ‘)’ before ‘[’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_V4COMPAT(const struct in6_addr *a) { return ((a->s6_words[0]==0) && (a->s6_words[1]==0) && (a->s6_words[2]==0) && (a->s6_words[3]==0) && (a->s6_words[4]==0) && (a->s6_words[5]==0) && !((a->s6_words[6]==0) && (a->s6_addr[14]==0) && ((a->s6_addr[15]==0) || (a->s6_addr[15]==1)))); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:112:21: error: expected identifier or ‘(’ before ‘const’
> WS2TCPIP_INLINE int IN6_IS_ADDR_MC_NODELOCAL(const struct in6_addr *a) { return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_bytes[1] & 0xf)==1); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:112:21: error: expected ‘)’ before ‘(’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_MC_NODELOCAL(const struct in6_addr *a) { return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_bytes[1] & 0xf)==1); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:112:21: error: expected ‘)’ before ‘[’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_MC_NODELOCAL(const struct in6_addr *a) { return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_bytes[1] & 0xf)==1); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:112:21: error: expected ‘)’ before ‘&&’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_MC_NODELOCAL(const struct in6_addr *a) { return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_bytes[1] & 0xf)==1); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:113:21: error: expected identifier or ‘(’ before ‘const’
> WS2TCPIP_INLINE int IN6_IS_ADDR_MC_LINKLOCAL(const struct in6_addr *a) { return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_bytes[1] & 0xf)==2); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:113:21: error: expected ‘)’ before ‘(’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_MC_LINKLOCAL(const struct in6_addr *a) { return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_bytes[1] & 0xf)==2); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:113:21: error: expected ‘)’ before ‘[’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_MC_LINKLOCAL(const struct in6_addr *a) { return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_bytes[1] & 0xf)==2); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:113:21: error: expected ‘)’ before ‘&&’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_MC_LINKLOCAL(const struct in6_addr *a) { return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_bytes[1] & 0xf)==2); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:114:21: error: expected identifier or ‘(’ before ‘const’
> WS2TCPIP_INLINE int IN6_IS_ADDR_MC_SITELOCAL(const struct in6_addr *a) { return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_bytes[1] & 0xf)==5); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:114:21: error: expected ‘)’ before ‘(’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_MC_SITELOCAL(const struct in6_addr *a) { return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_bytes[1] & 0xf)==5); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:114:21: error: expected ‘)’ before ‘[’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_MC_SITELOCAL(const struct in6_addr *a) { return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_bytes[1] & 0xf)==5); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:114:21: error: expected ‘)’ before ‘&&’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_MC_SITELOCAL(const struct in6_addr *a) { return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_bytes[1] & 0xf)==5); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:115:21: error: expected identifier or ‘(’ before ‘const’
> WS2TCPIP_INLINE int IN6_IS_ADDR_MC_ORGLOCAL(const struct in6_addr *a) { return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_bytes[1] & 0xf)==8); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:115:21: error: expected ‘)’ before ‘(’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_MC_ORGLOCAL(const struct in6_addr *a) { return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_bytes[1] & 0xf)==8); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:115:21: error: expected ‘)’ before ‘[’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_MC_ORGLOCAL(const struct in6_addr *a) { return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_bytes[1] & 0xf)==8); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:115:21: error: expected ‘)’ before ‘&&’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_MC_ORGLOCAL(const struct in6_addr *a) { return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_bytes[1] & 0xf)==8); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:116:21: error: expected identifier or ‘(’ before ‘const’
> WS2TCPIP_INLINE int IN6_IS_ADDR_MC_GLOBAL(const struct in6_addr *a) { return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_bytes[1] & 0xf)==0xe); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:116:21: error: expected ‘)’ before ‘(’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_MC_GLOBAL(const struct in6_addr *a) { return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_bytes[1] & 0xf)==0xe); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:116:21: error: expected ‘)’ before ‘[’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_MC_GLOBAL(const struct in6_addr *a) { return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_bytes[1] & 0xf)==0xe); }
>                     ^
> /usr/include/w32api/Ws2tcpip.h:116:21: error: expected ‘)’ before ‘&&’ token
> WS2TCPIP_INLINE int IN6_IS_ADDR_MC_GLOBAL(const struct in6_addr *a) { return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_bytes[1] & 0xf)==0xe); }
>                     ^
> In file included from sopen.c:58:0:
> /usr/include/w32api/Ws2tcpip.h: In function ‘IN6_SET_ADDR_UNSPECIFIED’:
> /usr/include/w32api/Ws2tcpip.h:119:77: error: ‘struct in6_addr’ has no member named ‘s6_bytes’
> WS2TCPIP_INLINE void IN6_SET_ADDR_UNSPECIFIED(struct in6_addr *a) { memset(a->s6_bytes,0,sizeof(struct in6_addr)); }
>                                                                             ^
> /usr/include/w32api/Ws2tcpip.h: In function ‘IN6_SET_ADDR_LOOPBACK’:
> /usr/include/w32api/Ws2tcpip.h:121:11: error: ‘struct in6_addr’ has no member named ‘s6_bytes’
>   memset(a->s6_bytes,0,sizeof(struct in6_addr));
>           ^
> /usr/include/w32api/Ws2tcpip.h:122:4: error: ‘struct in6_addr’ has no member named ‘s6_bytes’
>   a->s6_bytes[15] = 1;
>    ^
> /usr/include/w32api/Ws2tcpip.h: At top level:
> /usr/include/w32api/Ws2tcpip.h:156:16: error: redefinition of ‘struct in_pktinfo’
> typedef struct in_pktinfo {
>                ^
> In file included from /usr/include/netinet/in.h:14:0,
>                 from sopen.c:40:
> /usr/include/cygwin/in.h:153:8: note: originally defined here
> struct in_pktinfo
>        ^
> In file included from sopen.c:58:0:
> /usr/include/w32api/Ws2tcpip.h:157:3: error: unknown type name ‘IN_ADDR’
>   IN_ADDR ipi_addr;
>   ^
> /usr/include/w32api/Ws2tcpip.h:163:16: error: redefinition of ‘struct in6_pktinfo’
> typedef struct in6_pktinfo {
>                ^
> In file included from /usr/include/cygwin/in.h:267:0,
>                 from /usr/include/netinet/in.h:14,
>                 from sopen.c:40:
> /usr/include/cygwin/in6.h:102:8: note: originally defined here
> struct in6_pktinfo
>        ^
> In file included from sopen.c:58:0:
> /usr/include/w32api/Ws2tcpip.h:164:3: error: unknown type name ‘IN6_ADDR’
>   IN6_ADDR ipi6_addr;
>   ^
> /usr/include/w32api/Ws2tcpip.h:168:1: error: size of unnamed array is negative
> C_ASSERT(sizeof(IN6_PKTINFO)==20);
> ^
> /usr/include/w32api/Ws2tcpip.h:182:16: error: redefinition of ‘struct addrinfo’
> typedef struct addrinfo {
>                ^
> In file included from sopen.c:43:0:
> /usr/include/netdb.h:121:8: note: originally defined here
> struct addrinfo {
>        ^
> In file included from sopen.c:58:0:
> /usr/include/w32api/Ws2tcpip.h:231:34: error: conflicting types for ‘getaddrinfo’
>   WINSOCK_API_LINKAGE int WSAAPI getaddrinfo(const char *nodename,const char *servname,const struct addrinfo *hints,struct addrinfo **res);
>                                  ^
> In file included from sopen.c:43:0:
> /usr/include/netdb.h:242:6: note: previous declaration of ‘getaddrinfo’ was here
> int  getaddrinfo (const char *, const char *,
>      ^
> In file included from sopen.c:58:0:
> /usr/include/w32api/Ws2tcpip.h:247:35: error: conflicting types for ‘freeaddrinfo’
>   WINSOCK_API_LINKAGE void WSAAPI freeaddrinfo(LPADDRINFO pAddrInfo);
>                                   ^
> In file included from sopen.c:43:0:
> /usr/include/netdb.h:240:7: note: previous declaration of ‘freeaddrinfo’ was here
> void  freeaddrinfo (struct addrinfo *);
>       ^
> In file included from sopen.c:58:0:
> /usr/include/w32api/Ws2tcpip.h:265:34: error: conflicting types for ‘getnameinfo’
>   WINSOCK_API_LINKAGE int WSAAPI getnameinfo(const struct sockaddr *sa,socklen_t salen,char *host,DWORD hostlen,char *serv,DWORD servlen,int flags);
>                                  ^
> In file included from sopen.c:43:0:
> /usr/include/netdb.h:244:6: note: previous declaration of ‘getnameinfo’ was here
> int  getnameinfo (const struct sockaddr *, socklen_t, char *,
>      ^
> In file included from /usr/include/w32api/Ws2tcpip.h:298:0,
>                 from sopen.c:58:
> /usr/include/w32api/mstcpip.h:110:43: error: unknown type name ‘IN6_ADDR’
> LPSTR NTAPI RtlIpv6AddressToStringA(const IN6_ADDR *Addr, LPSTR S);
>                                           ^
> /usr/include/w32api/mstcpip.h:111:44: error: unknown type name ‘IN6_ADDR’
> LPWSTR NTAPI RtlIpv6AddressToStringW(const IN6_ADDR *Addr, LPWSTR S);
>                                            ^
> /usr/include/w32api/mstcpip.h:113:44: error: unknown type name ‘IN6_ADDR’
> LONG NTAPI RtlIpv6AddressToStringExA(const IN6_ADDR *Address, ULONG ScopeId, USHORT Port, LPSTR AddressString, PULONG AddressStringLength);
>                                            ^
> In file included from /usr/include/w32api/Ws2tcpip.h:298:0,
>                 from sopen.c:58:
> /usr/include/w32api/mstcpip.h:114:44: error: unknown type name ‘IN6_ADDR’
> LONG NTAPI RtlIpv6AddressToStringExW(const IN6_ADDR *Address, ULONG ScopeId, USHORT Port, LPWSTR AddressString, PULONG AddressStringLength);
>                                            ^
> /usr/include/w32api/mstcpip.h:117:43: error: unknown type name ‘IN_ADDR’
> LPSTR NTAPI RtlIpv4AddressToStringA(const IN_ADDR *Addr, LPSTR S);
>                                           ^
> /usr/include/w32api/mstcpip.h:118:44: error: unknown type name ‘IN_ADDR’
> LPWSTR NTAPI RtlIpv4AddressToStringW(const IN_ADDR *Addr, LPWSTR S);
>                                            ^
> /usr/include/w32api/mstcpip.h:121:44: error: unknown type name ‘IN_ADDR’
> LONG NTAPI RtlIpv4AddressToStringExA(const IN_ADDR *Address, USHORT Port, LPSTR AddressString, PULONG AddressStringLength);
>                                            ^
> /usr/include/w32api/mstcpip.h:122:44: error: unknown type name ‘IN_ADDR’
> LONG NTAPI RtlIpv4AddressToStringExW(const IN_ADDR *Address, USHORT Port, LPWSTR AddressString, PULONG AddressStringLength);
>                                            ^
> /usr/include/w32api/mstcpip.h:125:80: error: unknown type name ‘IN_ADDR’
> LONG NTAPI RtlIpv4StringToAddressA(PCSTR S, BOOLEAN Strict, LPSTR *Terminator, IN_ADDR *Addr);
>                                                                                ^
> /usr/include/w32api/mstcpip.h:126:82: error: unknown type name ‘IN_ADDR’
> LONG NTAPI RtlIpv4StringToAddressW(PCWSTR S, BOOLEAN Strict, LPWSTR *Terminator, IN_ADDR *Addr);
>                                                                                  ^
> /usr/include/w32api/mstcpip.h:129:75: error: unknown type name ‘IN_ADDR’
> LONG NTAPI RtlIpv4StringToAddressExA(PCSTR AddressString, BOOLEAN Strict, IN_ADDR *Address, PUSHORT Port);
>                                                                           ^
> /usr/include/w32api/mstcpip.h:130:76: error: unknown type name ‘IN_ADDR’
> LONG NTAPI RtlIpv4StringToAddressExW(PCWSTR AddressString, BOOLEAN Strict, IN_ADDR *Address, PUSHORT Port);
>                                                                            ^
> /usr/include/w32api/mstcpip.h:133:59: error: unknown type name ‘IN6_ADDR’
> LONG NTAPI RtlIpv6StringToAddressExA(PCSTR AddressString, IN6_ADDR *Address, PULONG ScopeId, PUSHORT Port);
>                                                           ^
> /usr/include/w32api/mstcpip.h:134:60: error: unknown type name ‘IN6_ADDR’
> LONG NTAPI RtlIpv6StringToAddressExW(PCWSTR AddressString, IN6_ADDR *Address, PULONG ScopeId, PUSHORT Port);
>                                                            ^
> sopen.c: In function ‘establish’:
> sopen.c:116:44: error: ‘namelen’ undeclared (first use in this function)
>   GetComputerName((LPTSTR)myname,(LPDWORD)&namelen);
>                                            ^
> sopen.c:116:44: note: each undeclared identifier is reported only once for each function it appears in
> 
>  D:\R2015A\BIN\MEX.PL: Error: Compile of 'sopen.c' failed.
> 
> ************
> 
> Sincerely yours,
> Alexander
> 
> -------------------------
> Dr. Alexander KOROVIN
> 
> Lab. Génie électrique et électronique - Paris (GeePs)
> 11 rue Joliot-Curie
> Plateau de Moulon
> F-91192 Gif-sur-Yvette cedex
> France
> +33-1-69-85-16-83
> 



More information about the petsc-users mailing list