Sorry for my bad english. I use Ubuntu 8.04.1. There is preinstalled package of openssl version 0.9.8g in system. It is installed in /usr. I tried to install openssl version 0.9.8e. There are steps i did: 1) download library from openssl.org; 2) extract archive; 3) ./config shared --openssldir=/usr/local/openssl-0.9.8e 4) make all test install. The installation seemed to be successfull. After this I tried to compile OpenSSH with openssl 0.9.8e, but script ./configure --with-ssl-dir=/usr/local/openssl-0.9.8e exited with error: checking OpenSSL header version... 90805f (OpenSSL 0.9.8e 23 Feb 2007) checking OpenSSL library version... 90807f (OpenSSL 0.9.8g 19 Oct 2007) checking whether OpenSSL's headers match the library... no configure: error: Your OpenSSL headers do not match your library. Check config.log for details. If you are sure your installation is consistent, you can disable the check by running "./configure --without-openssl-header-check". Also see contrib/findssl.sh for help identifying header/library mismatches.
Then I tried to compile two simple programs to check header version and library version. header_version.c #include <stdio.h> #include <string.h> #include <openssl/opensslv.h> int main(void) { printf( "%x (%s)\n", OPENSSL_VERSION_NUMBER, OPENSSL_VERSION_TEXT ); return 0; } I compiled it with this command: gcc -I/usr/local/openssl-0.9.8e/include -L/usr/local/openssl-0.9.8e/lib -o header_version header_version.c Compilation was successfull. Output of the program: 90805f (OpenSSL 0.9.8e 23 Feb 2007) I think that it is correct. library_version.c #include <stdio.h> #include <string.h> #include <openssl/opensslv.h> #include <openssl/crypto.h> int main(void) { printf( "%x (%s)\n", SSLeay(), SSLeay_version( SSLEAY_VERSION ) ); return 0; } I compiled it with this command: gcc -I/usr/local/openssl-0.9.8e/include -L/usr/local/openssl-0.9.8e/lib -o library_version -lcrypto library_version.c Compilation was sucessfull. Output of the program: 90807f (OpenSSL 0.9.8g 19 Oct 2007) I think it is strange. I also tried this command: gcc -I/usr/local/openssl-0.9.8e/include -o library_version /usr/local/openssl-0.9.8e/lib/libcrypto.a library_version.c Compilation failed because of undefined references. /tmp/cckK33Rn.o: In function `main': library_version.c:(.text+0x1a): undefined reference to `SSLeay_version' library_version.c:(.text+0x21): undefined reference to `SSLeay' But nm utility shows that such functions exists in libcrypto.a I compiled it with this command: gcc -I/usr/local/openssl-0.9.8e/include -o library_version /usr/local/openssl-0.9.8e/lib/libcrypto.so library_version.c Compilation was sucessfull. Output of the program: 90807f (OpenSSL 0.9.8g 19 Oct 2007) It is not correct. So, I have 3 questions: 1) Can I use two versions of openssl in my system? 2) Why ld can not find SSLeay_version and SSLeay functions in /usr/local/openssl-0.9.8e/lib/libcrypto.a? 3) Why my program library_version.c with /usr/local/openssl-0.9.8e/lib/libcrypto.so outputs: "90807f (OpenSSL 0.9.8g 19 Oct 2007)" or what I do wrong? ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List openssl-users@openssl.org Automated List Manager [EMAIL PROTECTED]