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