2014-02-03 09:10:59

by naveen yadav

[permalink] [raw]
Subject: Issue Float point in ARM WARNING: "__aeabi_d2iz"

Dear All,

We are using ARM SOC cortex A15. we are running 3.10.x kernel. I am
using gcc 4.6



I need floating point in kernel module. So when I build I got warning
WARNING: "__aeabi_d2iz" [/home/test/tt/hello.ko] undefined!
WARNING: "__aeabi_dmul" [/home/test/tt/hello.ko] undefined!
WARNING: "__aeabi_dsub" [/home/test/tt/hello.ko] undefined!
WARNING: "__aeabi_ddiv" [/home/test/tt/hello.ko] undefined!
WARNING: "__aeabi_f2d" [/home/test/tt/hello.ko] undefined!

static int __init hello_init(void)
{
float a=3.14;
float b=3.1222;
b=7.2/a ;
printk(KERN_INFO "Hello world! %f\n",a/b);
return 0; // Non-zero return means that the module couldn't be loaded.
}
static void __exit hello_cleanup(void)
{
printk(KERN_INFO "Cleaning up module.\n");
}

module_init(hello_init);
module_exit(hello_cleanup);


So I change in my Linux kernel make file.

arch/arm/Makefile

I remove -msoft-float .
-KBUILD_CFLAGS +=$(CFLAGS_ABI) $(CFLAGS_ISA) $(arch-y) $(tune-y)
$(call cc-option,-mshort-load-bytes,$(call
cc-option,-malignment-traps,)) -msoft-float -Uarm
-KBUILD_AFLAGS +=$(CFLAGS_ABI) $(AFLAGS_ISA) $(arch-y) $(tune-y)
-include asm/unified.h -msoft-float
+KBUILD_CFLAGS +=$(CFLAGS_ABI) $(CFLAGS_ISA) $(arch-y) $(tune-y)
$(call cc-option,-mshort-load-bytes,$(call
cc-option,-malignment-traps,)) -Uarm
+KBUILD_AFLAGS +=$(CFLAGS_ABI) $(AFLAGS_ISA) $(arch-y) $(tune-y)
-include asm/unified.h


I run my module and it work well.
So my question is .
1. Is it correct way ?
2. will it effect my performance in normal scenario ?
3. how can I check more stability?

Regards.


2014-02-03 09:37:08

by Catalin Marinas

[permalink] [raw]
Subject: Re: Issue Float point in ARM WARNING: "__aeabi_d2iz"

On Mon, Feb 03, 2014 at 09:10:57AM +0000, naveen yadav wrote:
> We are using ARM SOC cortex A15. we are running 3.10.x kernel. I am
> using gcc 4.6
>
> I need floating point in kernel module.

Try fixed point arithmetics ;). Floating point is not allowed in the
kernel.

--
Catalin