2007-09-17 14:07:10

by Sriram V

[permalink] [raw]
Subject: Floating point computations in kernel modules

Hi,

I am trying to write a driver which uses double, float. I am using
an arm11 with gcc 3.4.4

When i try to compile my modules (with float variables) i get the error

WARNING: "__extendsfdf2" undefined!
WARNING: "__mulsf3"undefined!
WARNING: "__fixsfsi"undefined!
WARNING: "__floatsisf"undefined!

Can we use float, double in kernel modules?.

Obviously it is a linking error, I am using soft-float. I tried with
-msoft-float but got the same result.

I suspect that its a toolchain issue. However i am able to compile
my applications
with float, double variables.


Please do advice.


Regards,
sriram


2007-09-17 14:13:55

by Trond Myklebust

[permalink] [raw]
Subject: Re: Floating point computations in kernel modules

On Mon, 2007-09-17 at 19:36 +0530, Ram wrote:
> Hi,
>
> I am trying to write a driver which uses double, float. I am using
> an arm11 with gcc 3.4.4
>
> When i try to compile my modules (with float variables) i get the error
>
> WARNING: "__extendsfdf2" undefined!
> WARNING: "__mulsf3"undefined!
> WARNING: "__fixsfsi"undefined!
> WARNING: "__floatsisf"undefined!
>
> Can we use float, double in kernel modules?.
>
> Obviously it is a linking error, I am using soft-float. I tried with
> -msoft-float but got the same result.
>
> I suspect that its a toolchain issue. However i am able to compile
> my applications
> with float, double variables.
>
>
> Please do advice.
>
>
> Regards,
> sriram
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

Feel free to peruse the Documentation directory before posting. More
specifically, Documentation/DocBook/kernel-hacking.tmpl has a chapter
called 'Some Basic Rules' which addresses your question.

Trond

2007-09-17 14:18:17

by Markus Rechberger

[permalink] [raw]
Subject: Re: Floating point computations in kernel modules

Hi,

On 9/17/07, Ram <[email protected]> wrote:
> Hi,
>
> I am trying to write a driver which uses double, float. I am using
> an arm11 with gcc 3.4.4
>
> When i try to compile my modules (with float variables) i get the error
>
> WARNING: "__extendsfdf2" undefined!
> WARNING: "__mulsf3"undefined!
> WARNING: "__fixsfsi"undefined!
> WARNING: "__floatsisf"undefined!
>
> Can we use float, double in kernel modules?.
>

in general you shouldn't use floating point in the kernel since there's no
portable way which will work among different architectures.

> Obviously it is a linking error, I am using soft-float. I tried with
> -msoft-float but got the same result.
>
> I suspect that its a toolchain issue. However i am able to compile
> my applications
> with float, double variables.
>
>
> Please do advice.
>

if you need a solution inkernel best would be to try to get around by converting
your algorithm to integer.

although you might have a look at:
http://www.fi.muni.cz/~xslaby/unpr.html
http://www.mail-archive.com/linuxppc-embedded%40ozlabs.org/msg01291.html

Markus