On Tue July 19 2011, brandon...@aol.com wrote:
> 
> Okay, it is acting like my /usr/lib/libssl.a is of no value.  First, just for 
> comparison, attempting to link with no reference to libssl at all:
> 
> [root@linux Release]# g++  -o"<My exe name>"  <my object file list> 
> /usr/lib/libcrypto.a /usr/lib/libldap.a /usr/lib/libxml2.a /usr/lib/liblber.a 
> -lz -ldl -lm -lsasl2 2>&1
> /usr/lib/libldap.a(os-ip.o): In function `ldap_int_poll':
> (.text+0x9c4): warning: `sys_errlist' is deprecated; use `strerror' or 
> `strerror_r' instead
> /usr/lib/libldap.a(os-ip.o): In function `ldap_int_poll':
> (.text+0x9ba): warning: `sys_nerr' is deprecated; use `strerror' or 
> `strerror_r' instead
> ./LinuxAgent.o: In function `Agent::startCommandProcessor()':
> LinuxAgent.cpp:(.text+0x438): undefined reference to `pthread_create'
> ./LinuxAgent.o: In function `Agent::Run()':
> LinuxAgent.cpp:(.text+0x47b7): undefined reference to `pthread_create'
> ./Redirect.o: In function `Redirect::RunRedirect(char*, int, int, char*, int, 
> int)':
> Redirect.cpp:(.text+0x19b): undefined reference to `pthread_create'
> ./VncRedirector.o: In function `Redir::RunVNC(char*, int, int)':
> VncRedirector.cpp:(.text+0x19b): undefined reference to `pthread_create'
> /usr/lib/libldap.a(tls_o.o): In function `tlso_sb_close':
> (.text+0xa6): undefined reference to `SSL_shutdown'
> /usr/lib/libldap.a(tls_o.o): In function `tlso_session_upflags':
> (.text+0x13b): undefined reference to `SSL_get_error'
> /usr/lib/libldap.a(tls_o.o): In function `tlso_sb_write':
> (.text+0x1cc): undefined reference to `SSL_write'
> /usr/lib/libldap.a(tls_o.o): In function `tlso_sb_write':
> (.text+0x1df): undefined reference to `SSL_get_error'
> /usr/lib/libldap.a(tls_o.o): In function `tlso_sb_read':
> (.text+0x2cc): undefined reference to `SSL_read'
> /usr/lib/libldap.a(tls_o.o): In function `tlso_sb_read':
> (.text+0x2df): undefined reference to `SSL_get_error'
> /usr/lib/libldap.a(tls_o.o): In function `tlso_sb_ctrl':
> (.text+0x409): undefined reference to `SSL_pending'
> ...<more errors>...
> /usr/lib/libldap.a(gssapi.o): In function `ldap_gssapi_bind_s':
> (.text+0x16e7): undefined reference to `gss_release_buffer'
> /usr/lib/libldap.a(gssapi.o): In function `ldap_gssapi_bind_s':
> (.text+0x177f): undefined reference to `gss_init_sec_context'
> /usr/lib/libldap.a(gssapi.o): In function `ldap_gssapi_bind_s':
> (.text+0x190d): undefined reference to `gss_release_buffer'
> collect2: ld returned 1 exit status
> 
> Now, including /usr/lib/libssl.a at the end of the list of object file:
> 
> [root@linux Release]# g++  -o"<My exe name>" <my object file list>   
> /usr/lib/libcrypto.a /usr/lib/libldap.a /usr/lib/libxml2.a /usr/lib/liblber.a 
> /usr/lib/libssl.a -lz -ldl -lm -lsasl2 2>&1
> /usr/lib/libldap.a(os-ip.o): In function `ldap_int_poll':
> (.text+0x9c4): warning: `sys_errlist' is deprecated; use `strerror' or 
> `strerror_r' instead
> /usr/lib/libldap.a(os-ip.o): In function `ldap_int_poll':
> (.text+0x9ba): warning: `sys_nerr' is deprecated; use `strerror' or 
> `strerror_r' instead
> ./LinuxAgent.o: In function `Agent::startCommandProcessor()':
> LinuxAgent.cpp:(.text+0x438): undefined reference to `pthread_create'
> ./LinuxAgent.o: In function `Agent::Run()':
> LinuxAgent.cpp:(.text+0x47b7): undefined reference to `pthread_create'
> ./Redirect.o: In function `Redirect::RunRedirect(char*, int, int, char*, int, 
> int)':
> Redirect.cpp:(.text+0x19b): undefined reference to `pthread_create'
> ./VncRedirector.o: In function `Redir::RunVNC(char*, int, int)':
> VncRedirector.cpp:(.text+0x19b): undefined reference to `pthread_create'
> /usr/lib/libldap.a(tls_o.o): In function `tlso_session_chkhost':
> (.text+0x8a6): undefined reference to `X509_get_ext_by_NID'
> /usr/lib/libldap.a(tls_o.o): In function `tlso_session_chkhost':
> (.text+0x8bd): undefined reference to `X509_get_ext'
> /usr/lib/libldap.a(tls_o.o): In function `tlso_session_chkhost':
> (.text+0x8c5): undefined reference to `X509V3_EXT_d2i'
> /usr/lib/libldap.a(tls_o.o): In function `tlso_session_chkhost':
> (.text+0x9be): undefined reference to `GENERAL_NAMES_free'
> /usr/lib/libldap.a(tls_o.o): In function `tlso_session_chkhost':
> (.text+0x9d7): undefined reference to `GENERAL_NAMES_free'
> /usr/lib/libldap.a(tls_o.o): In function `tlso_session_chkhost':
> (.text+0x9f5): undefined reference to `X509_get_subject_name'
> /usr/lib/libldap.a(tls_o.o): In function `tlso_session_chkhost':
> (.text+0xa00): undefined reference to `X509_NAME_entry_count'
> ...<more errors>...
> /usr/lib/libssl.a(s3_both.o): In function `ssl_cert_type':
> (.text+0x1e5): undefined reference to `EVP_PKEY_free'
> /usr/lib/libssl.a(s3_both.o): In function `ssl3_add_cert_to_buf':
> (.text+0x61e): undefined reference to `i2d_X509'
> /usr/lib/libssl.a(s3_both.o): In function `ssl3_add_cert_to_buf':
> (.text+0x677): undefined reference to `i2d_X509'
> /usr/lib/libssl.a(s3_both.o): In function `ssl3_output_cert_chain':
> (.text+0x854): undefined reference to `X509_STORE_CTX_init'
> /usr/lib/libssl.a(s3_both.o): In function `ssl3_output_cert_chain':
> (.text+0x86c): undefined reference to `X509_verify_cert'
> /usr/lib/libssl.a(s3_both.o): In function `ssl3_output_cert_chain':
> (.text+0x8c9): undefined reference to `X509_STORE_CTX_cleanup'
> /usr/lib/libssl.a(s3_both.o): In function `ssl3_output_cert_chain':
> (.text+0x972): undefined reference to `X509_STORE_CTX_cleanup'
> collect2: ld returned 1 exit status
> 
> Now, including /usr/lib/libssl.a at the beginning of the list of object file:
> 
> [root@linux Release]# g++  -o"<My exe name>" <my object file list>  
> /usr/lib/libssl.a /usr/lib/libcrypto.a /usr/lib/libldap.a /usr/lib/libxml2.a 
> /usr/lib/liblber.a -lz -ldl -lm -lsasl2 2>&1
> /usr/lib/libldap.a(os-ip.o): In function `ldap_int_poll':
> (.text+0x9c4): warning: `sys_errlist' is deprecated; use `strerror' or 
> `strerror_r' instead
> /usr/lib/libldap.a(os-ip.o): In function `ldap_int_poll':
> (.text+0x9ba): warning: `sys_nerr' is deprecated; use `strerror' or 
> `strerror_r' instead
> ./LinuxAgent.o: In function `Agent::startCommandProcessor()':
> LinuxAgent.cpp:(.text+0x438): undefined reference to `pthread_create'
>

I do not see where you mention the pthread library.
See:
http://www.yolinux.com/TUTORIALS/LinuxTutorialPosixThreads.html
For examples.  Get those to build and you should be able to find your problem.

None of this thread is appropriate for the OpenSSL mailing list.

Mike
> ./LinuxAgent.o: In function `Agent::Run()':
> LinuxAgent.cpp:(.text+0x47b7): undefined reference to `pthread_create'
> ./Redirect.o: In function `Redirect::RunRedirect(char*, int, int, char*, int, 
> int)':
> Redirect.cpp:(.text+0x19b): undefined reference to `pthread_create'
> ./VncRedirector.o: In function `Redir::RunVNC(char*, int, int)':
> VncRedirector.cpp:(.text+0x19b): undefined reference to `pthread_create'
> /usr/lib/libldap.a(tls_o.o): In function `tlso_sb_close':
> (.text+0xa6): undefined reference to `SSL_shutdown'
> /usr/lib/libldap.a(tls_o.o): In function `tlso_session_upflags':
> (.text+0x13b): undefined reference to `SSL_get_error'
> /usr/lib/libldap.a(tls_o.o): In function `tlso_sb_write':
> (.text+0x1cc): undefined reference to `SSL_write'
> /usr/lib/libldap.a(tls_o.o): In function `tlso_sb_write':
> (.text+0x1df): undefined reference to `SSL_get_error'
> /usr/lib/libldap.a(tls_o.o): In function `tlso_sb_read':
> (.text+0x2cc): undefined reference to `SSL_read'
> /usr/lib/libldap.a(tls_o.o): In function `tlso_sb_read':
> (.text+0x2df): undefined reference to `SSL_get_error'
> /usr/lib/libldap.a(tls_o.o): In function `tlso_sb_ctrl':
> (.text+0x409): undefined reference to `SSL_pending'
> /usr/lib/libldap.a(tls_o.o): In function `tlso_sb_remove':
> (.text+0x4ab): undefined reference to `SSL_free'
> ...<more errors>...
> /usr/lib/libldap.a(gssapi.o): In function `ldap_gssapi_bind_s':
> (.text+0x1178): undefined reference to `gss_release_name'
> /usr/lib/libldap.a(gssapi.o): In function `ldap_gssapi_bind_s':
> (.text+0x1474): undefined reference to `gss_import_name'
> /usr/lib/libldap.a(gssapi.o): In function `ldap_gssapi_bind_s':
> (.text+0x149e): undefined reference to `gss_indicate_mechs'
> /usr/lib/libldap.a(gssapi.o): In function `ldap_gssapi_bind_s':
> (.text+0x1582): undefined reference to `gss_test_oid_set_member'
> /usr/lib/libldap.a(gssapi.o): In function `ldap_gssapi_bind_s':
> (.text+0x1594): undefined reference to `gss_release_oid_set'
> /usr/lib/libldap.a(gssapi.o): In function `ldap_gssapi_bind_s':
> (.text+0x1661): undefined reference to `gss_init_sec_context'
> /usr/lib/libldap.a(gssapi.o): In function `ldap_gssapi_bind_s':
> (.text+0x16e7): undefined reference to `gss_release_buffer'
> /usr/lib/libldap.a(gssapi.o): In function `ldap_gssapi_bind_s':
> (.text+0x177f): undefined reference to `gss_init_sec_context'
> /usr/lib/libldap.a(gssapi.o): In function `ldap_gssapi_bind_s':
> (.text+0x190d): undefined reference to `gss_release_buffer'
> collect2: ld returned 1 exit status
> 
> Now, giving up and allowing it to choose the so version, suddenly everything 
> works.  There are two warnings, but no errors.
> 
> [root@linux Release]# g++  -o"<My exe name>" <my object file list>  
> /usr/lib/libcrypto.a /usr/lib/libldap.a /usr/lib/libxml2.a /usr/lib/liblber.a 
> -lz -ldl -lm -lssl -lsasl2 2>&1
> /usr/lib/libldap.a(os-ip.o): In function `ldap_int_poll':
> (.text+0x9c4): warning: `sys_errlist' is deprecated; use `strerror' or 
> `strerror_r' instead
> /usr/lib/libldap.a(os-ip.o): In function `ldap_int_poll':
> (.text+0x9ba): warning: `sys_nerr' is deprecated; use `strerror' or 
> `strerror_r' instead
> [root@linux Release]# 
> 
> 
> Anyone have an idea why the static version of the library doesn't seem to 
> work?
> 
> Thanks.
> 
> 
> Brandon
> 
> 
> -----Original Message-----
> From: Michael S. Zick <open...@morethan.org>
> To: openssl-users <openssl-users@openssl.org>
> Sent: Tue, Jul 19, 2011 8:27 am
> Subject: Re: Trying to Link Statically to Libcrypto
> 
> 
> On Tue July 19 2011, Albrecht Schlosser wrote:
>    On 19.07.2011 13:30, Michael S. Zick wrote:
>  > But a quicker answer to just a symbol or a few: use the toolchain.
>  
>  ...
>  
>  > Now enter:
>  > nm /usr/lib/libldap.a
>  > be rewarded with a listing 1,830 lines long of the symbols defined
>  > and the external symbols referenced.
>  >
>  > Of course, entering:
>  > nm --help
>  > will give you the command options, and
>  > man nm
>  > will give you all of the sicken details (the manual "man" command is
>  > your friend on any *nix type system).
>  >
>  > But for those readers interested in the "instant answer" -
>  >
>  
>  I'm afraid you got it the wrong way around:
>  
> You are correct, my bad.
> The linker makes an internal list of the __required__ symbols and
> hen (actually, at the same time) tries to satisfy that list by
> he symbols provided in the __following listed__ libraries.
> I wrote those directions backwards - a major brain fart on my part.
> Very glad you spotted my error.
> ike
> > > The symbols this library provides (meaning this library is __before__
>  
>  This should read "__after__" ...
>  
>  > the users of these symbols in the link command),
>  > Enter:
>  > nm --defined /usr/lib/libldap.a
>  >
>  > The symbols this library requires (meaning this library is __after__
>  
>  ... and this should read "__before__" .
>  
>  > the providers of these symbols in the link command),
>  > Enter:
>  > nm --undefined-only /usr/lib/libldap.a
> 
> _____________________________________________________________________
> penSSL Project                                 http://www.openssl.org
> ser Support Mailing List                    openssl-users@openssl.org
> utomated List Manager                           majord...@openssl.org
> 
> 


______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to