title: In which library is the MD5() function?
body: <p>As I'm writing code to install on a target machine, I was wondering about the dependencies and noticed that there were no openssl library needed. I wondered because I know I am using OpenSSL:</p>
  
  <pre><code>#include &lt;openssl/md5.h&gt;
  
  ...
  MD5(a, b, c);
  ...
  </code></pre>
  
  <p>To my surprise, it seems that we only get linked against libc. Is MD5 really implemented in libc and not in some libssl library?</p>
  
  <hr>
  
  <p>objdump gives me the info about the linked library:</p>
  
  <pre><code>Dynamic Section:
    NEEDED               libQtCore.so.4
    NEEDED               libstdc++.so.6
    NEEDED               libgcc_s.so.1
    NEEDED               libc.so.6
    SONAME               libcontent.so
  </code></pre>
  
  <hr>
  
  <p>As suggested by noloader I tried with ldd and still fail to see a library that would make sense for MD5. libcontent.so is directly using MD5()...</p>
  
  <pre><code>ldd ../BUILD/snapwebsites/plugins/content/libcontent.so 
      linux-vdso.so.1 =&gt;  (0x00007fff4f3ff000)
      libQtCore.so.4 =&gt; /usr/lib/x86_64-linux-gnu/libQtCore.so.4 (0x00007ff37ad0f000)
      libstdc++.so.6 =&gt; /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007ff37aa0c000)
      libgcc_s.so.1 =&gt; /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007ff37a7f5000)
      libc.so.6 =&gt; /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff37a42c000)
      libpthread.so.0 =&gt; /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007ff37a20f000)
      libz.so.1 =&gt; /lib/x86_64-linux-gnu/libz.so.1 (0x00007ff379ff7000)
      libdl.so.2 =&gt; /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ff379df3000)
      libglib-2.0.so.0 =&gt; /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007ff379af7000)
      librt.so.1 =&gt; /lib/x86_64-linux-gnu/librt.so.1 (0x00007ff3798ee000)
      libm.so.6 =&gt; /lib/x86_64-linux-gnu/libm.so.6 (0x00007ff3795e9000)
      /lib64/ld-linux-x86-64.so.2 (0x00007ff37b5e5000)
      libpcre.so.3 =&gt; /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007ff3793a9000)
  </code></pre>
  
  <hr>
  
  <p>Also, just to make sure, I tried nm on that content library and I can see the MD5 entry:</p>
  
  <pre><code>                 w _ITM_registerTMCloneTable
  00000000003c9468 d __JCR_END__
  00000000003c9468 d __JCR_LIST__
                   w _Jv_RegisterClasses
                   U MD5                       &lt;---- it's here...
                   U memcmp@@GLIBC_2.2.5
                   w pthread_cancel
                   U pthread_mutex_destroy@@GLIBC_2.2.5
  </code></pre>