lib not found and found at the same time ?
Konstantin Belousov
kostikbel at gmail.com
Thu Nov 14 19:30:44 UTC 2019
On Thu, Nov 14, 2019 at 08:46:13AM -0500, mike tancsa wrote:
>
> On 11/13/2019 5:25 PM, Konstantin Belousov wrote:
> > On Wed, Nov 13, 2019 at 04:48:40PM -0500, mike tancsa wrote:
> >> I was trying to upgrade (failed) and then re-install the
> >> samba410-4.10.10 port on a RELENG12 box. One of the Samba libs shows
> >> some output I dont understand on ldd
> >>
> >> ldd /usr/local/lib/nss_wins.so.1
> >> /usr/local/lib/nss_wins.so.1:
> >> libwbclient.so.0 => /usr/local/lib/samba4/libwbclient.so.0
> >> (0x801003000)
> >> libwinbind-client-samba4.so => not found (0)
> >> libreplace-samba4.so => not found (0)
> >> libcrypt.so.5 => /lib/libcrypt.so.5 (0x80066b000)
> >> libc.so.7 => /lib/libc.so.7 (0x80024a000)
> >> libwinbind-client-samba4.so =>
> >> /usr/local/lib/samba4/private/libwinbind-client-samba4.so (0x801213000)
> >> libreplace-samba4.so =>
> >> /usr/local/lib/samba4/private/libreplace-samba4.so (0x801417000)
> >>
> >>
> >> There are 2 libs it says it cannot find, but then a few lines below it
> >> says it found them ?
> > First instance (not found) is probably the direct dependency, which is
> > probably not found because nss_wins.so does not have rpath recorded.
> > Then, I guess, some other library also depends on libwinbind-client-samba4.so,
> > but this library has rpath.
> >
> > You can check this with readelf, look for DT_NEEDED and DT_RPATH*
> > dynamic entries.
>
> Thanks!
>
> readelf -d nss_wins.so.1
>
> Dynamic section at offset 0x1d20 contains 32 entries:
> Tag Type Name/Value
> 0x0000000000000001 NEEDED Shared library: [libwbclient.so.0]
> 0x0000000000000001 NEEDED Shared library:
> [libwinbind-client-samba4.so]
> 0x0000000000000001 NEEDED Shared library:
> [libreplace-samba4.so]
> 0x0000000000000001 NEEDED Shared library: [libcrypt.so.5]
> 0x0000000000000001 NEEDED Shared library: [libc.so.7]
> 0x000000000000000e SONAME Library soname: [nss_wins.so.1]
> 0x000000000000000f RPATH Library rpath: [/usr/local/lib]
> 0x000000000000001d RUNPATH Library runpath: [/usr/local/lib]
>
> Looking at other libs, they have the settings
>
> 0x000000000000000f RPATH Library rpath:
> [/usr/local/lib/samba4/private:/usr/local/lib]
> 0x000000000000001d RUNPATH Library runpath:
> [/usr/local/lib/samba4/private:/usr/local/lib]
>
> What is the best way to fix this ? It seems I can do a quick libmap
> entry and it seems to correct it
>
>
> [/usr/local/lib/nss_wins.so.1]
> libwinbind-client-samba4.so
> /usr/local/lib/samba4/private/libwinbind-client-samba4.so
> libreplace-samba4.so /usr/local/lib/samba4/private/libreplace-samba4.so
>
> ldd nss_wins.so.1
> nss_wins.so.1:
> libwbclient.so.0 => /usr/local/lib/samba4/libwbclient.so.0
> (0x801003000)
> libwinbind-client-samba4.so =>
> /usr/local/lib/samba4/private/libwinbind-client-samba4.so (0x801213000)
> libreplace-samba4.so =>
> /usr/local/lib/samba4/private/libreplace-samba4.so (0x801417000)
> libcrypt.so.5 => /lib/libcrypt.so.5 (0x80066b000)
> libc.so.7 => /lib/libc.so.7 (0x80024a000)
>
> This is something that needs to be fixed in the port at build time ?
Why is it a problem ? If the library is loaded from a binary that already
linked to the depended lib it would just work.
Otherwise yes, it is the ports' build issue, it must not be papered over
with libmap or LD_LIBRARY_PATH.
More information about the freebsd-stable
mailing list