Port-arm archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Are there known issues with earmhf?
On Jul 31, 2013, at 10:32 AM, Dennis Ferguson
<dennis.c.ferguson%gmail.com@localhost> wrote:
> I was interested in using earmhf on the am335x processor since it
> makes a measurable difference (with Linux) for the application I'm
> trying to support and it is easy to pick an abi up front but harder
> to change one's mind later. What I've found is that while the system
> builds just fine this way, and the kernel boots, applications which
> use floating point misbehave. For a minimal example (it uses floating
> point only to handle time intervals), `ping xxx` or `ping -i 1 xxx`
> sends packets just as fast as it possibly can while `ping -i 2 xxx` sends
> a single packet and then waits forever.
I wonder if something still think they are softfloat. BTW, for earm I've
fixed libc_vfp.so to adhere to the RTABI standard so it should work.
export LD_PRELOAD=/usr/lib/libc_vfp.so.0 or use /etc/ld.so.conf to do it
automatically.
> While I've looked at this briefly enough to only make a guess, it appears
> that floating point arithmetic done entirely within the application works
> okay, as do varargs function like printf(), but some other library function
> calls involving floating point values may be misbehaving.
>
> Beyond this I'm not sure where to look. Is this a known issue with earmhf
> and, if so, is it known what needs to be looked at? Is there an interesting
> place to look for code that is handling floating point function arguments
> and that may have built-in knowledge of the abi (e.g. assembly code)?
There isn't really any assembly code that deals with floating point
except for setjmp/longjmp and getcontext/setcontext.
It might be useful to use an earm userland and then use an earmhf chroot
tree and see if the program happens if more than 1 program uses FP as a time.
I think the kernel lazy FP switching code is right but I haven't really
tested it.
Home |
Main Index |
Thread Index |
Old Index