[Mono-list] Mono embedding issue

Andreas Färber andreas.faerber at web.de
Tue Oct 10 08:32:37 EDT 2006


Am 10.10.2006 um 12:29 schrieb Andreas Färber:

>
>>> 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...

Same problem on Intel on OS X v10.4.8, and with Mono 1.1.17.2.

The link to the 1.1.17.2 release notes raises a 403 error btw.

Andreas


More information about the Mono-list mailing list