Subject: Re: "Missing symbols" when compiling agains gtk2+...
To: Marc Recht <recht@NetBSD.org>
From: Frederick Bruckman <fredb@immanent.net>
List: tech-pkg
Date: 02/01/2004 12:48:29
On Sun, 1 Feb 2004, Marc Recht wrote:

> > The deal is, gtk2+ links against pkg libfontconfig.so.1, and many
> > other libraries as well. What happens is that, when the recursive
> > search starts with a library in "/usr/X11R6/lib" that needs
> > libfontconfig.so.1, it uses the DT_RPATH embedded in *that* library
> > to find the libfontconfig.so.1 in "/usr/X11R6/lib". Even if it pulls
> > in the libfontconfig.so.1 in "/usr/pkg/lib" later, the symbols in
> > the "/usr/X11R6/lib" one are first in the search path.
>
> Maybe slightly off-topic, but I guess that's one of the issues fixed with
> the patches [1] I propsed a few days ago. gkrellm2 builds and works just
> fine here.
>
> [1] http://mail-index.netbsd.org/tech-pkg/2004/01/27/0004.html

That's a lot of patches, and none of them seem to touch the pkgconfig
files. Are you certain fixing gkrellm isn't just dumb luck? (Maybe we
need those anyway for buildlink; I don't know.)

When you replace a shared library of the stock system, I think it's
never going to work correctly all of the time, unless you can ensure
that "-Wl,-rath-link,${LOCALBASE}/lib..." will be added to the link
command line. I'd like to correct my earlier statement: it's not
actually "pangoxft.pc" that needs the rpath-link, but "fontconfig.pc",
"xft.pc", and "xrender.pc"; "pangoxft" only needs "xft" to be added to
its "Requires" line.

The "Requires" lines are all a mess, by the way. Many of them have
multiple space separated dependencies, while they're supposed to be
comma separated.

Frederick