[openssl-dev] [Bug, maybe] [master] bin/* no longer find their libraries if installed in non-default locations

Steffen Nurpmeso steffen at sdaoden.eu
Wed Mar 1 22:17:03 UTC 2017


Hello,

Richard Levitte <levitte at openssl.org> wrote:
 |In message <20170301165032.8jhWg%steffen at sdaoden.eu> on Wed, 01 Mar \
 |2017 17:50:32 +0100, Steffen Nurpmeso <steffen at sdaoden.eu> said:
 |
 |steffen> "Salz, Rich" <rsalz at akamai.com> wrote:
 |steffen>  |> This is new behaviour, until now the installation was \
 |always self-contain\
 |steffen>  |> ed
 |steffen>  |> when configured via
 |steffen>  |> 
 |steffen>  |>   ./config --prefix=$(MYPREFIX) zlib-dynamic no-hw shared
 |steffen>  |
 |steffen>  |Did you install the libraries in a standard place?
 |steffen>  |
 |steffen>  |> I think this should at least be noted in CHANGES or so.
 |steffen>  |
 |steffen>  |I don't think so.  I think the libs weren't installed.
 |steffen> 
 |steffen> Yes, also in my opinion the old behaviour was much, much better.
 |
 |I very much disagree.  We have had bug reports as well as cases of our
 |own because a new compilation that you want to test picked up
 |previously installed versions of the libraries (usually an older
 |version).  The reason for doing so previously was because we installed
 |the libraries in non-standard locations by default.

That unpuzzles me a little bit -- this behaviour did exist.  Good.

 |Since OpenSSL 1.1.0 and on is installing in standard locations by
 |default, we don't have to use these mechanisms for a default build.
 |With that, we realised that choosing to use DT_RPATH, DT_RUNPATH (they
 |are different) or whatever isn't really our decision to make, but the
 |decision of the packager or the individual user, so we've handed the
 |decision to you. 
 |
 |For the GNU toolchain, I'd recommend configuring with something like
 |this (from memory, I might be fuzzy in the details):
 |
 |    -Wl,--enable-new-dtags -rpath '$(LIBRPATH)'
 |
 |LIBRPATH is a convenience Makefile variable that gets correctly set to
 |the configured shared library installation directory, meant for
 |exactly this sort of situation.

The latter (DT_RUNPATH) does not overwrite $LD_LIBRARY_PATH, yes,
when i reported the dynamic link test failures a while back i have
seen that and also added support for this new linker flag to my
software.  It is i think off-topic that now new environment
variables come up that makes me wonder why the LD_PRELOAD ..
DT_RPATH .. LD_LIBRARY_PATH chain has ever been declared
deprecated.

LIBRPATH i did not know about yet, thanks for the pointer, i will
read about it.
Yes, i mean, i just didn't know this, it is not mentioned anywhere
(i think that would well be worth in entry in INSTALL), and
i really would have sworn that it worked in the past.

Thank you, and
Ciao!

--steffen


More information about the openssl-dev mailing list