rtld or lang/gcc cannot find libgcc_s.so.1

Mel Flynn rflynn at acsalaska.net
Tue Feb 21 23:38:47 UTC 2012


On 2/21/2012 23:32, Steve Kargl wrote:
> On Tue, Feb 21, 2012 at 05:00:53PM -0500, Diane Bruce wrote:
>> On Tue, Feb 21, 2012 at 10:37:15PM +0100, Dimitry Andric wrote:
>>> On 2012-02-21 20:42, Steve Kargl wrote:
>>> ...
>>>> Yes, /lib comes before /usr/local/lib/gcc46.  I suppose
>>>> that this is a heads up for gerald at . lang/gcc is used by
>>>> the ports collections to build a large number of other
>>>> ports, so others are likely to hit this issue.
>>
>> Does -rpath not help ?
> 
> I already mentioned that I can add '-rpath /usr/local/lib/gcc46'
> to my various projects.  I can also build with -static to avoid
> rtld.  One can also use LD_LIBRARY_PATH.  

Make sure it's your binary pulling in libgcc_s. I just went through a
few iterations of recompiling mplayer with different *FLAGS and each
time base gcc_s was pulled in. I then did an ldd -a `which mplayer` and
saw libschroedinger was the one actually pulling it in.

Recompiled libschroedinger with gcc46 by putting USE_GCC=46 in the
Makefile and sure enough:
% ldd `which mplayer`|grep gcc
        libgcc_s.so.1 => /usr/local/lib/gcc46/libgcc_s.so.1 (0x29625000)

In short, bsd.gcc.mk is doing the right thing, but dependencies may
screw things up.

-- 
Mel


More information about the freebsd-ports mailing list