Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 11 Dec 2003 19:51:06 +0100
From:      Anton Berezin <tobez@FreeBSD.org>
To:        Tony Jones <tony@tonyjones.com>
Cc:        nick@tonkinresolutions.com
Subject:   Re: problem with perl 5.8 on 4.9-PRERELEASE
Message-ID:  <20031211185106.GA22770@heechee.tobez.org>
In-Reply-To: <20031211175428.0C4A25F6@zebedee.tonyjones.com>
References:  <20031211175428.0C4A25F6@zebedee.tonyjones.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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



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