[Mono-list] Re: Mono-list digest, Vol 1 #476 - 18 msgs

jddst19@mac.com jddst19@mac.com
Mon, 26 Aug 2002 21:51:25 -0500

> Date: Mon, 26 Aug 2002 10:21:52 +0200
> From: Paolo Molaro <lupus@ximian.com>
> This list is the correct one to discuss about the port to OS X.

Cool, then perhaps someone can help me look in the right direction. I 
have the system compiling and finding its libraries and such. Of course, 
I don't have the jit. But when mint runs, it loads corlib and starts 
initializing it. It crashes after executing two PInvoke calls, 
InitializeArray and GetLength. More specifically, it gets past the first 
but fails _after_ the second when it goes to do a TlsSetValue() and put 
the frame into the frame_thread_id position.

As I was tracing, I noticed that this was due to it passing a silly 
value instead of frame_thread_id.  My guess after inspecting the code: 
register was clobbered somewhere.

It seems as though the calling convention used on Mac OS X is different 
from the Linux one. An immediate difference that I noticed was that the 
Linux one (according to the arch/ppc/tramp.c file) is not leaving space 
available in the stack when it fills a register with a parameter. I knew 
that wasn't the problem, but I fixed it anyway. Anyone else know of 
register-clobbering differences between the two operating systems?