tech-toolchain archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: travails of the pixman upgrade [Was: Is pango still broken? (vim-gtk2 won't build)]



    Date:        Sun, 19 Sep 2010 13:53:07 -0400
    From:        "Ian D. Leroux" <idleroux%fastmail.fm@localhost>
    Message-ID:  
<1284918787.29341.1395785141%webmail.messagingengine.com@localhost>

This explains what I am seeing as well...

  | On Sat, 18 Sep 2010 21:39 -0400, "Ian D. Leroux" 
<idleroux%fastmail.fm@localhost>
  | wrote:
  | > I don't either, but I'm now sure that the build is somehow finding
  | > the base (xsrc) pixman. If I move the base libpixman out of the
  | > way the build succeeds.
  | 
  | Which, come to think of it, is not altogether surprising: the flags used
  | in the failing configure test include -R/usr/X11R7/lib,
[Actually, I think, or what I see, is -L/usr/X11R7/lib and -Wl,R...].

Yes, though I don't see how configure would ever find the buildlink libs,
I see no references on the command line configure is running to anything that
looks like a buildlink directory, and I don't see anything in the buildlink
bin directory that could be transforming the args before the real cc gets
them.   On the other hand, it clearly is finding the .buildlink/lib/*.so
files, as it is the libcairo.so from in there that references symbols in the
new libpixman-1 (found in /usr/pkg/lib and linked into .buildlink/libs)
but which are not in the base system version (/usr/X11R7/lib), and which
fails to link with undefined sym errors on those symbols.

The args for /usr/pkg/lib (-L and -Wl,R) are both before the corresponding
args for /usr/X11R7/lib so any rational expectation would be that the
libpixman-1 in /usr/pkg/lib (or .buildlink/lib if something is transforming it)
ought to be the one that is found - but it clearly isn't.

Is there any chance that the transform might alter the order of the cc args?

What's more, nothing in /usr/X11R7/lib refers to libpixman that I can
find, so it isn't even that some library there is linked against the
X11R7 version of libpixman and that's how it is getting loaded.
The only references (in .so files) to libpixman I could locate were
from the 3 cairo related libraries, and they all (according to ldd anyway)
look for the /usr/pkg/lib version.

An ldd of all .so files in the .buildlink/lib directory also finds nothing
referring to /usr/X11R7/lib/libpixman*  - the 3 cairo libraries are all that
refer to pixman at all, and they all refer to /usr/pkg/lib/*.

  | What mechanism is supposed to select the latter over the former?
[That referred to the .buildlink/lib/*.so over X11R7/lib/*.so.]

Good question.   Maybe someone who understands the toolchain can explain
how a library gets selected when given to a cc (gcc) command line as -lfoo
and libfoo-*.so exists in two different directories, both of which are
specified in -L args (and -Wl,R args of course.) ??

(That question is why I have added tech-toolchain to this message,
anyone on the toolchain list who doesn't see pkgsrc-users will find
the rest of this thread there.)

kre



Home | Main Index | Thread Index | Old Index