[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