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

Eddie Kohler kohler at cs.ucla.edu
Thu Apr 22 15:24:35 EDT 2010


Raul,

Elements that need signal or math library support simply cannot run in the 
kernel.  Period.

You need to rely only on functionality that Click provides through its 
headers.  You cannot use floating point.

If you don't want to run in the kernel, run ./configure with 
--disable-linuxmodule.

Eddie


raul.cafini at studio.unibo.it wrote:
> 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.
> 
> 
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click



More information about the click mailing list