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

From: Mel Flynn <rflynn_at_acsalaska.net>
Date: Wed, 22 Feb 2012 00:22:50 +0100
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
Received on Tue Feb 21 2012 - 22:38:47 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:24 UTC