[Click] Compiling click elements in kernel mode with common library...

raul.cafini at studio.unibo.it raul.cafini at studio.unibo.it
Thu Apr 22 10:50:35 EDT 2010


Hello,

I have a problem compiling my own click element when i try to include headers
files like math.h or signal.h.

If I compile it with: make install, the linker return:
-----------------------------------------------------------------------------------------------------------------------------------
[root at deisnet69 click-git]# make install
make[1]: Entering directory `/home/user69/click-git/userlevel'
  CXX ../elements/local/CEScheduler.cc
../elements/local/CEScheduler.cc:928: warning: unused parameter ‘arg’
  LINK click
../mkinstalldirs /usr/local/lib
for i in libclick.a; do /usr/bin/install -c $i /usr/local/lib/$i; done
../mkinstalldirs /usr/local/bin
for i in click; do /usr/bin/install -c $i /usr/local/bin/$i; done
make[1]: Leaving directory `/home/user69/click-git/userlevel'
make[1]: Entering directory `/home/user69/click-git/linuxmodule'
make -C /lib/modules/2.6.31.12-174.2.19.fc12.i686.PAE/build
M=/home/user69/click-git/linuxmodule  modules
make[2]: Entering directory `/usr/src/kernels/2.6.31.12-174.2.19.fc12.i686.PAE'
  CXX [M] CEScheduler.o
In file included from /usr/include/signal.h:77,
                 from
/home/user69/click-git/linuxmodule/../elements/local/CEScheduler.cc:36:
/usr/include/time.h:120: error: redefinition of ‘struct timespec’
/home/user69/click-git/include/click-linuxmodule/include0/linux/time.h:16:
error: previous definition of ‘struct timespec’
make[3]: *** [/home/user69/click-git/linuxmodule/CEScheduler.o] Error 1
make[2]: *** [_module_/home/user69/click-git/linuxmodule] Error 2
make[2]: Leaving directory `/usr/src/kernels/2.6.31.12-174.2.19.fc12.i686.PAE'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/user69/click-git/linuxmodule'
make: *** [install] Error 1
----------------------------------------------------------------------------------------------------------------------------------------------------

In this case in the element CEScheduler I need the signal.h header file but i
can't writte #include <signal.h> without receive the error message above.

I know this problem is linked to kernel level compiling option but my question
is: how can i include libraries like signal.h or math.h in my elements and
compiling them in linux module version?

Thanks,

Raul.




More information about the click mailing list