libstdc++.so.6 in base 9.2 system collides with libstdc++.so.6 in gcc47

John Marino freebsd.contact at marino.st
Mon Jan 20 11:13:44 UTC 2014


On 1/20/2014 09:29, Peter Jeremy wrote:
> On 2014-Jan-19 23:07:50 +0100, John Marino <freebsd.contact at marino.st> wrote:
>> On 1/19/2014 23:03, Yuri wrote:
>>> After the ports update my qbittorrent fails due to this collision:
>>> $ qbittorrent
>>> /usr/lib/libstdc++.so.6: version GLIBCXX_3.4.15 required by
>>> /usr/local/lib/libtorrent-rasterbar.so.7 not found
> 
> Yes, the non-base gcc's aren't built correctly.  There are some hacks
> in Mk/bsd.gcc.mk that partially work around the problems for some ports.
> 
>> The gcc47 should be built with specs that automatically insert a runpath
>> (-Wl,-rpath,) of /usr/local/gcc47/ so that every binary and library
>> built by it knows where to look.
> 
> See ports/142226 and ports/182468.


The approach taken by lang/gcc-aux mirrors your sentiment in the PRs.
The rpath is inserted by the compiler itself, automatically, for every
program and shared object produced.  The individual ports would not need
to set rpath themselves if they were built with lang/gcc-aux rather than
lang/gcc47.

It's built right into the link spec itself (gcc specs language).

John


More information about the freebsd-ports mailing list