[Click] Trouble linking MD5 hash functions against Linux kernel module

Eddie Kohler kohler at cs.ucla.edu
Fri Dec 7 17:49:50 EST 2007


This is one of the reasons that Click comes with its own MD5 functions, 
accessible in both kernel and userlevel.

See <include/click/md5.h>

Eddie


Beyers Cronje wrote:
> Daniel,
> 
> You can not use userland libraries in the kernel module. The kernel includes
> is own crypto api, see http://www.linuxjournal.com/article/6451
> 
> Also see include/linux/crypto.h<http://lxr.oss.org.cn/source/include/linux/crypto.h#L208>
> 
> Beyers
> 
> On Dec 6, 2007 7:19 AM, Daniel Pall <dpall at princeton.edu> wrote:
> 
>> I'm trying to compile the Linux kernel module with an additional
>> element included.  That element uses MD5 hashing, so it uses function
>> calls like MD5_Init, MD5_Update, and MD5_Final as defined in
>> openssl/md5.h.  I'm #include'ing this file in my code, and I'm also
>> trying to link with the -lssl flag in the Makefile, but it does not
>> appear to be working.  Check out this failed compilation:
>>
>> [root at sw0.dan11.chang.emulab.net:/proj/Chang/tmp/click-1.6.0/linuxmodule
>> 107 ]make
>> make -C /lib/modules/2.6.19.2-1.2944.fc6.emulab-1/build
>> M=/proj/Chang/tmp/click-1.6.0/linuxmodule modules
>> make[1]: Entering directory `/usr/src/linux-2.6.19.2'
>>  Building modules, stage 2.
>>  MODPOST 2 modules
>> WARNING: "MD5_Update"
>> [/proj/Chang/tmp/click-1.6.0/linuxmodule/click.ko] undefined!
>> WARNING: "MD5_Final"
>> [/proj/Chang/tmp/click-1.6.0/linuxmodule/click.ko] undefined!
>> WARNING: "MD5_Init" [/proj/Chang/tmp/click-1.6.0/linuxmodule/click.ko]
>> undefined!
>> make[1]: Leaving directory `/usr/src/linux-2.6.19.2'
>> [root at sw0.dan11.chang.emulab.net:/proj/Chang/tmp/click-1.6.0/linuxmodule
>> 108 ]
>>
>> So, this does make a click.ko kernel module, but it's incomplete and I
>> can't insert it into the kernel, because it can't resolve these MD5
>> functions (it complains about the MD5* functions as unknown symbols).
>>
>> Some details: I'm running Linux kernel 2.6.19.2, and on my machine,
>> libssl.a is contained in /usr/lib.  I noticed in the FAQ there was a
>> question that seems close to what I want to know:
>> One of my elements must be linked against another library. How can I
>> make userlevel Click link with that library?
>>
>> Basically, I want to know the answer to that question, but for the
>> Linux kernel module instead of userlevel Click.  Any suggestions?
>>
>> Thanks for your time,
>> Dan
>> _______________________________________________
>> click mailing list
>> click at amsterdam.lcs.mit.edu
>> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
>>
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click


More information about the click mailing list