[ofa-general] [PATCH] add pkgconfig support to ibverbs library

Jason Gunthorpe jgunthorpe at obsidianresearch.com
Mon Jul 20 17:06:48 PDT 2009


On Mon, Jul 20, 2009 at 04:12:34PM -0700, Steven Dake wrote:
> The librdmacm maintainer would have to decide if it is worth it for him
> to use pkgconfig functionality in his configure scripts.  For other
> downstream projects that link against librdmacm or libibverbs that
> follow the upstream adoption model of autotools (always use latest
> autotools, older versions may have bugs), it has many benefits.
> 
> Example:
> ./configure --includedir=/tmp/abc
> make install

> How does the downstream adopting application know where the include
> files are located in /tmp/abc?

I don't see how that would work even with pkg-config and the
PKG_CHECK_MODULES macro. The dumb configure misfeature is that all the
options like --includedir that chain off --prefix are the INSTALLATION
paths for the thing you are configuring, not the SEARCH paths needed
to build.

pkg-config's m4 seems to respect that and doesn't add those options to
the search path for .pc's

> Not all distros put the include files in the same location.  There
> are two alternatives for downstream projects.

No.. distros have to put this stuff in the system search path, under
the prefix we've picked so #include <infiniband/verbs.h> works ok, and
-libverbs works ok. Anything else is madness, I don't know any distro
that would do otherwise - it is contrary to the entire point of a
distro...

The only case to worry about is when someone installs this stuff
outside the system search path, ie your /tmp/abc/ or some-such, in
which case, I think you are just trading one obscure environment
option (CPPFLAGS/LDFLAGS) for another (PKG_CONFIG_LIBDIR).

> As a downstream adoptor, solving the "what are the flags" in a scalable
> easy to use fashion is the main advantage I get with pkgconfig with
> minimal upstream rdmacm and ibverbs disruption.

Some of the gnome software pkg-config was made for have interesting,
non-simple requirements that pkg-config handles - but I don't see
anything in the OFA packages that matches that stuff. These are all
ment to be system libraries that don't have special user compilation
requirements or flags when installed in the system search path. Any
distro that does otherwise is broken..

Anyhow, sounds like adding the .pc files to the builds isn't a big
deal and some minor cases do work better. But I guess I don't see a
benefit from using PKG_CHECK_MODULES, and you've outlined enough
reasons to avoid it..

BTW, libibcm, libibumad and libibmad should also all get .pc files for
consistency. :)

Jason



More information about the general mailing list