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.