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>