problem with perl 5.8 on 4.9-PRERELEASE

Anton Berezin tobez at FreeBSD.org
Thu Dec 11 10:51:10 PST 2003


On Thu, Dec 11, 2003 at 09:54:27AM -0800, Tony Jones wrote:

> LD_LIBRARY_PATH is in the environment in all cases (=/usr/lib).
> 
> Anyone got any ideas.  It's probably something obvious but it isn't dawning
> on me. Yes, I have rebooted post installing perl.  This is all 4.9 FreeBSD.

It is very very wrong to have LD_LIBRARY_PATH defined in the
environment, doubly so for such paths as /usr/lib, which is in ldconfig
hints _anyway_.

FreeBSD's behavior does not correspond to ld(1) manual page - in reality
LD_LIBRARY_PATH takes precedence to everything, including -rpath (see
the manpage for details).  The manpage should be fixed, obviously, but
the current FreeBSD behavior is nevertheless correct, for otherwise it
would not be possible to upgrade a software package when it's .so API
changes even slightly.  LD_LIBRARY_PATH is there just for this reason -
to knowlingly override whatever other means of locating shared libraries
there are.  It should not be used for setting system-wide defaults,
which is a job for ldconfig(8).

You might want to look at
http://www.freebsd.org/cgi/query-pr.cgi?pr=59186 (same situation as
yours) and http://www.freebsd.org/cgi/query-pr.cgi?pr=28191 (why
rtld-els behavior was changed).

Hope this helps,
\Anton.
-- 
Civilization is a fractal patchwork of old and new and dangerously new.
-- Vernor Vinge


More information about the freebsd-questions mailing list