[Mono-dev] mono 2.2 rc2 on ARM issues
cliff.brake at gmail.com
Mon Dec 22 14:08:23 EST 2008
On Thu, Dec 18, 2008 at 9:46 PM, Miguel de Icaza <miguel at novell.com> wrote:
>> For the record, I figured out the root cause for the Illegal
>> Instruction. Openembedded when it builds ARM kernels turns off
>> CONFIG_OABI_COMPAT (automatically) as a performance optimization if it
>> detects you are building with a EABI toolchain, etc. So unless I'm
>> missing something, at this time Mono requires OABI_COMPAT enabled in
>> ARM kernels. We should probably fix this up at some point as there
>> will be an increasing number of ARM systems in the future that have
>> this turned off.
> Can you explain this for the layman?
This is the most complete description of OABI/EABI for ARM I've found:
During the OABI/EABI change, the system call interface changed. Linux
kernels can be configured to support both syscall conventions, but
there is a very small performance hit.
> What is the suggested approach to take?
I suggest at some point, consider supporting the new syscall
convention in the Mono trampoline. I think all that needs modified is
the ASM for the syscalls. Probably need to support both OABI and EABI
for the present, but can probably deprecate OABI syscall support in
the next year or so.
> Is this something that we could put in a configure test, or is this a
> runtime issue?
Could be done with a configure test -- if we are using a EABI
compiler, I don't think there is any reason to use the OABI syscall
More information about the Mono-devel-list