On Mon, Feb 7, 2011 at 12:09 PM, Weeble <[email protected]> wrote:
> I'm currently running Mono 2.6.7 on an ARM box (a Sheevaplug) running
> Linux. When I try to run unit tests that work on Windows-x86 with
> Microsoft's CLR and on Linux-x86 with Mono, they fail often (but not
> always) with an assertion:
>
> thunk failed for 0x40368c80 from 0x4f2a20d8
> ERROR:mini-arm.c:2579:handle_thunk: assertion failed: (pdata.found == 1)

I have been unable so far to extricate the native library to produce a
simple test case that reproduces this. However, I have now built Mono
2.8.2 from source for the ARM device and edited in some extra
diagnostic output in mini-arm.c. It would appear that the when the
failure happens, handle_thunk uses search_thunk_slot to search for an
appropriate thunk slot, but every thunk table it considers is too far
away from the address it wants to branch from. Every invocation of
search_thunk_slot thus takes an early return and cannot create a thunk
entry in any of them.

Is there someone I can talk to who is familiar with this code, and
could advise me on how to address the problem? I imagine I could pore
over mini-arm.c for long enough to understand how and when thunk
tables are allocated and then maybe I could figure out how to make
sure that when memory is allocated for emitting code into that if
there's no thunk table in range a new one is created, or something
like that. However, I think I'd fare a lot better under advice from
someone familiar with it. Is it rude just to directly email the
authors (Paolo Molaro, Dietmar Maurer) who are recorded in the file?

Regards,

Weeble.
_______________________________________________
Mono-devel-list mailing list
[email protected]
http://lists.ximian.com/mailman/listinfo/mono-devel-list

Reply via email to