<p dir="ltr">You can look up both functions using foreign-symbol-pointer to decide which one to call. You'd usually call the right one using foreign-funcall-pointer, but perhaps you can defcfun both and call the right one based on the lookup.</p>
<p dir="ltr">defcfun-ing non-existent functions will yield runtime warnings on some implementations (notably SBCL) so perhaps you might want to implement both the foreign-funcall-pointer and defcfun approaches and conditionalise them accordingly. </p>
<p dir="ltr">HTH, <br>
Luís</p>
<br><div class="gmail_quote"><div dir="ltr">On Mon, May 29, 2017, 02:56 Anton Vodonosov <<a href="mailto:avodonosov@yandex.ru">avodonosov@yandex.ru</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>Hello,</div><div> </div><div>OpenSSL renamed function SSLeay to OpenSSL_version_num.</div><div>So, so depending on what version of library we work with we</div><div>need to call either SSLeay or OpenSSL_version_num.</div><div> </div><div>What is the best way to do it?</div><div> </div><div>The following is one approach:</div><div> </div><div><div>(or (ignore-errors</div><div>      (cffi:foreign-funcall "OpenSSL_version_num" :long))</div><div>    (ignore-errors</div><div>      (cffi:foreign-funcall "SSLeay" :long)))</div><div> </div><div> </div><div>but it won't work on Corman Lisp because it doesn't</div><div>support cffi:foreign-funcall.</div><div> </div><div>I would like to be fully portable. Is there a better way?</div><div> </div><div>Best regards,</div><div>- Anton</div></div>

</blockquote></div>