Ставлю OpenSSL 0.9.6 на Slackware 7.1./config прошел нормально
а вот потом началось :root@Linux:~/openssl-0.9.6c# make
+ rm -f libcrypto.so.0
+ rm -f libcrypto.so
+ rm -f libcrypto.so.0.9.6
+ rm -f libssl.so.0
+ rm -f libssl.so
+ rm -f libssl.so.0.9.6
making all in crypto...
make[1]: Entering directory `/root/openssl-0.9.6c/crypto'
gcc -I. -I../include -fPIC -DTHREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall -DSHA1_ASM -DMD5_ASM -DRMD160_ASM -c -o cryptlib.o cryptlib.c
cryptlib.c:105: #error "Inconsistency between crypto.h and cryptlib.c"
make[1]: *** [cryptlib.o] Error 1
make[1]: Leaving directory `/root/openssl-0.9.6c/crypto'
make: *** [sub_all] Error 1ну пошел нашел эти файлы , нашел где орать начинает
cryptlib.c
----------
/* real #defines in crypto.h, keep these upto date */
static const char* lock_names[CRYPTO_NUM_LOCKS] =
{
"<<ERROR>>",
"err",
"err_hash",
"x509",
"x509_info",
"x509_pkey",
"x509_crl",
"x509_req",
"dsa",
"rsa",
"evp_pkey",
"x509_store",
"ssl_ctx",
"ssl_cert",
"ssl_session",
"ssl_sess_cert",
"ssl",
"rand",
"rand2",
"debug_malloc",
"BIO",
"gethostbyname",
"getservbyname",
"readdir",
"RSA_blinding",
"dh",
"debug_malloc2",
"dso",
"dynlock",
#if CRYPTO_NUM_LOCKS != 29
# error "Inconsistency between crypto.h and cryptlib.c"
#endif
};а вот crypto.h
----------------
/* When changing the CRYPTO_LOCK_* list, be sure to maintin the text lock
* names in cryptlib.c
*/#define CRYPTO_LOCK_ERR 1
#define CRYPTO_LOCK_ERR_HASH 2
#define CRYPTO_LOCK_X509 3
#define CRYPTO_LOCK_X509_INFO 4
#define CRYPTO_LOCK_X509_PKEY 5
#define CRYPTO_LOCK_X509_CRL 6
#define CRYPTO_LOCK_X509_REQ 7
#define CRYPTO_LOCK_DSA 8
#define CRYPTO_LOCK_RSA 9
#define CRYPTO_LOCK_EVP_PKEY 10
#define CRYPTO_LOCK_X509_STORE 11
#define CRYPTO_LOCK_SSL_CTX 12
#define CRYPTO_LOCK_SSL_CERT 13
#define CRYPTO_LOCK_SSL_SESSION 14
#define CRYPTO_LOCK_SSL_SESS_CERT 15
#define CRYPTO_LOCK_SSL 16
#define CRYPTO_LOCK_RAND 17
#define CRYPTO_LOCK_RAND2 18
#define CRYPTO_LOCK_MALLOC 19
#define CRYPTO_LOCK_BIO 20
#define CRYPTO_LOCK_GETHOSTBYNAME 21
#define CRYPTO_LOCK_GETSERVBYNAME 22
#define CRYPTO_LOCK_READDIR 23
#define CRYPTO_LOCK_RSA_BLINDING 24
#define CRYPTO_LOCK_DH 25
#define CRYPTO_LOCK_MALLOC2 26
#define CRYPTO_LOCK_DSO 27
#define CRYPTO_LOCK_DYNLOCK 28
#define CRYPTO_NUM_LOCKS 29ИМХО нужные куски вырезал
так вот различия есть если посмотреть внимательно
в cryptlib.c первая константа <<ERROR>>
но в #define в crypto.h ее нет
чего то я запутался
комментирование "if" не помогает потом все равно спотыкается на этих же делах
добавление ее в crypto.h тоже
удаление из cryptolib.c также не приносит пользыПомогите если кто сталкивался с Этим
>Ставлю OpenSSL 0.9.6 на Slackware 7.1
>
>
>./config прошел нормально
>а вот потом началось :
>
>root@Linux:~/openssl-0.9.6c# make
>+ rm -f libcrypto.so.0
>+ rm -f libcrypto.so
>+ rm -f libcrypto.so.0.9.6
>+ rm -f libssl.so.0
>+ rm -f libssl.so
>+ rm -f libssl.so.0.9.6
>making all in crypto...
>make[1]: Entering directory `/root/openssl-0.9.6c/crypto'
>gcc -I. -I../include -fPIC -DTHREADS -D_REENTRANT
>-DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O3
...
<skipped>все это жутко странно, с проблемами сталкивался лишь в специфичных коммерческих системах типа:
OS Convex, SPP нечестный HP-UX, еще где-то...
ну и правил openssh на них, тоже чума была:[linux4u]~/openssl-0.9.6c > make
...
gcc -I../include -fPIC -DTHREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall -DSHA1_ASM -DMD5_ASM -DRMD160_ASM -c -o rsa_test.o rsa_test.c
gcc -o rsa_test -I../include -fPIC -DTHREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall -DSHA1_ASM -DMD5_ASM -DRMD160_ASM rsa_test.o -L.. -lcrypto -ldl
make[1]: Leaving directory `/home/lavr/openssl-0.9.6c/test'
/home/lavr/openssl-0.9.6c/tools
making all in tools...
make[1]: Entering directory `/home/lavr/openssl-0.9.6c/tools'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/lavr/openssl-0.9.6c/tools'
[linux4u]~/openssl-0.9.6c > make test
...
Approximate total server time: 0.49 s
Approximate total client time: 1.37 s
make[1]: Leaving directory `/home/lavr/openssl-0.9.6c/test'
OpenSSL 0.9.6c 21 dec 2001
built on: СRD МAR 13 18:07:25 MSK 2002
platform: linux-elf
options: bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long) idea(int) blowfish(idx)
compiler: gcc -fPIC -DTHREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
[linux4u]~/openssl-0.9.6c > uname -a
Linux linux4u 2.2.19 #1 Thu Oct 25 16:36:11 GMT 2001 i586 unknown
[linux4u]~/openssl-0.9.6c >http://unix1.jinr.ru/~lavr/openssh/index.html
правда давно написано и не завершено, но небыло
проблем, как и сейчас.посмотри инклюды и порядок следования и правильность задания в makefile - относительные пути и линки внутри include на реальные headers
внутри crypto и нет ли redefine с системными, ну
и порядок следования -R/-Lбиблиотеки - gcc однако
:)