Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 3 Mar 2004 22:54:34 +0300
From:      Gleb Smirnoff <glebius@cell.sick.ru>
To:        Alfred Perlstein <alfred@freebsd.org>
Cc:        current@freebsd.org
Subject:   Re: fix for libpthread
Message-ID:  <20040303195434.GA36427@cell.sick.ru>
In-Reply-To: <20040303105149.GH56622@elvis.mu.org>
References:  <20040303061144.GE56622@elvis.mu.org> <404592F5.1060206@freebsd.org> <20040303104657.GG56622@elvis.mu.org> <20040303105149.GH56622@elvis.mu.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Mar 03, 2004 at 02:51:49AM -0800, Alfred Perlstein wrote:
A> I sort of see what you are saying:
A> ~ % ldd `which mplayer`
A> /usr/local/bin/mplayer:
A>         libpng.so.5 => /usr/local/lib/libpng.so.5 (0x2828e000)
A>         libz.so.2 => /lib/libz.so.2 (0x282b0000)
A>         libfreetype.so.9 => /usr/local/lib/libfreetype.so.9 (0x282bd000)
A>         libncurses.so.5 => /lib/libncurses.so.5 (0x28320000)
A>         libGL.so.1 => /usr/X11R6/lib/libGL.so.1 (0x2835c000)
A>         libXv.so.1 => /usr/X11R6/lib/libXv.so.1 (0x283c9000)
A>         libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x283ce000)
A>         libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x283dd000)
A>         libpthread.so.1 => /usr/lib/libpthread.so.1 (0x284a5000)
A>         libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x284c8000)
A>         libintl.so.6 => /usr/local/lib/libintl.so.6 (0x285b7000)
A>         libm.so.2 => /lib/libm.so.2 (0x285bf000)
A>         libc.so.5 => /lib/libc.so.5 (0x285d7000)
A>         libc_r.so.5 => /usr/lib/libc_r.so.5 (0x286a2000)
A> 
A> I see somehow it got linked against BOTH libpthread and libc_r,
A> there has to be a way to prevent that sort of bogus linkage
A> from happening. :(  Or at least make it work right when it
A> does happen...

"ldd -a" gives the answer. Important lines are marked.

/usr/local/bin/mplayer:
        libvorbis.so.3 => /usr/local/lib/libvorbis.so.3 (0x28421000)
        libogg.so.5 => /usr/local/lib/libogg.so.5 (0x28448000)
        libpng.so.5 => /usr/local/lib/libpng.so.5 (0x2844d000)
        libz.so.2 => /lib/libz.so.2 (0x28471000)
        libjpeg.so.9 => /usr/local/lib/libjpeg.so.9 (0x2847f000)
        libfreetype.so.9 => /usr/local/lib/libfreetype.so.9 (0x2849c000)
        libncurses.so.5 => /lib/libncurses.so.5 (0x28504000)
        libungif.so.5 => /usr/local/lib/libungif.so.5 (0x28543000)
        libfontconfig.so.1 => /usr/X11R6/lib/libfontconfig.so.1 (0x2854b000)
        libaa.so.1 => /usr/local/lib/libaa.so.1 (0x28572000)
        libGL.so.1 => /usr/X11R6/lib/libGL.so.1 (0x28589000)
        libXv.so.1 => /usr/X11R6/lib/libXv.so.1 (0x285f3000)
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x285f8000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x28606000)
        libSDL-1.1.so.5 => /usr/local/lib/libSDL-1.1.so.5 (0x286ca000)
        libpthread.so.1 => /usr/lib/libpthread.so.1 (0x28720000)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        libvgagl.so.1 => /usr/local/lib/libvgagl.so.1 (0x28744000)
        libvga.so.1 => /usr/local/lib/libvga.so.1 (0x28752000)
        libm.so.2 => /lib/libm.so.2 (0x287ac000)
        libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x287c5000)
        libintl.so.6 => /usr/local/lib/libintl.so.6 (0x288b3000)
        libc.so.5 => /lib/libc.so.5 (0x288bc000)
/usr/local/lib/libvorbis.so.3:
        libm.so.2 => /lib/libm.so.2 (0x287ac000)
        libogg.so.5 => /usr/local/lib/libogg.so.5 (0x28448000)
/usr/local/lib/libpng.so.5:
        libm.so.2 => /lib/libm.so.2 (0x287ac000)
        libz.so.2 => /lib/libz.so.2 (0x28471000)
/usr/local/lib/libfreetype.so.9:
        libz.so.2 => /lib/libz.so.2 (0x28471000)
/usr/local/lib/libungif.so.5:
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x28606000)
/usr/X11R6/lib/libfontconfig.so.1:
        libfreetype.so.9 => /usr/local/lib/libfreetype.so.9 (0x2849c000)
        libz.so.2 => /lib/libz.so.2 (0x28471000)
        libexpat.so.4 => /usr/local/lib/libexpat.so.4 (0x28995000)
/usr/local/lib/libaa.so.1:
        libncurses.so.5 => /lib/libncurses.so.5 (0x28504000)
        libm.so.2 => /lib/libm.so.2 (0x287ac000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x28606000)
/usr/X11R6/lib/libGL.so.1:
        libc_r.so.5 => /usr/lib/libc_r.so.5 (0x289b4000)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x285f8000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x28606000)
        libc.so.5 => /lib/libc.so.5 (0x288bc000)
/usr/X11R6/lib/libXv.so.1:
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x285f8000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x28606000)
/usr/X11R6/lib/libXext.so.6:
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x28606000)
/usr/local/lib/libSDL-1.1.so.5:
        libm.so.2 => /lib/libm.so.2 (0x287ac000)
        libvgl.so.3 => /usr/lib/libvgl.so.3 (0x289d8000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x28606000)
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x285f8000)
        libusbhid.so.1 => /usr/lib/libusbhid.so.1 (0x289e0000)
/usr/local/lib/libvga.so.1:
        libm.so.2 => /lib/libm.so.2 (0x287ac000)
/usr/local/lib/libintl.so.6:
        libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x287c5000)

XFree86 is guilty in my case. Anyone have tried to force libpthread
for it via libmap?

-- 
Totus tuus, Glebius.
GLEBIUS-RIPN GLEB-RIPE



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040303195434.GA36427>