Solaris build patches
Alan Hargreaves
Alan.Hargreaves at Sun.COM
Sun Jul 6 19:47:54 CDT 2003
This is to fix a number of build problems under Solaris. There still
appears to be a problem with ptrace in the server code that is
preventing a build. I am looking at this.
alan.
=========
Alan Hargreaves - Alan.Hargreaves at Sun.COM
wine/dlls/ntdll/signal_i386.c
Bug 1569
- Cast needed for FAULT_ADDRESS in Solaris
wine/dlls/iphlpapi/ifenum.c
Bug 1572
- Brace in incorrect place makes an if else clause malformed
- struct ifreq has been deprecated in Solaris and also does
not have an element for ifr_mtu. Inserted a replacement
getInterfaceMtuByName if __sun is defined. This version uses
struct lifreq.
- Solaris does not implement getInterfaceAddrByName. Added this
routine to be used if __sun is defined.
-------------- next part --------------
Index: wine/dlls/iphlpapi/ifenum.c
===================================================================
RCS file: /home/wine/wine/dlls/iphlpapi/ifenum.c,v
retrieving revision 1.3
diff -r1.3 ifenum.c
617a618,645
> #ifdef __sun
>
> /* Solaris does not define getInterfaceAddrByName */
>
> uint32_t getInterfaceAddrByName(const char * name)
> {
> int fd;
> struct ifreq ifr;
> struct sockaddr_in *sin = (struct sockaddr_in *)&ifr.ifr_addr;
> uint32_t ret = (uint32_t)NULL;
>
> fd = socket(PF_INET, SOCK_DGRAM, 0);
>
> if (fd < 0) {
> return ret;
> }
>
> memset(&ifr, 0, sizeof(struct ifreq));
> strncpy(ifr.ifr_name, name, IFNAMSIZ);
> ifr.ifr_name[IFNAMSIZ-1] = '\0';
> if ((ioctl(fd, SIOCGIFADDR, &ifr))>=0) {
> ret = ntohl(sin->sin_addr.s_addr);
> }
> close(fd);
> return ret;
> }
> #endif /* __sun */
>
664,665d691
< else
< ret = ERROR_NO_MORE_FILES;
666a693,694
> else
> ret = ERROR_NO_MORE_FILES;
770a799,830
> #if defined(__sun)
>
> DWORD getInterfaceMtuByName(const char *name, PDWORD mtu)
> {
> DWORD ret;
> int fd;
>
> if (!name)
> return ERROR_INVALID_PARAMETER;
> if (!mtu)
> return ERROR_INVALID_PARAMETER;
>
> fd = socket(PF_INET, SOCK_DGRAM, 0);
> if (fd != -1) {
> struct lifreq ifr;
>
> strncpy(ifr.lifr_name, name, IFNAMSIZ);
> ifr.lifr_name[IFNAMSIZ-1] = '\0';
> if ((ioctl(fd, SIOCGIFMTU, &ifr)))
> ret = ERROR_INVALID_DATA;
> else {
> *mtu = ifr.lifr_mtu;
> ret = NO_ERROR;
> }
> }
> else
> ret = ERROR_NO_MORE_FILES;
> return ret;
> }
>
> #else /* defined(__sun) */
>
797a858
> #endif
Index: wine/dlls/ntdll/signal_i386.c
===================================================================
RCS file: /home/wine/wine/dlls/ntdll/signal_i386.c,v
retrieving revision 1.66
diff -r1.66 signal_i386.c
370a371,373
> #ifdef __sun
> #define FAULT_ADDRESS (((k_siginfo_t *)__siginfo)->si_addr)
> #else
371a375
> #endif
More information about the wine-patches
mailing list