_ Ever since the engine stuff was added to the openssl module
I've had a very difficult time building ruby in our local
environment. For various reasons, we have two versions of
openssl installed, I think I have finally got ruby to just
look at one, but I'm getting this puzzling error.
make[1]: Entering directory
`/home/local/local/src/ruby/ruby-1.8.2/ext/openssl'
gcc -fPIC -g -O2 -I. -I../.. -I../../. -I../.././ext/openssl
- -DHAVE_UNISTD_H -DHAVE_SYS_TIME_H -DHAVE_ASSERT_H
- -DHAVE_OPENSSL_SSL_H -DHAVE_OPENSSL_CONF_API_H -DHAVE_BN_MOD_ADD
- -DHAVE_BN_MOD_SQR -DHAVE_BN_MOD_SUB -DHAVE_BN_PSEUDO_RAND_RANGE
- -DHAVE_BN_RAND_RANGE -DHAVE_CONF_GET1_DEFAULT_CONFIG_FILE
- -DHAVE_EVP_CIPHER_CTX_SET_PADDING -DHAVE_EVP_CIPHERFINAL_EX
- -DHAVE_EVP_CIPHERINIT_EX -DHAVE_EVP_DIGESTFINAL_EX
- -DHAVE_EVP_DIGESTINIT_EX -DHAVE_EVP_MD_CTX_CLEANUP
- -DHAVE_EVP_MD_CTX_CREATE -DHAVE_EVP_MD_CTX_DESTROY
- -DHAVE_EVP_MD_CTX_INIT -DHAVE_HMAC_CTX_CLEANUP
- -DHAVE_HMAC_CTX_INIT -DHAVE_PEM_DEF_CALLBACK
- -DHAVE_X509V3_SET_NCONF -DHAVE_X509_CRL_ADD0_REVOKED
- -DHAVE_X509_CRL_SET_ISSUER_NAME -DHAVE_X509_CRL_SET_VERSION
- -DHAVE_X509_CRL_SORT -DHAVE_VA_ARGS_MACRO -DHAVE_OPENSSL_ENGINE_H
- -DHAVE_ENGINE_ADD -DHAVE_ENGINE_LOAD_BUILTIN_ENGINES
- -DHAVE_ENGINE_GET_DIGEST -DHAVE_ENGINE_GET_CIPHER
- -DHAVE_ENGINE_CLEANUP -c ossl.c
In file included from ossl.h:50,
from ossl.c:11:
/usr/include/openssl/engine.h:579: syntax error before '*' token
/usr/include/openssl/engine.h:580: syntax error before '*' token
/usr/include/openssl/engine.h:583: syntax error before '}' token
/usr/include/openssl/engine.h:616: syntax error before '*' token
make[1]: *** [ossl.o] Error 1
make[1]: Leaving directory
`/home/local/local/src/ruby/ruby-1.8.2/ext/openssl'
make: *** [all] Error 1
Compilation exited abnormally with code 2 at Tue Nov 30 10:21:12
_ From what I can deduce, the openssl[1] macro ERR_FNS is either
incorrectly defined or missing, but ossl.h correctly includes
openssl/err.h so I'm puzzled as to what's happening.
_ I can get the module to compile by commenting out the engine
check in extconf.rb, but it then fails "make test-all" by
complaining about missing openssl functions in the openssl
module. ( I guess it's not finding the shared library for
some reason. )
_ This is all on Red Hat Enterprise Release 3. Suggestions
as to where to start digging are welcome.
_ Booker C. Bense
[1]- <rant> arg... is that the stupidest macro name for a public
library include file you've seen or what.... </rant>