[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Matthias Drochner <M.Drochner%fz-juelich.de@localhost> writes:
> I think the problem is less that the kernel code is
No, the kernel code seems to be fine. The in-kernel emulator is
supposed to do only the four major ops, with libm handling the libm
stuff in software.
> but that userland CFLAGS and/or gcc have
> changed to inline fp ops:
> $ objdump -d /sbin/ping|grep sqrt
> 08048d00 <sqrt@plt>:
> 8049aeb: d9 fa fsqrt
> 8049c15: e8 e6 f0 ff ff call 8048d00 <sqrt@plt>
That seems to be the problem. If fsqrt is inlined, then libm can't ever
handle the stuff and we lose.
> The in-kernel emulator has always been incomplete.
Yes, and it *never* handled sqrt.
I'm somewhat reluctant to force userland to make function calls to do
things like sqrt if the compiler is now smart enough to inline them --
it is bad to slow down 99% of people for the benefit of 1%.
This is perhaps yet more reason to force non-FPU machines to use a
userland explicitly compiled with soft float.
Perry E. Metzger perry%piermont.com@localhost
Main Index |
Thread Index |