Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Linux emulation



On 3 Apr, 2014, at 13:45 , Christos Zoulas <christos%zoulas.com@localhost> 
wrote:
> On Apr 3,  9:06pm, rjs%fdy2.co.uk@localhost (Robert Swindells) wrote:
> -- Subject: Re: Linux emulation
> 
> | >I think so. It is not possible to run linux EABI binaries on a non EABI
> | >native system, right?
> | 
> | I have tried it out after sending that email, the ABI of the host
> | system doesn't seem to make any difference, I'm getting good ktrace
> | logs now.
> | 
> | I was wondering if our EABI did similar things to the Linux one in
> | aligning 64 bit parameters in registers.
> 
> Interesting. I guess Matt is the person to ask. If it does not make
> a difference, then it should probably be enabled unconditionally?

I think it can be enabled unconditionally.  I think the ABI the
kernel was compiled for doesn't matter, it is the ABI the Linux
binary was compiled for which causes things to change.  The executive
decision would be whether the emulation code should run with Linux
binaries of either ABI or whether just picking one ABI is sufficient.

If the helper functions are added to the kernel, however, then how
the kernel is compiled may begin to matter.  The only oABI/EABI
incompatibilities I know of not involving floating point are for
64 bit arguments, in particular when the widths of the function
arguments match one of these:

    (<=32, 64, ...)
    (64, <=32, 64, ...)
    (<=32, <=32, <=32, 64, ...)

If there are no functions like that then it might be okay.

Dennis Ferguson



Home | Main Index | Thread Index | Old Index