Bug 48880 - error on make
error on make
Status: REOPENED
Product: Apache httpd-2
Classification: Unclassified
Component: mod_ssl
2.2.15
PC Linux
: P2 normal (vote)
: ---
Assigned To: Apache HTTPD Bugs Mailing List
:
Depends on:
Blocks:
  Show dependency tree
 
Reported: 2010-03-09 17:49 UTC by jamesd
Modified: 2011-11-20 07:49 UTC (History)
0 users



Attachments
config.log for 2.2.11 (66.19 KB, text/x-log)
2010-03-28 14:36 UTC, Abdoulaye Walsimou Gaye
Details
config.log for 2.2.15 (66.51 KB, text/x-log)
2010-03-28 14:37 UTC, Abdoulaye Walsimou Gaye
Details

Note You need to log in before you can comment on or make changes to this bug.
Description jamesd 2010-03-09 17:49:46 UTC
Am attempting to upgrade from 2.2.14 with openssl-0.9.8l to 2.2.15 with openssl-0.9.8m. The os is Red Har Enterprise Linux Server Release 5.4 Tikanga.
 I get an error running make. Here is the error:
make[1]: Entering directory `/root/Desktop/httpd-2.2.15'
gcc -pthread    -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE    -I/root/Desktop/httpd-2.2.15/srclib/pcre -I. -I/root/Desktop/httpd-2.2.15/os/unix -I/root/Desktop/httpd-2.2.15/server/mpm/prefork -I/root/Desktop/httpd-2.2.15/modules/http -I/root/Desktop/httpd-2.2.15/modules/filters -I/root/Desktop/httpd-2.2.15/modules/proxy -I/root/Desktop/httpd-2.2.15/include -I/root/Desktop/httpd-2.2.15/modules/generators -I/root/Desktop/httpd-2.2.15/modules/mappers -I/root/Desktop/httpd-2.2.15/modules/database -I/usr/include/apr-1 -I/root/Desktop/httpd-2.2.15/modules/proxy/../generators -I/usr/kerberos/include -I/root/Desktop/httpd-2.2.15/modules/ssl -I/root/Desktop/httpd-2.2.15/modules/dav/main  -c /root/Desktop/httpd-2.2.15/server/buildmark.c
/usr/lib64/apr-1/build/libtool --silent --mode=link gcc -pthread     -L/usr/kerberos/lib64   -o httpd  modules.lo buildmark.o -export-dynamic server/libmain.la modules/aaa/libmod_authn_file.la modules/aaa/libmod_authn_default.la modules/aaa/libmod_authz_host.la modules/aaa/libmod_authz_groupfile.la modules/aaa/libmod_authz_user.la modules/aaa/libmod_authz_default.la modules/aaa/libmod_auth_basic.la modules/aaa/libmod_auth_digest.la modules/filters/libmod_include.la modules/filters/libmod_filter.la modules/loggers/libmod_log_config.la modules/metadata/libmod_env.la modules/metadata/libmod_expires.la modules/metadata/libmod_setenvif.la modules/metadata/libmod_version.la modules/ssl/libmod_ssl.la modules/http/libmod_http.la modules/http/libmod_mime.la modules/dav/main/libmod_dav.la modules/generators/libmod_status.la modules/generators/libmod_autoindex.la modules/generators/libmod_asis.la modules/generators/libmod_cgi.la modules/dav/fs/libmod_dav_fs.la modules/mappers/libmod_negotiation.la modules/mappers/libmod_dir.la modules/mappers/libmod_actions.la modules/mappers/libmod_speling.la modules/mappers/libmod_userdir.la modules/mappers/libmod_alias.la modules/mappers/libmod_rewrite.la modules/mappers/libmod_so.la server/mpm/prefork/libprefork.la os/unix/libos.la -lm /root/Desktop/httpd-2.2.15/srclib/pcre/libpcre.la /usr/lib64/libaprutil-1.la -lldap -llber -ldb-4.3 -lexpat /usr/lib64/libapr-1.la -lpthread -ldl
modules/ssl/.libs/libmod_ssl.a(ssl_engine_kernel.o): In function `ssl_hook_ReadReq':
ssl_engine_kernel.c:(.text+0x1eb): undefined reference to `SSL_get_servername'
modules/ssl/.libs/libmod_ssl.a(ssl_engine_kernel.o): In function `ssl_hook_Fixup':
ssl_engine_kernel.c:(.text+0x1f83): undefined reference to `SSL_get_servername'
modules/ssl/.libs/libmod_ssl.a(ssl_engine_kernel.o): In function `ssl_callback_ServerNameIndication':
ssl_engine_kernel.c:(.text+0x39c8): undefined reference to `SSL_get_servername'
modules/ssl/.libs/libmod_ssl.a(ssl_engine_kernel.o): In function `ssl_find_vhost':
ssl_engine_kernel.c:(.text+0x3c42): undefined reference to `SSL_set_SSL_CTX'
modules/ssl/.libs/libmod_ssl.a(ssl_engine_vars.o): In function `ssl_var_lookup_ssl':
ssl_engine_vars.c:(.text+0x11bf): undefined reference to `SSL_get_servername'
collect2: ld returned 1 exit status
make[1]: *** [httpd] Error 1
make[1]: Leaving directory `/root/Desktop/httpd-2.2.15'
make: *** [all-recursive] Error 1
Comment 1 Jeff Trawick 2010-03-09 17:52:51 UTC
is it possible that you're compiling against include files from a newer OpenSSL than you're linking against?  Double check that aspect of the build.
Comment 2 jamesd 2010-03-09 18:24:57 UTC
(In reply to comment #1)
> is it possible that you're compiling against include files from a newer OpenSSL
> than you're linking against?  Double check that aspect of the build.

I am attempting to use the latest openssl-0.9.8m - I have installed that is a new location from 8l. I am able to recompile 2.2.14 using 8m, but get the same error using 2.2.15 - I installed 8m in an attempt to correct the error.
Here is my config. 

./configure --prefix=/etc/httpd2.2.15 --enable-ssl --with-ssl=/usr/localssl/openssl --with-sslport=443 --enable-rewrite --enable-speling --enable-auth-digest --enable-dav --enable-expires

I also ran red hat update software after encountering the error.
Comment 3 Joe Orton 2010-03-09 20:46:10 UTC
The failure is as Jeff suggests.

Also, you are linking against the system APR/APR-util libraries here.  This may bring in the system OpenSSL library via OpenLDAP, for example.

To get this to work I'd recommend doing:

  # yum remove {httpd,apr,apr-util,openssl}-devel

first, or at minimum passing --with-included-apr to httpd's configure script.  I've seen this type of failure because the system pkgconfig file can be picked up in preference to the OpenSSL pkgconfig file in the --with-ssl location.

(Alternatively, if you are merely waiting for the TLS secure reneg fix you could wait for the RHEL update to openssl providing this)
Comment 4 jamesd 2010-03-09 21:09:09 UTC
Thanks. That worked.
Removing the openssl-devel did the trick. 
I attempted --with-included-apr and that did not work by itself. I had to remove the Openssl-devel.
Comment 5 Abdoulaye Walsimou Gaye 2010-03-28 14:34:34 UTC
I am experimenting the same issue with FreeBSD.
with httpd-2.2.11, with the same FreeBSD environment it just links fine.
I am experimenting this issue with all versions after httpd-2.2.11, so I am still running 2.2.11.
I have openssl-0.9.8m installed.
See attachments for config.log's (don't know it helps)


All the time the same error message:
modules/ssl/.libs/libmod_ssl.a(ssl_engine_kernel.o)(.text+0x17): In function `ssl_callback_ServerNameIndication':
/usr/home/walsimou/install/dns.walsimou.com/apache/httpd-2.2.15/modules/ssl/ssl_engine_kernel.c:1980: undefined reference to `SSL_get_servername'
modules/ssl/.libs/libmod_ssl.a(ssl_engine_kernel.o)(.text+0x2b7): In function `ssl_find_vhost':
/usr/home/walsimou/install/dns.walsimou.com/apache/httpd-2.2.15/modules/ssl/ssl_engine_kernel.c:2063: undefined reference to `SSL_set_SSL_CTX'
modules/ssl/.libs/libmod_ssl.a(ssl_engine_kernel.o)(.text+0x1867): In function `ssl_hook_Fixup':
/usr/home/walsimou/install/dns.walsimou.com/apache/httpd-2.2.15/modules/ssl/ssl_engine_kernel.c:1139: undefined reference to `SSL_get_servername'
modules/ssl/.libs/libmod_ssl.a(ssl_engine_kernel.o)(.text+0x30a9): In function `ssl_hook_ReadReq':
/usr/home/walsimou/install/dns.walsimou.com/apache/httpd-2.2.15/modules/ssl/ssl_engine_kernel.c:120: undefined reference to `SSL_get_servername'
modules/ssl/.libs/libmod_ssl.a(ssl_engine_vars.o)(.text+0x17be): In function `ssl_var_lookup':
/usr/home/walsimou/install/dns.walsimou.com/apache/httpd-2.2.15/modules/ssl/ssl_engine_vars.c:325: undefined reference to `SSL_get_servername'
gmake[1]: *** [httpd] Error 1
gmake[1]: Leaving directory `/usr/home/walsimou/install/dns.walsimou.com/apache/httpd-2.2.15'
gmake: *** [all-recursive] Error 1
Comment 6 Abdoulaye Walsimou Gaye 2010-03-28 14:36:08 UTC
Created attachment 25200 [details]
config.log for 2.2.11

config.log for 2.2.11
Comment 7 Abdoulaye Walsimou Gaye 2010-03-28 14:37:05 UTC
Created attachment 25201 [details]
config.log for 2.2.15

config.log for 2.2.15
Comment 8 Bill Davidson 2010-05-11 16:57:36 UTC
I was getting the same error on Red Hat 5.4.0.3 64-bit, however the problem for me appears to be a problem with configure.  I used this option to configure (among others):

--with-ssl=/usr/myCo/apps/openssl/openssl-1.0.0

This resulted in this flag being sent to apr/libtool:

-L/usr/myCo/apps/openssl/openssl-1.0.0/lib

That directory does not exist.  That flag should have been:

-L/usr/myCo/apps/openssl/openssl-1.0.0/lib64

I worked around it like this:

# cd /usr/myCo/apps/openssl/openssl-1.0.0
# ln -s lib64 lib

Then I went and ran a make clean, configure and make again and it worked.

configure should know about the OpenSSL lib64 directory and use it when appropriate.
Comment 9 jks 2011-11-20 07:49:56 UTC
I was running into problems with my server.  Turned out I had an old version of openssl is /usr/local/ssl/lib which apache was finding, while I thought I was building against a newer version.  The configure script needs to know to look for lib64.