Hi,
if I formerly compiled the Apache httpd server myself using an also
self-compiled OpenSSL installation for building "mod_ssl" as a shared
module I added only the configure option "--with-ssl" to specify the
according OpenSSL installation directory (if I remember correctly).
Now on a 64-bit Linux system it seems no longer to work. OpenSSL was
installed by using the configure option "--prefix" say into a directory
named /usr/local/sc (sc=self-compiled) so I added accordingly the httpd
configure option "--with-ssl=/usr/local/sc". But looking in the output of
the configure run and the configure script itself (below "Check whether
--with-ssl was given") I had the impression that the script checks only
for the condition
-f "${ap_openssl_base}/lib/pkgconfig/openssl.pc"
In my example case that would be result into a check for the existence of
the pkg-config file /usr/local/sc/lib/pkgconfig/openssl.pc but the
self-compiled openssl libs (1.0.2l) were installed on my 64-bit system
under /usr/local/sc/lib64 so the searched file exists instead under
/usr/local/sc/lib64/pkgconfig/openssl.pc.
So I changed just for testing in the configure script within the four
openssl relevant lines (line numbers 26048/26049 and 28901/28902)
the string /lib/pkgconfig into /lib64/pkgconfig and thereafter the
configure output now mentioned amongst others
adding "-I/usr/local/sc/include" to CPPFLAGS
adding "-L/usr/local/sc/lib64" to LDFLAGS
Ok, but that seems not sufficient since the following "ldd mod_ssl.so"
output extract
libssl.so.1.0.0 => /lib64/libssl.so.1.0.0
libcrypto.so.1.0.0 => /lib64/libcrypto.so.1.0.0
showed that nevertheless the "default" openssl libs (1.0.2j) of the
distribution seems to be used. Additionally after setting
"LogLevel ssl:info" in the httpd.conf and starting the httpd daemon
I found in the error_log file the corresponding lines
[ssl:info] [xxx] AH01876: mod_ssl/2.4.27 compiled against Server:
Apache/2.4.27, Library: OpenSSL/1.0.2l
[ssl:warn] [xxx] AH01882: Init: this version of mod_ssl was compiled
against a newer library (OpenSSL 1.0.2l 25 May 2017,
version currently loaded is OpenSSL 1.0.2j-fips 26 Sep 2016) -
may result in undefined or erroneous behavior
So I set before the configure run additionally the environment variable
LDFLAGS="-Wl,-rpath=/usr/local/sc/lib64"
and that seems to help: A "ldd mod_ssl.so" showed now the self-compiled
openssl libs in use
libssl.so.1.0.0 => /usr/local/sc/lib64/libssl.so.1.0.0
libcrypto.so.1.0.0 => /usr/local/sc/lib64/libcrypto.so.1.0.0
and the warning in the error_log also disappeared.
Alternatively I could probably add generally /usr/local/sc/lib64 into
/etc/ld.so.conf but to avoid incompatibility conflicts I don't want all
the other self-compiled libs in /usr/local/sc/lib64 used by default (maybe
I could put /usr/local/sc/lib64 as last entry).
Maybe on 64-bit systems a loop at least over "lib" and "lib64" should be
done in the according configure script checks.
Is that all correct or are there other mechanisms or better solutions
existent in order to handle the described problem?
Regards
Jens
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org
For additional commands, e-mail: users-h...@httpd.apache.org