Re: [exim-dev] CentOS 5's old openssl and TLS support

Top Page
Delete this message
Reply to this message
Author: Todd Lyons
Date:  
To: Phil Pennock, exim-dev
Subject: Re: [exim-dev] CentOS 5's old openssl and TLS support
On Sun, May 20, 2012 at 4:32 PM, Phil Pennock <pdp@???> wrote:
> On 2012-05-20 at 08:02 -0700, Todd Lyons wrote:
>> Do we need to add some detection of openssl version or is this also going
>> to be a backwards incompatible change?
> There's some around registering the callback but not around defining the
> content, an oversight. I'll clean it up a little.


Is this possibly one more of those functions that needs a little detection
wrapping?

gcc -c -O -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I/usr/include
-I/usr/include -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
-fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -DSPF -DSRS
-fpie -DSPF -I../src -I../../src -I../src/srs/src -I../../src/srs/src
-I../../src/srs -std=gnu99 -I. -I/usr/kerberos/include tls.c
In file included from tls.c:97:
tls-openssl.c: In function 'tls_client_start':
tls-openssl.c:1261: warning: implicit declaration of function
'SSL_set_tlsext_host_name'
tls.c: At top level:
tls-openssl.c:49: warning: 'ctx_sni' defined but not used


That results in the link error below:

gcc -o exim -pie acl.o child.o crypt16.o daemon.o dbfn.o debug.o deliver.o
directory.o dns.o drtables.o enq.o exim.o expand.o filter.o filtertest.o
globals.o dkim.o header.o host.o ip.o log.o lss.o match.o moan.o os.o
parse.o queue.o rda.o readconf.o receive.o retry.o rewrite.o rfc2047.o
route.o search.o sieve.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 lookups/lf_quote.o
lookups/lf_check_file.o lookups/lf_sqlperform.o local_scan.o perl.o
malware.o mime.o regex.o spam.o spool_mbox.o demime.o bmi_spam.o spf.o
srs.o dcc.o version.o \
 routers/routers.a transports/transports.a lookups/lookups.a \
 auths/auths.a pdkim/pdkim.a \
 -lresolv -lnsl -lcrypt -lm    \
 -lpam -ldl -lwrap -ldb -lldap -llber -lsqlite3 -L/usr/lib64/mysql
-lmysqlclient -lpq -lsasl2 \
 -Wl,-E -Wl,-rpath,/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE
 /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/auto/DynaLoader/DynaLoader.a
-L/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE -lperl -lresolv
-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc -L/usr/kerberos/lib64 -lssl
-lcrypto -ldl -lz   -lpcre -lspf2 -lsrs_alt -L../src -lcompat
tls.o: In function `tls_client_start':
/home/tlyons/RPM/BUILD/exim-4.80_RC4/build-Linux-x86_64/tls-openssl.c:1261:
undefined reference to `SSL_set_tlsext_host_name'
collect2: ld returned 1 exit status
make[1]: *** [exim] Error 1
make[1]: Leaving directory
`/home/tlyons/RPM/BUILD/exim-4.80_RC4/build-Linux-x86_64'
make: *** [all] Error 2


...Todd
--
Always code as if the guy who ends up maintaining your code will be a
violent psychopath who knows where you live. -- Martin Golding