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...



Reply via email to