[Mono-list] Re: Mono-list digest, Vol 1 #476 - 18 msgs
Mon, 26 Aug 2002 21:51:25 -0500
> Date: Mon, 26 Aug 2002 10:21:52 +0200
> From: Paolo Molaro <email@example.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?