On 05/27/2015 11:33 AM, Mario Brandt wrote:
Hi Tom,

I tried on Debian 7 and 8 both x64

To see your configure options would help a lot.

The missing symbol is in the lib.

mario@sasuke:~$ whereis libssl.so
libssl: /usr/lib/libssl.a /usr/lib/libssl.so


mario@sasuke:~$ readelf -s /usr/lib/libssl.so | grep "SSL_CONF_CTX_free"
    531: 0000000000053700    34 FUNC    GLOBAL DEFAULT   11 SSL_CONF_CTX_free
    901: 0000000000053700    34 FUNC    GLOBAL DEFAULT   11 SSL_CONF_CTX_free


mario@sasuke:~$ readelf -s /usr/lib/libssl.so | grep "SSL_CONF_CTX_finish"
    532: 00000000000536f0     6 FUNC    GLOBAL DEFAULT   11 SSL_CONF_CTX_finish
    327: 00000000000536f0     6 FUNC    GLOBAL DEFAULT   11 SSL_CONF_CTX_finish


Cheers
Mario

That's interesting.  I believe those methods are new to 1.0.2
and AFAIK neither debian 7 nor 8 ship with openssl 1.0.2


https://packages.debian.org/search?searchon=sourcenames&keywords=openssl

wheezy (7) ships with 1.0.1e with patches
jessie (8) ships with 1.0.1k with patches

so for your /usr/lib/libssl.so to contain those functions means you either compiled your own openssl and installed them into /usr/lib or pulled in a testing/unstable package.

Either way, there was clearly a symbol mismatch. I build Apache 2.4 with openssl 1.0.2 (i also build this) and have no problems.

The key is, I make a self-contained structure, so you need be sure to use the proper LD_LIBRARY_PATH to allow, at runtime, things to be able to find the right openssl libraries.

For example, my shell script that builds pcre, openldap, openssl, and apache sets this:

LD_LIBRARY_PATH=$APACHE_ROOT/lib:$OPENSSL_ROOT/lib:$OPENLDAP_ROOT/lib:$PCRE_ROOT/lib
export LD_LIBRARY_PATH

And I build in the following order:
pcre
openssl
openldap
httpd

and have no problems.

Andy


Reply via email to