[Cffi-devel] Cannot load cffi-libffi

Stelian Ionescu sionescu at cddr.org
Sun Nov 23 19:29:43 UTC 2014


On Sun, 2014-11-23 at 13:08 +0000, Luís Oliveira wrote:
> On Sun, Nov 23, 2014 at 12:27 AM, Stelian Ionescu <sionescu at cddr.org> wrote:
> > Most often than not, but I know of cases where the headers for the
> > current version of a library are put directly under /usr/include,
> > whereas the older versions are in subdirectories of /usr/include and
> > require pkg-config, and therefore if pkg-config is not used, the CFFI
> > code will be compiled against the wrong(newer) library. IIRC, this is
> > the case with BerkeleyDB and Postgres's libpq on some distributions.
> 
> OK, that makes sense. In this particular case, though, we're not
> specifying any version:
> 
>     #+linux
>     (pkg-flags "libffi")
> 
> How are versions specified in pkg-config and how do they relate with
> the major version in the .so file name? (I googled a little bit for
> examples but couldn't find any.)

There's no standard across libraries, only conventions for specific
libraries; e.g. my openSUSE has libpng-1.2
in /usr/lib64/pkgconfig/libpng12.pc and linbpng-1.6
in /usr/lib64/pkgconfig/libpng16.pc

Some libraries(like libpng) break API at every major release and the
pkg-config names contain the package version, others break API more
seldom and the pkg-config version is a slowly increasing serial number
unrelated to the release version; also the pkg-config name may or may
not contain dots and dashes, etc...

-- 
Stelian Ionescu a.k.a. fe[nl]ix
Quidquid latine dictum sit, altum videtur.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <https://mailman.common-lisp.net/pipermail/cffi-devel/attachments/20141123/0f0c0a4f/attachment.sig>


More information about the cffi-devel mailing list