Unfortunately, wine can not be compiled under Solaris “as is”. Some tricks are needed.
- If you do not needed LDAP and 16bit support, turn them off:
./configure --without-ldap --disable-win16
- To get rid of the following error:
In file included from object.h:30, from fd.c:76: ../include/wine/list.h:25: error: redefinition of `struct list' ../include/wine/list.h:97: error: conflicting types for 'list_remove' /usr/include/sys/list.h:48: error: previous declaration of 'list_remove' was here ../include/wine/list.h:97: error: conflicting types for 'list_remove' /usr/include/sys/list.h:48: error: previous declaration of 'list_remove' was here ../include/wine/list.h:104: error: conflicting types for 'list_next' /usr/include/sys/list.h:53: error: previous declaration of 'list_next' was here ../include/wine/list.h:104: error: conflicting types for 'list_next' /usr/include/sys/list.h:53: error: previous declaration of 'list_next' was here ../include/wine/list.h:112: error: conflicting types for 'list_prev' /usr/include/sys/list.h:54: error: previous declaration of 'list_prev' was here ../include/wine/list.h:112: error: conflicting types for 'list_prev' /usr/include/sys/list.h:54: error: previous declaration of 'list_prev' was here ../include/wine/list.h:120: error: conflicting types for 'list_head' /usr/include/sys/list.h:51: error: previous declaration of 'list_head' was here ../include/wine/list.h:120: error: conflicting types for 'list_head' /usr/include/sys/list.h:51: error: previous declaration of 'list_head' was here ../include/wine/list.h:126: error: conflicting types for 'list_tail' /usr/include/sys/list.h:52: error: previous declaration of 'list_tail' was here ../include/wine/list.h:126: error: conflicting types for 'list_tail' /usr/include/sys/list.h:52: error: previous declaration of 'list_tail' was here ../include/wine/list.h:153: warning: static declaration of 'list_move_tail' follows non-static declaration /usr/include/sys/list.h:49: warning: previous declaration of 'list_move_tail' was here gmake[1]: *** [fd.o] Error 1 gmake[1]: Leaving directory `/var/tmp/wine-0.9.56/server' gmake: *** [server] Error 2
Change server/fd.c:
*** 71,76 **** --- 71,88 ---- #include <sys/types.h> #include <unistd.h> + /* + struct list is defined at sys/list_impl.h on solaris + this patches work around it. + */ + #define list WINELIST + #define list_remove WINELIST_REMOVE + #define list_next WINELIST_NEXT + #define list_prev WINELIST_PREV + #define list_head WINELIST_HEAD + #define list_tail WINELIST_TAIL + #define list_move_tail WINELIST_MOVE_TAIL + #include "ntstatus.h" #define WIN32_NO_STATUS #include "object.h"
- Compile with /usr/sfw/bin/gcc not /opt/csw/bin/gcc. You can successfully compile wine with CSWgcc but if you run wine or winecfg you will get the following error (at least under Solaris 11 builds83a-86):
$ winecfg sock_init: ERROR in sock_check_pollhup() Assertion failed: next->flags & VFLAG_SYSTEM, file virtual.c, line 467 Abort
Formatted for copy&paste:
. . .
#define list WINELIST
#define list_remove WINELIST_REMOVE
#define list_next WINELIST_NEXT
#define list_prev WINELIST_PREV
#define list_head WINELIST_HEAD
#define list_tail WINELIST_TAIL
#define list_move_tail WINELIST_MOVE_TAIL
. . .