<HTML><FONT FACE=arial,helvetica><FONT COLOR="#000000" FACE="Courier" FAMILY="FIXED" SIZE="1"> Hi,<BR>
I dont recall how I stumbled upon Wine and its existance, however I am intersted in recent, if any, devlopments with the porting of Wine to OS X. I checked the Wine site and most of the articles are dated with the lastest date of Nov 2000. A lot has changed in OS X since that time and it appears that a leats a couple of the main issues have been addressed during this time. The main issues which seemed to be posted are as follows:<BR>
<BR>
<BR>
<BR>
Current list of possible issues:<BR>
================================<BR>
-> Endianness. Since we are using WineLib, could<BR>
have resources written in native (big) endian format<BR>
with wrc. Any external data files such as cursors, bitmaps, sound<BR>
would have to be converted. The PUT_WORD/GET_WORD macros<BR>
need byte swapping turned off. (Did I miss anything?)<BR>
<BR>
-> Exception handling, Signal handling code<BR>
<BR>
-> Memory alignment issues<BR>
<BR>
-> According to "Inside MacOS X: Kernel Environment"<BR>
(</FONT><FONT COLOR="#0000FF" FACE="Courier" FAMILY="FIXED" SIZE="1"><A HREF="http://developer.apple.com/techpubs/macosx/Kernel/KernelEnvironment.pdf">http://developer.apple.com/techpubs/macosx/Kernel/KernelEnvironment.pdf</A></FONT><FONT COLOR="#000000" FACE="Courier" FAMILY="FIXED" SIZE="1">)<BR>
pg. 34, Darwin supports Pthreads, "many of the POSIX APIs"<BR>
I haven't been able to find any lists of incompatibilities yet,<BR>
but I am afraid of the word "many".<BR>
<BR>
-> According to the "MacOS X Kernel Environment" book, pg. 37,<BR>
Mac OSX does not support memory mapped devices through the mmap<BR>
API. This would affects at least streaming sound playback.<BR>
<BR>
-> WSControl / WSAIoctl need to be adapted to MacOS X.<BR>
(ioctl() calls can be platform dependent, /proc/net/dev<BR>
on linux is probably different on OSX)<BR>
<BR>
-> Sound Support. Currently done with WineOSS (ties into<BR>
Linux OSS drivers) Doesn't seem to be a port of OSS<BR>
to MacOSX. Maybe need to do another layer specific to the<BR>
Mac(?)<BR>
<BR>
-> Must ensure that behaviour of lower level UNIX resources<BR>
like sockets, threads, files are the way WINE expects it.<BR>
<BR>
-> Presence of Assembly language in code will have to be written<BR>
in C or translated to PowerPC assembly. (assembly is generated<BR>
in spec.c files, as well as other places like in the server)<BR>
<BR>
-> Debugger seems tied completely to Intel architecture.<BR>
(Since we will be using WineLib, we probably don't need<BR>
winedbg, can use gdb?)<BR>
<BR>
-> Need a X11 server or need to make a x11drv replacement that<BR>
is Quartz specific. (There is a XFree86 port to MacOS X, but<BR>
it only runs seperately from Quartz at this time. Making the<BR>
X server a rootless client of Quartz is on the TODO list of<BR>
Darwin but there is no mention of its current status.<BR>
There is a commercial server, at:<BR>
</FONT><FONT COLOR="#0000FF" FACE="Courier" FAMILY="FIXED" SIZE="1"><A HREF="http://www.tenon.com/products/xtools/"> http://www.tenon.com/products/xtools/</A></FONT><FONT COLOR="#000000" FACE="Courier" FAMILY="FIXED" SIZE="1"> which already implements<BR>
this)<BR>
<BR>
-- the XFree86 port to MacOS X now includes a rootless clinet of Quartz so this should be a big jump having the window manager avialable.<BR>
<BR>
-> Need to be able to build Windows app using gcc (might be issues<BR>
such as using MS specific keywords/language constructs, etc.)<BR>
Does ATL build properly with gcc?<BR>
<BR>
<BR>
<BR>
in addition James Hatheway wrote on Nov 10 2000<BR>
"To test these concerns, I made four test apps and compiled and ran them<BR>
on Mac OS X. I used the "Mac OS X Public Beta Developer Tools CD"<BR>
which is downloadable from</FONT><FONT COLOR="#0000FF" FACE="Courier" FAMILY="FIXED" SIZE="1"><A HREF="http://connect.apple.com"> http://connect.apple.com<BR>
<BR>
<BR>
</A></FONT><FONT COLOR="#000000" FACE="Courier" FAMILY="FIXED" SIZE="1"><BR>
The first test app used mmap and MAP_SHARED option, the second sent<BR>
messages between two programs using sendto over a socket, the third<BR>
used file I/O functions (like read,write) to send messages over a<BR>
socket, the fourth sent an FD over a socket to another process<BR>
using sendmsg/recvmsg.<BR>
<BR>
I have good news, each of these programs compiled without<BR>
modification on MacOS X with the standard cc, and ran perfectly!!<BR>
<BR>
So, I don't think there are any show stoppers that would<BR>
keep us from being able to port WineLib to MacOS X. <BR>
Of course there would be work to do, but at least it<BR>
is definitely possible.<BR>
<BR>
<BR>
<BR>
"<BR>
<BR>
I dont no what has happend to the WineLib port to MacOSX if anything. However, I am willing with what time I have to begin a port, since it does seem like it can be done now, hopefully with a group of people. In addition apple has posted some information regarding win32 porting that may be a little help at "http://developer.apple.com/macosx/win32porting/". Hope you had the best of holidays.<BR>
Thanks<BR>
<BR>
~Sanjay Connare</FONT><FONT COLOR="#000000" FACE="Geneva" FAMILY="SANSSERIF" SIZE="2"></FONT></HTML>