floating point support for ARM
ralphs at netwinder.org
Thu Jun 16 22:09:08 CEST 2005
David Keller wrote:
> We have compiled the hole environment with a soft-float-compiler, but
> the FPE is still on in kernel-config.
In that case the kernel FPE should not be exercised at all.
>> Normally floating-point is not allowed in the kernel.
> But shouldn't RTAI allow to do this in real-time tasks?
Perhaps... I honestly have never tried nor wanted to try :)
> Since the hole environment is compiled with soft-float, we didn't link
> it satically. We thought statically linked libraries are only necessary,
> if only a part of the system uses soft-float and another one uses the
> kernels FPE. Please correct me, if this I'm wrong here.
The kernel FPE does emulation only on behalf of user-space programs.
Its necessary because the FP registers are piggypacked on the task
structure. On the other hand kernel modules that are executing code do
not have a "task" structure. So there is nowhere to store FP registers.
If you load into the kernel (via insmod) something with real FP
instructions, you will probably crash the kernel when they execute (I'm
guessing. Never tried it). On the other hand, if you take care to link
in code compiled with soft-float, _AND_ all the actual libraries that it
calls (including softfloat calls) are present, then it should be
possible to run. Same reason if you call a glibc function and expect it
to work "in kernel" then you have to statically link in that function.
> But LXRT is missing for ARM, so real-time FP stuff should be done in
> kernel-space, shouldn't it?
I guess so...
More information about the Rtai