Another quandery.....
I am attempting to build Exim 4.05 with shareable OpenSSL libraries and
have run into a few problems with executing Exim.
Previously I have built Exim using the static OpenSSL libraries -
however this time round the shareable libraries are installed for
another application and consequently I have been unable execute Exim.
I am building Exim 4.05 on a Solaris 8 system with gcc 2.95.3.....
Firstly the build went smoothly
.....
awk '{ print ($1+1) }' cnumber.h > cnumber.temp
rm -f cnumber.h; mv cnumber.temp cnumber.h
gcc -c -g -O -DMAILQUO version.c
rm -f exim
gcc -o exim -Xlinker -B -Xlinker local acl.o child.o daemon.o dbfn.o
debug.o deliver.o directory.o dns.o drtables.o enq.o exim.o expand.o
filter.o globals.o header.o host.o ip.o log.o match.o moan.o os.o
parse.o queue.o rda.o readconf.o receive.o retry.o rewrite.o route.o
search.o smtp_in.o smtp_out.o spool_in.o spool_out.o store.o string.o
tls.o tod.o transport.o tree.o verify.o local_scan.o version.o \
pcre/libpcre.a \
routers/routers.a transports/transports.a lookups/lookups.a \
auths/auths.a \
-lresolv -lsocket -lnsl -lkstat -lpam -ldl \
-ldb -lldap -lssl -lcrypto
>>> exim binary built
However on testing the newly built exim
$ ./exim -bV
ld.so.1: ./exim: fatal: libssl.so.0.9.6: open failed: No such file or
directory
Killed
The ldd command gave
$ ldd exim
libresolv.so.2 => /usr/lib/libresolv.so.2
libsocket.so.1 => /usr/lib/libsocket.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
libkstat.so.1 => /usr/lib/libkstat.so.1
libpam.so.1 => /usr/lib/libpam.so.1
libdl.so.1 => /usr/lib/libdl.so.1
libldap.so.4 => /usr/lib/libldap.so.4
libssl.so.0.9.6 => (file not found)
libcrypto.so.0.9.6 => (file not found)
libc.so.1 => /usr/lib/libc.so.1
libmp.so.2 => /usr/lib/libmp.so.2
/usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1
So I added /usr/local/lib to the LD_LIBRARY_PATH and the ldd command
gave
$ ldd exim
libresolv.so.2 => /usr/lib/libresolv.so.2
libsocket.so.1 => /usr/lib/libsocket.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
libkstat.so.1 => /usr/lib/libkstat.so.1
libpam.so.1 => /usr/lib/libpam.so.1
libdl.so.1 => /usr/lib/libdl.so.1
libldap.so.4 => /usr/lib/libldap.so.4
libssl.so.0.9.6 => /usr/local/lib/libssl.so.0.9.6
libcrypto.so.0.9.6 => /usr/local/lib/libcrypto.so.0.9.6
libc.so.1 => /usr/lib/libc.so.1
libmp.so.2 => /usr/lib/libmp.so.2
/usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1
So far so good; (I know the work round this problem is to use the -R
option for the ld command) however when I execute exim again I get the
following error
$ ./exim -bV
ld.so.1: ./exim: fatal: relocation error: file
/usr/local/lib/libssl.so.0.9.6: symbol main: referenced symbol not found
Killed
Any thoughts as to what this means and how I can get round this problem.
Thanks
Wm.
--
William Craven
ITServices Email: William.Craven@???
University of British Columbia Tel: +1-604-822-8955
Vancouver, BC, Canada V6T 1Z2 Fax: +1-604-822-5116