Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 5 Dec 2009 23:41:39 -0500
From:      Peter Beckman <beckman@angryox.com>
To:        Dmitry Pryanishnikov <lynx.ripe@gmail.com>
Cc:        Mark Linimon <linimon@lonesome.com>, Jim Pazarena <fports@paz.bz>, freebsd-ports@freebsd.org
Subject:   Re: sshd on FBSD 8.0-RC2/3
Message-ID:  <alpine.BSF.2.00.0912052339240.56665@nog.angryox.com>
In-Reply-To: <754a9c140912051727l50c037bcg92c44fe7cda087f6@mail.gmail.com>
References:  <4B17D7F3.7080005@gmail.com> <alpine.BSF.2.00.0912031148470.56665@nog.angryox.com> <754a9c140912030913t17c68142u1eec510d73411fef@mail.gmail.com> <alpine.BSF.2.00.0912031333550.56665@nog.angryox.com> <754a9c140912051727l50c037bcg92c44fe7cda087f6@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 6 Dec 2009, Dmitry Pryanishnikov wrote:

> 2009/12/3 Peter Beckman <beckman@angryox.com>:
>> On Thu, 3 Dec 2009, Dmitry Pryanishnikov wrote:
>>
>>>  Well, ldd's output _itself_ depends on the current environment and
>>> thus can't insure that correct libraries will be used by the
>>> application. Compare:
>>
>>  Well that's just confusing!  So what's the default?  If I have no
>>  LD_LIBRARY_PATH set, lighttpd uses /usr/local/lib as I would
>>  expect/hope/desire, but I have no understanding as to why.  If I set
>>  LD_LIBRARY_PATH to /usr/lib, it uses everything right EXCEPT
>>  /usr/lib/libssl.so.6.  What's the logic?  How does one do it right?
>
>  I haven't found definitive answer using RTFM. But luckily it's
> opensource, so RTFS gives the following search order for rtld-elf (as
> of RELENG_7):
>
> /usr/src/libexec/rtld-elf/rtld.c:
>
> /*
> * Find the library with the given name, and return its full pathname.
> * The returned string is dynamically allocated.  Generates an error
> * message and returns NULL if the library cannot be found.
> *
> * If the second argument is non-NULL, then it refers to an already-
> * loaded shared object, whose library search path will be searched.
> *
> * The search order is:
> *   LD_LIBRARY_PATH
> *   rpath in the referencing file
> *   ldconfig hints
> *   /lib:/usr/lib
> */
>
> Looks like 'libssl.so.6 => /usr/local/lib/libssl.so.6' is set via
> rpath - it overrides standard hints path
> '/lib:/usr/lib:/usr/lib/compat:/usr/local/lib...' but still can be
> overridden by LD_LIBRARY_PATH.

  You. Are. The. Man.  I really appreciate you taking the time to dig that
  up.  I hope it will help someone else in the future also getting confused
  with why one library is being used over another.  Thanks!!!

Beckman
---------------------------------------------------------------------------
Peter Beckman                                                  Internet Guy
beckman@angryox.com                                 http://www.angryox.com/
---------------------------------------------------------------------------



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