linux-mips
[Top] [All Lists]

Re: unresolved symbol litodp,dptoli,dpmul - floating point operations in

To: Geert Uytterhoeven <geert@linux-m68k.org>
Subject: Re: unresolved symbol litodp,dptoli,dpmul - floating point operations in kernel
From: Jun Sun <jsun@mvista.com>
Date: Fri, 10 Oct 2003 09:58:24 -0700
Cc: durai <durai@isofttech.com>, mips <linux-mips@linux-mips.org>, jsun@mvista.com
In-reply-to: <Pine.GSO.4.21.0310101627400.8302-100000@waterleaf.sonytel.be>; from geert@linux-m68k.org on Fri, Oct 10, 2003 at 04:28:27PM +0200
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <02d001c38f36$ba4a8e00$6b00a8c0@DURAI> <Pine.GSO.4.21.0310101627400.8302-100000@waterleaf.sonytel.be>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.2.5i
On Fri, Oct 10, 2003 at 04:28:27PM +0200, Geert Uytterhoeven wrote:
> On Fri, 10 Oct 2003, durai wrote:
> > I am using a mips cross compiler (mips-linux-gcc, version 2.95.3) to build 
> > my driver
> > I am using some floating point operations in a wireless lan driver for a 
> > mips platform in ucLinux, When i load the driver I am getting unresolved 
> > symbols
> > 
> > > 
> > > insmod: unresolved symbol dptoli
> > > insmod: unresolved symbol dpmul
> > > insmod: unresolved symbol litodp
> > 
> > And somebody told me that we cannot use floating point operations in kernel 
> > code, but i desperately need to use floating point operations. 
> > please tell me how to use floating point operations in kernel code.
> 
> Do not use floating point operations in kernel code.
> Re-implement using fixed point or something like that.
>

If you are really really desparate, something like the following
might work.

void use_fpu(void)
{
        if (is_fpu_owner()) {
                save_fp(current);
                loose_fpu();
                enable_fpu();
        }
        local_irq_save(flags);
        
        /* now use fpu and store the results */

        local_irq_restore(flags);
}

I like to emphsize this is just a hack and I am not even sure if it will work
at all.  If compiler complains you might have to change the
CC flag for that file or use fpu with inline assembly.

Jun

<Prev in Thread] Current Thread [Next in Thread>