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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux