On Mon, Nov 05, 2007, Markus Mayer wrote:

> I have the same problem, however it's clear to me that the problem lies in 
> the 
> build of openssl.  For what ever reason, parts are not fully built.  I too am 
> searching for the cause of this problem, however without success.  I have 
> build OpenSSL with the config:
> ./config --prefix=/usr/local/openssl-0.9.8g shared
> 
> I have adjusted the necessary include paths, CPPFLAGS, LDFLAGS, make symbolic 
> links from /usr/lib and /usr/include.  the configure scripts for Apache and 
> OpenLDAP find the header files and the libraries from OpenSSL ok, just that 
> the libraries are incomplete.  Additionally, I have seen that bio.h in the 
> include directory has the definitions for BIO_set_flags, however the 
> libraries that are built dont:
> # find /usr/local/openssl/ -type f -exec grep -l BIO_set_flags {} \;
> /usr/local/openssl/ssl/man/man3/BIO_f_base64.3
> /usr/local/openssl/include/openssl/bio.h
> 
> In building other packages, there are of course resulting errors.  For 
> example, in the build of OpenLDAP, I get the following error:
> 
> (cd .libs && rm -f libldap.la && ln -s ../libldap.la libldap.la)
> cc -g -I../../include        -I../../include   -I/opt/sfw/include 
> -I/usr/sfw/include   -I/opt/sfw/include -I/usr/sfw/include  -c -o 
> apitest.o apitest.c
> /bin/sh ../..//libtool --mode=link 
> cc -static -g  -L/opt/sfw/lib -L/usr/sfw/lib -L/usr/local/openssl/lib 
> -R/opt/sfw/lib -R/usr/sfw/lib -R/usr/local/openssl/lib   -o 
> apitest apitest.o 
> libldap.la ../../libraries/liblber/liblber.la 
> ../../libraries/liblutil/liblutil.a -lsasl  -lssl -lcrypto   -lresolv -lgen 
> -lnsl -lsocket
> cc -g -o apitest 
> apitest.o  -L/opt/sfw/lib -L/usr/sfw/lib -L/usr/local/openssl/lib 
> ./.libs/libldap.a 
> /home/Build/System/OpenLDAP/openldap-2.3.38/libraries/liblber/.libs/liblber.a 
> ../../libraries/liblber/.libs/liblber.a ../../libraries/liblutil/liblutil.a 
> -lsasl -lssl -lcrypto -lresolv -lgen -lnsl -lsocket -R/opt/sfw/lib 
> -R/usr/sfw/lib -R/usr/local/openssl/lib
> Undefined                       first referenced
>  symbol                             in file
> BIO_set_flags                       ./.libs/libldap.a(tls.o)
> BIO_clear_flags                     ./.libs/libldap.a(tls.o)
> SSL_CTX_set_info_callback           ./.libs/libldap.a(tls.o)
> ld: fatal: Symbol referencing errors. No output written to apitest
> make[2]: *** [apitest] Error 1
> make[2]: Leaving directory 
> `/home/Build/System/OpenLDAP/openldap-2.3.38/libraries/libldap'
> make[1]: *** [all-common] Error 1
> make[1]: Leaving directory 
> `/home/Build/System/OpenLDAP/openldap-2.3.38/libraries'
> make: *** [all-common] Error 1
> 
> 
> and in apache, a similar error which further shows that the problem is with 
> the build of OpenSSL:
> Undefined                       first referenced
>  symbol                             in file
> BIO_set_flags                       
> modules/ssl/.libs/mod_ssl.a(ssl_engine_io.o)
> BIO_set_callback                    
> modules/ssl/.libs/mod_ssl.a(ssl_engine_io.o)
> BIO_clear_flags                     
> modules/ssl/.libs/mod_ssl.a(ssl_engine_io.o)
> SSL_CTX_sess_set_remove_cb          
> modules/ssl/.libs/mod_ssl.a(ssl_engine_init.o)
> SSL_CTX_set_client_cert_cb          
> modules/ssl/.libs/mod_ssl.a(ssl_engine_init.o)
> SSL_CTX_sess_set_get_cb             
> modules/ssl/.libs/mod_ssl.a(ssl_engine_init.o)
> SSL_CTX_sess_set_new_cb             
> modules/ssl/.libs/mod_ssl.a(ssl_engine_init.o)
> BIO_set_callback_arg                
> modules/ssl/.libs/mod_ssl.a(ssl_engine_io.o)
> BIO_get_callback_arg                
> modules/ssl/.libs/mod_ssl.a(ssl_engine_io.o)
> X509_STORE_CTX_set_depth            
> modules/ssl/.libs/mod_ssl.a(ssl_engine_kernel.o)
> SSL_CTX_set_info_callback           
> modules/ssl/.libs/mod_ssl.a(ssl_engine_init.o)
> ld: fatal: Symbol referencing errors. No output written to .libs/httpd
> make[1]: *** [httpd] Error 1
> make[1]: Leaving directory `/home/Build/Web/WWW/Apache/httpd-2.0.61'
> 
> 
> I am using Sun's Studio 12 compiler suite.  A basic compile of apache or 
> ldap, 
> both withoug ssl, work fine.  The build and install of OpenSSL seems to go 
> through fine.
> 
> As I am now left scratching my head with no apparent solution, I also ask for 
> help in solving this problem.  How can I get OpenSSL to compile with all the 
> necessary components in there?
> 

That looks like the application isn't being linked with the correct version of
OpenSSL. Those undefined functions were macros in previous versions of OpenSSL
but became real functions later.

So if you compile against new headers you don't get the macros but if you link
against and older library you don't get the functions.

Steve.
--
Dr Stephen N. Henson. Email, S/MIME and PGP keys: see homepage
OpenSSL project core developer and freelance consultant.
Funding needed! Details on homepage.
Homepage: http://www.drh-consultancy.demon.co.uk
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to