Fix a gcc-8 warning -Wcast-function-type
[openssl.git] / NOTES.UNIX
1
2  NOTES FOR UNIX LIKE PLATFORMS
3  =============================
4
5  For Unix/POSIX runtime systems on Windows, please see NOTES.WIN.
6
7
8  Shared libraries and installation in non-standard locations
9  -----------------------------------------------------------
10
11  Binaries on Unix variants expect to find shared libraries in standard
12  locations, such as /usr/lib, /usr/local/lib and some other locations
13  configured in the system (for example /etc/ld.so.conf on some systems).
14  If the libraries are installed in non-standard locations, binaries
15  will not find them and therefore fail to run unless they get a bit of
16  help from a defined RPATH or RUNPATH.  This can be applied by adding
17  the appropriate linker flags to the configuration command, such as
18  this (/usr/local/ssl was the default location for OpenSSL installation
19  in versions before 1.1.0):
20
21     $ ./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl \
22         -Wl,-rpath,/usr/local/ssl/lib
23
24  Because the actual library location may vary further (for example on
25  multilib installations), there is a convenience variable in Makefile
26  that holds the exact installation directory and that can be used like
27  this:
28
29     $ ./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl \
30         -Wl,-rpath,'$(LIBRPATH)'
31
32  On modern systems using GNU ld.so, a better choice may be to use the
33  new dtags, like this:
34
35     $ ./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl \
36         -Wl,--enable-new-dtags,-rpath,'$(LIBRPATH)'
37
38  This sets DT_RUNPATH instead of DT_RPATH.  DT_RUNPATH is considered after
39  the environment variable LD_LIBRARY_PATH, while DT_RPATH is considered
40  before that environment variable (which means that the values in that
41  environment variable won't matter if the library is found in the
42  paths given by DT_RPATH).