kernel module and float
rsmith at xs4all.nl
Mon Mar 3 18:31:16 UTC 2008
On Mon, Mar 03, 2008 at 01:47:32PM +0100, Jean-Yves Moulin wrote:
> I have a problem with gcc on amd64 platform. I need to do division and
> multiplication with float into a kernel module. This module compile, load
> and run without problem on i386 platform. I can compile it on amd64 but
> when I try to load it I have:
> link_elf_obj: symbol __mulsf3 undefined
> After some search, I found that __mulsf3 (and __divsf3...etc) are builtin
> function of gcc. In my assembly source result, I have a "call __mulsf3" but
> the function is defined nowhere.
> I'm working on amd64 6.3-RELEASE binaries and source tree.
> Is that normal ? Do I need to use something special in order to use float
> into kernel ? How can I solve this ?
Floating point arithmetic isn't used in the kernel for performance
reasons. The kernel is compiled with -msoft-float which prevents gcc
from generating floating point instructions. In this case it uses
routines that are part of libgcc. As far as I can tell, the kernel isn't
linked with libgcc.
[plain text _non-HTML_ PGP/GnuPG encrypted/signed email much appreciated]
pgp: 1A2B 477F 9970 BA3C 2914 B7CE 1277 EFB0 C321 A725 (KeyID: C321A725)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-amd64/attachments/20080303/8497f3de/attachment.pgp
More information about the freebsd-amd64