Undefined link for TLSv1_1_client_method, although "nm" says otherwise

In my SSL client code, when I try to compile, I get an undefined reference error on use TLSv1_1_client_method()

. If I don't have a TLS method the link would be fine. When run ldd

in binary, I see:

% ldd client_sim_ssl
libssl.so.10 => /usr/lib64/libssl.so.10 
libcrypto.so.10 => /usr/lib64/libcrypto.so.10

Now if I check nm

for /usr/lib64/libssl.so.10

:

% nm /usr/lib64/libssl.so.10 | grep TLSv1_1_client_method
0000000000030d30 T TLSv1_1_client_method

Installed OpenSSL version: OpenSSL 1.0.1g 7 Apr 2014

Why is the link error undefined when the library it links to has a definition? What is a missing part?

EDIT 1:

I logged out of the system I was working on. In my experiment to upgrade the version - openSSL 1.0.1g I think I confused with libraries. SSH connection is having problems.: - (

ssh root@10.200.2.197 ssh_exchange_identification: connection closed by remote host

Maybe my original problem is related to this as well?

I'll update the post soon when I fix the SSH connection issue.

EDIT 2:

My system is RHEL 6.1. For SSH, the problem was to re-install the OpenSSL rpm from the CD as the version mismatch error from ssh

. With this installation, OpenSSL libraries were installed directly into /usr/lib/

and /usr/lib64/

. Now I don't see TLSv1_1_client_method()

with nm

.

I had to put in libraries with 1.0.1g in /usr/lib64/' and thus resulted in

nm` showing the TLS method. And it used other versions when compiling? Not sure.

+3


source to share





All Articles