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)]



> >   | 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.)
> 
> -R or -Wl,-R won't change any link-time thing.  those paths are placed
> into the RPATH embedded into the binary.  sunos4 ld -R also put the
> path into the library search path, but this was changed in sunos5 and
> in the binutils ELF.
> 
> only -L changes the link-time search path (sans some other exotic
> options that are more about using a cross compiler.)

ah, it has been pointed out that -rpath and -rpath-link affect the
finding of shlibs referenced by other shlibs.  so i went and had
a look in the sources, and it pretty much is a target specific thing,
for elf targets, depending on whether the USE_LIBPATH variable is set
to yes when building the linker emulations.

going on this code (from elf32.em), i think it does -rpath-link,
-rpath (including DT_NEEDED entries found), and the -L last.

> i'm not sure exactly understand the question though.  are there two
> shlibs being linked?  or just two with the same name in different
> subdirs of the link path?


.mrg.


Home | Main Index | Thread Index | Old Index