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]

Reply via email to