Why does adding /usr/lib32 to LD_LIBRARY_PATH break 64-bit
binaries?
Dag-Erling Smørgrav
des at des.no
Thu Oct 23 18:24:31 PDT 2008
"Alexander Sack" <pisymbol at gmail.com> writes:
> I have some weird behavior I'm trying to figure out and was wondering
> if someone can point me in the right direction. I'm running a FreeBSD
> 6.1-RELEASE-amd64 machine. If I add /usr/lib32 to my LD_LIBRARY_PATH
> it breaks all of my binaries on my 64-bit machine.
> [...]
> LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/bin:/usr/lib:/usr/lib32:/usr/lib64
I'm surprised you have /usr/bin in there...
> I would ASSUME that rtld would look at my LD_LIBRARY_PATH and use
> /usr/lib to find libraries, not /usr/lib32. Why does it insist on
> picking /usr/lib32 when "/bin/ls" is CLEARLY a 64-bit binary? This
> doesn't make complete sense to me just yet.
If you look at the rtld(1) man page, there are a number of environment
variables you can set to debug the loader. I'm not sure how helpful
they are, though.
> Someone I'm sure is going "don't do that" and I agree.
Well, yeah, but it should (at the very least) fail in a more graceful
manner.
DES
--
Dag-Erling Smørgrav - des at des.no
More information about the freebsd-questions
mailing list