[Mono-list] Mono embedding issue
Andreas Färber
andreas.faerber at web.de
Tue Oct 10 06:29:14 EDT 2006
Hello Robert,
Thanks for your quick replies!
>> When embedding Mono 1.1.17.1 on OS X i386, I get an assertion failure
>> in mono_jit_init:
>> ** ERROR **: file threads.c: line 420 (mono_thread_attach): assertion
>> failed: (thread_handle)
>> aborting...
>
> This basically means that io-layer's GetCurrentThread returned
> NULL, which is completely nonsense because it always returns
> a constant value != NULL.
>
> I suppose MacOS has its own GetCurrentThread function which gets
> linked and called instead Mono's:
>
> http://bugzilla.ximian.com/show_bug.cgi?id=77324
I already read that bug report. It refers to _GetCurrentProcess as
opposed to GetCurrentThread.
I do get a linker warning only for the _GetCurrentProcess symbol, as
mentioned in #77324; my workaround is to add -undefined
dynamic_lookup to the linker flags in Xcode, which also eliminates
the error for the _environ symbol. The only remaining warning then
was Mono.framework not being Universal, which I can safely ignore as
I am recompiling on both platforms against the native one installed.
Please do note that my code works on ppc, so it's unlikely to be a
general OS X API problem.
I would of course appreciate some solution to the name conflict,
possibly as outlined in the bug comments by Paolo in April.
My native code is a Cocoa bundle, linked to Cocoa.framework,
DevToolsCore.framework and Mono.framework. The other
_GetCurrentProcess seems to originate somewhere from the
Cocoa.framework, which is the basis for all object-oriented bundles
on OS X.
My method calling mono_jit_init is a regular (non-initialize)
Objective-C class method. Since yesterday that is to be exact -
before that I had the Mono embedding in a separate library's
initialization routine, spawning a pthread to avoid deadlock,
yielding virtually identical results (ppc worked, i386 didn't).
One machine is a Dual Core PowerPC G5, the other an Intel Core Duo,
so both dual-core. The only difference I just noticed is OS X v10.4.8
on ppc and v10.4.7 on i386, but both are running Xcode 2.4. Will
check on that but I'm not too optimistic...
Andreas
More information about the Mono-list
mailing list