hyall
i'm sorry to intrude with such a dry topic, but here goes:
i'm compiling a homework module involving netfiltering and i get this output:
root@debian:~/pso/5# make
make -C /lib/modules/`uname -r`/build M=`pwd`
make[1]: Entering directory `/root/linux-2.6.10'
Building modules, stage 2.
MODPOST
*** Warning: "__fixunsdfsi" [/root/pso/5/tema5.ko] undefined!
*** Warning: "__adddf3" [/root/pso/5/tema5.ko] undefined!
*** Warning: "__floatsidf" [/root/pso/5/tema5.ko] undefined!
make[1]: Leaving directory `/root/linux-2.6.10'
root@debian:~/pso/5#
i noticed the adddf word appears in the source tree only in two places : asm/arm and some other thing.
all while i'm working on a plain ol' i386, and i never heard of arm (don't hold it against me!)
here are my includes:
#include linux/kernel.h
#include linux/module.h>
#include linux/fs.h>
#include asm/uaccess.h>
#include linux/cdev.h>
#include linux/spinlock.h>
#include linux/list.h>
#include linux/skbuff.h>
#include linux/ip.h>
#include linux/tcp.h>
#include linux/timer.h>
#include linux/netfilter_ipv4.h>
ideas?
am i missing out on something here?
on what the heck what?
thanx
floating point
These seem to be function calls gcc inserts into the instruction stream, to implement floating point operations. Especially in soft-float mode every floating point operation has to be a function call. This may be activated by the kernel people to detect illegal use of floating point in the kernel, because for several reasons (fp registers not saved on every system call to be faster, kernel has to run on machines without floating point hardware like original i386, arm and other embedded cpus, ...) floating point is not to be used inside the kernel, except to help user programs use it (context switches, exception handling, initialization, detection...). A quick googling found e.g. http://www.ussg.iu.edu/hypermail/linux/kernel/0310.1/1256.html [click on 'Next in thread' to read the answer].
So you have to abstain from using floating point types, functions and operators, e.g. emulate things like "x*0.125" by "x/8" or "x >> 3".