No softfloat?

Dr. H. Nikolaus Schaller hns at computer.org
Thu Aug 23 08:48:02 CEST 2007


Am 14.08.2007 um 19:43 schrieb Brian Brunswick:
> I was the one originally noticing this.
>
> It looks like a kernel config change has been checked in to at  
> least enable the hard float emulation in
> newer built versions.

I have now found that the 2688 kernel from http://chooseopen.com/ 
openmoko/build/2007.1 includes Hardfloat and still uses OABI.

So it is compatible to the Sharp Zaurus (Sharp ROM) executables.

> You will still find it hard to produce a common binary, since I am  
> told that the hard and soft
> float formats are incompatible, so you can't dynamic link against  
> any libraries for float operations.

Yes, that is the next issue... Libraries in the rootfs are compiled  
for Softfloat. And the builtin utilities
rely on these newer versions so that you can't simply downgrade to  
libc-2.2.2 and libm copied from
a Zaurus...

What I found is this note: http://osdir.com/ml/linux.debian.ports.arm/ 
2005-10/msg00000.html

So, calling e.g. float fabs(float x) is ok, but the return value is  
returned in r0 instead of fp0.

Now this opens two options:

a) a wrapper library that rewraps all float-returning functions in  
libc and libm to add one
     assembler command to copy from r0 to fp0
b) copy all the float code that is really used (ceil, floor, fabs  
etc.) to my own sources

Let's see...





More information about the device-owners mailing list