BZ #62: ARM Linux kernels compiled with EABI + OABI_COMPAT breaks swi EABI call
Status fields:
creation_ts: | 2008-04-10 13:19 |
component: | jit |
version: | default branch |
rep_platform: | arm |
op_sys: | Linux |
bug_status: | RESOLVED |
resolution: | FIXED |
reporter: | xerxes@zafena.se |
If new Linux kernels are compiled with EABI + OABI_COMPAT then EABI swi calls breaks.
With OABI_COMPAT included (it gets enabled default when enabeling EABI in linux kernel
configuration) The kernel looks on the adress passed with the swi instruction to
determine if it is a EABI or OABI call.
If swi passes 0 then the kernel thinks it is a EABI call
With an adress passed with swi the kernel thinks it is a OABI call and this breaks the
code on EABI systems since the jit cacheflush code allways passes an adress with the swi
instruction.
A quick fix is to disable OABI_COMPAT support and recompile the linux kernel since this
disables the swi check in the kernel.