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.
source to share
No one has answered this question yet
Check out similar questions: