Why does adding /usr/lib32 to LD_LIBRARY_PATH break 64-bit binaries?

Alexander Kabaev kabaev at gmail.com
Fri Oct 24 02:41:42 UTC 2008


On Thu, 23 Oct 2008 21:48:47 -0400
"Alexander Sack" <pisymbol at gmail.com> wrote:

> Thanks, comments most appreciated.  Damn, I was looking for someone to
> go "a ha, you can't do this because...."  Alright, let me see why rtld
> on 6.1-amd64 is picking up /usr/lib32 stuff for a native 64-bit binary
> via debugging techniques. This seems very very wrong to me.  I mean if
> /usr/lib is in my LD_LIBRARY_PATH and it comes before /usr/lib the
> /usr/lib32 *should* be innocuous, right?
> 
> Feel free to use that last statement on my epitaph!  :D
> 
LD_LIBRARY_PATH is for native 64bit rtld. If you want a specific path
added for use by 32-bit ld-elf.so.1 only, use LD_32_LIBRARY_PATH.

Said that, your problem is likely caused by the fact that there is
no /lib32, only /usr/lib32. So if 64-bit library lives in /lib,
your LD_LIBRARY_PATH will cause loader to find its 32-bit equivalent
in /usr/lib32 first.

Try LD_LIBRARY_PATH=/lib:/usr/lib:/usr/lib32:/usr/lib64 for better
results.
-- 
Alexander Kabaev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20081024/dafd6909/signature.pgp


More information about the freebsd-hackers mailing list