<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Benjamin, Your suggestion to change the linker syntax worked!  It compiled after I changed the Crypt.urp file to the following:<div class=""><br class=""></div><div class=""><div class="">ffi crypt</div><div class="">include crypt.h</div><div class="">link crypt.o <b class=""><font color="#e32400" class="">-lcrypto -lssl</font></b></div></div><div class=""><b class=""><font color="#e32400" class=""><br class=""></font></b></div><div class=""><div class="">Thanks for your help,</div><div class="">Todd</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jul 26, 2015, at 6:26 PM, Benjamin Barenblat <<a href="mailto:bbaren@mit.edu" class="">bbaren@mit.edu</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">-----BEGIN PGP SIGNED MESSAGE-----<br class="">Hash: SHA512<br class=""><br class="">Hi Todd,<br class=""><br class="">I’m a bit rusty on linker syntax, but I _think_ that instead of<br class=""><br class="">    gcc […] -lcrypto -lssl […]crypt.o<br class=""><br class="">you want<br class=""><br class="">    gcc […]crypt.o […] -lcrypto -lssl<br class=""><br class="">The linker needs to see that crypt.o uses 'SHA256@@OPENSSL_1.0.0' so it<br class="">can pull the appropriate symbol out of libcrypto.so, and it makes only<br class="">one pass from left to right.<br class=""><br class="">As an aside, I’ve written an FFI library [1] which looks like it does<br class="">exactly what you want.  Naturally, you’re welcome to use it.<br class=""><br class="">Best,<br class="">Benjamin<br class=""><br class="">[1] <a href="https://benjamin.barenblat.name/gitweb/?p=urweb-crypto-hash-openssl.git" class="">https://benjamin.barenblat.name/gitweb/?p=urweb-crypto-hash-openssl.git</a><br class="">-----BEGIN PGP SIGNATURE-----<br class=""><br class="">iQF8BAEBCgBmBQJVtV6WXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w<br class="">ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ5OThCQjVEMTlDOEE3QjE3OUUwREFCODY5<br class="">RTczMDE0OUVCOTFDNTNCAAoJEJ5zAUnrkcU7T3YH/3TDT5CzkcZDGW855a2HoVGz<br class="">zlMe2B64dfMMecNHitW09Pxl49bdUCsVXruH+0hVuapHLRFUMDkfgr0IZgG/aL6j<br class="">+HUZmgJhpbqZ4oi5M3pA64cwg/2qGFBYbLKd3HA0HIoEvFkyEgqk8glWdcdg77hw<br class="">33+AVguRXKBCgGuI7hnpj5KZXpSoH94lOjD7veKKcPfG7kTa2FoFATp2eDsupxAd<br class="">j7JkfehvTy3IyE2wictoBmojbMdfj6/9Cf4E73fL987GDeLqEjfkEHxi7DxJQZTk<br class="">eNZhoNFSG54OkJx++hNPHi4OGbKxLV+cakrY/H4lqvx/tDrkLlXYi57qmq949no=<br class="">=CWCh<br class="">-----END PGP SIGNATURE-----<br class=""></div></blockquote></div><br class=""></div></div></body></html>