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-current
mailing list