G
gwtmp01
I decided today to try to get 1.8.3 and readline working on my Mac.
It turns out that there was on OSX update yesterday bringing
the system up to 10.4.3. And it looks like it updated libcrypto:
-rwxr-xr-x 1 root wheel 1199188 Nov 5 01:55 /usr/lib/libcrypto.
0.9.7.dylib
-rwxr-xr-x 1 root wheel 920352 Nov 5 01:55 /usr/lib/libcrypto.
0.9.dylib
Can someone who hasn't run the update verify this?
In any case I had a lot of trouble getting readline and OpenSSL to work.
I had to build a static version of the readline extension because of
difficulties getting a dynamic library constructed and I had change a
call in
ext/ossl.c from OpenSSL_add_all_algorithms() to
OPENSSL_add_all_algorithms_noconf()
as well as changing calls for BN_mod(...) to BN_div(NUL,...). There
was still
some buried call to BN_mod that I could locate with grep (probaby
some crazy
macro stuff) so I just put a definition in openssl_missing.c
I cobbled all this together from various postings around the net. I
have no
idea if all this is the *correct* way to solve these problems, but I
did get
everything to compile and irb now has readline support and require
'openssl'
doesn't die with an unresolved symbol.
Perhaps this will help someone else...
RCS file: RCS/ossl.c,v
retrieving revision 1.1
diff -r1.1 ossl.c
385c385
< OpenSSL_add_all_algorithms();
---
RCS file: RCS/openssl_missing.c,v
retrieving revision 1.1
diff -r1.1 openssl_missing.c
201c201
< return BN_mod(r, r, m, ctx);
---
< if (!BN_mod(r,m,d,ctx)) return 0;
---
Gary Wright
It turns out that there was on OSX update yesterday bringing
the system up to 10.4.3. And it looks like it updated libcrypto:
-rwxr-xr-x 1 root wheel 1199188 Nov 5 01:55 /usr/lib/libcrypto.
0.9.7.dylib
-rwxr-xr-x 1 root wheel 920352 Nov 5 01:55 /usr/lib/libcrypto.
0.9.dylib
Can someone who hasn't run the update verify this?
In any case I had a lot of trouble getting readline and OpenSSL to work.
I had to build a static version of the readline extension because of
difficulties getting a dynamic library constructed and I had change a
call in
ext/ossl.c from OpenSSL_add_all_algorithms() to
OPENSSL_add_all_algorithms_noconf()
as well as changing calls for BN_mod(...) to BN_div(NUL,...). There
was still
some buried call to BN_mod that I could locate with grep (probaby
some crazy
macro stuff) so I just put a definition in openssl_missing.c
I cobbled all this together from various postings around the net. I
have no
idea if all this is the *correct* way to solve these problems, but I
did get
everything to compile and irb now has readline support and require
'openssl'
doesn't die with an unresolved symbol.
Perhaps this will help someone else...
RCS file: RCS/ossl.c,v
retrieving revision 1.1
diff -r1.1 ossl.c
385c385
< OpenSSL_add_all_algorithms();
---
OPENSSL_add_all_algorithms_noconf();
RCS file: RCS/openssl_missing.c,v
retrieving revision 1.1
diff -r1.1 openssl_missing.c
201c201
< return BN_mod(r, r, m, ctx);
---
208c213return BN_div(NULL, r, r, m, ctx); 204a205,209
int BN_mod(BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx)
{
BN_div(NULL, rem, m, d, ctx);
}
< if (!BN_mod(r,m,d,ctx)) return 0;
---
if (!BN_div(NULL, r,m,d,ctx)) return 0;
Gary Wright