Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenSSL configure error during Ruby 2.0.0 installation #1588

Closed
BjoernKW opened this issue Feb 25, 2013 · 12 comments
Closed

OpenSSL configure error during Ruby 2.0.0 installation #1588

BjoernKW opened this issue Feb 25, 2013 · 12 comments
Milestone

Comments

@BjoernKW
Copy link

I can't install Ruby 2.0.0 on OSX Lion (10.7.5). I've run into all sorts of issues with OpenSSL. Finally, trying to fix this according to https://rvm.io/packages/openssl/ I ran the following commands:

rvm pkg install openssl
rvm reinstall 1.9.2 --with-openssl-dir=$rvm_path/usr

"rvm pkg install openssl" works fine. However, the second command yields the following error:

Configuring openssl in /Users/willy/.rvm/src/openssl-1.0.1c.
Error running './Configure darwin64-x86_64-cc -I/Users/willy/.rvm/usr/include -L/Users/willy/.rvm/usr/lib zlib no-asm no-krb5 --prefix=/Users/willy/.rvm/usr --with-openssl-dir=/Users/willy/.rvm/usr no-shared', please read /Users/willy/.rvm/log/ruby-2.0.0-p0/openssl/configure.log
Compiling openssl in /Users/willy/.rvm/src/openssl-1.0.1c.
Error running 'make', please read /Users/willy/.rvm/log/ruby-2.0.0-p0/openssl/make.log

Contents of configure.log:
[2013-02-25 00:54:25] ./Configure
Usage: Configure [no- ...] [enable- ...] [experimental- ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [no-hw-xxx|no-hw] [[no-]threads] [[no-]shared] [[no-]zlib|zlib-dynamic] [no-asm] [no-dso] [no-krb5] [sctp] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] [--with-xxx[=vvv]] [--test-sanity] os/compiler[:flags]

Contents of make.log:
[2013-02-25 00:54:25] make
making all in crypto...
( echo "#ifndef MK1MF_BUILD";
echo ' /* auto-generated by crypto/Makefile for crypto/cversion.c */';
echo ' #define CFLAGS "cc -O"';
echo ' #define PLATFORM "dist"';
echo " #define DATE "LC_ALL=C LC_TIME=C date"";
echo '#endif' ) >buildinf.h
cc -I. -I.. -I../include -O -c -o cryptlib.o cryptlib.c
cc -I. -I.. -I../include -O -c -o mem.o mem.c
cc -I. -I.. -I../include -O -c -o mem_dbg.o mem_dbg.c
cc -I. -I.. -I../include -O -c -o cversion.o cversion.c
cc -I. -I.. -I../include -O -c -o ex_data.o ex_data.c
cc -I. -I.. -I../include -O -c -o cpt_err.o cpt_err.c
cc -I. -I.. -I../include -O -c -o ebcdic.o ebcdic.c
cc -I. -I.. -I../include -O -c -o uid.o uid.c
cc -I. -I.. -I../include -O -c -o o_time.o o_time.c
cc -I. -I.. -I../include -O -c -o o_str.o o_str.c
cc -I. -I.. -I../include -O -c -o o_dir.o o_dir.c
cc -I. -I.. -I../include -O -c -o o_fips.o o_fips.c
cc -I. -I.. -I../include -O -c -o o_init.o o_init.c
cc -I. -I.. -I../include -O -c -o fips_ers.o fips_ers.c
cc -I. -I.. -I../include -O -c -o mem_clr.o mem_clr.c
ar r ../libcrypto.a cryptlib.o mem.o mem_dbg.o cversion.o ex_data.o cpt_err.o ebcdic.o uid.o o_time.o o_str.o o_dir.o o_fips.o o_init.o fips_ers.o mem_clr.o
ar: creating archive ../libcrypto.a
/opt/local/bin/ranlib: file: ../libcrypto.a(ebcdic.o) has no symbols
/opt/local/bin/ranlib: file: ../libcrypto.a(fips_ers.o) has no symbols
[ -z "" ] || ar r ../libcrypto.a fipscanister.o
/usr/bin/ranlib ../libcrypto.a || echo Never mind.
/usr/bin/ranlib: file: ../libcrypto.a(ebcdic.o) has no symbols
/usr/bin/ranlib: file: ../libcrypto.a(fips_ers.o) has no symbols
making all in crypto/objects...
/usr/bin/perl obj_dat.pl obj_mac.h obj_dat.h
/usr/bin/perl objxref.pl obj_mac.num obj_xref.txt > obj_xref.h
cc -I.. -I../.. -I../modes -I../asn1 -I../evp -I../../include -O -c -o o_names.o o_names.c
o_names.c:76:24: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
if ((name_funcs_stack == NULL))
~~~~~~~~~~~~~~~~~^~~~~~~
o_names.c:76:24: note: remove extraneous parentheses around the comparison to silence this warning
if ((name_funcs_stack == NULL))
~ ^ ~
o_names.c:76:24: note: use '=' to turn this equality comparison into an assignment
if ((name_funcs_stack == NULL))
^~
=
1 warning generated.
cc -I.. -I../.. -I../modes -I../asn1 -I../evp -I../../include -O -c -o obj_dat.o obj_dat.c
cc -I.. -I../.. -I../modes -I../asn1 -I../evp -I../../include -O -c -o obj_lib.o obj_lib.c
cc -I.. -I../.. -I../modes -I../asn1 -I../evp -I../../include -O -c -o obj_err.o obj_err.c
cc -I.. -I../.. -I../modes -I../asn1 -I../evp -I../../include -O -c -o obj_xref.o obj_xref.c
ar r ../../libcrypto.a o_names.o obj_dat.o obj_lib.o obj_err.o obj_xref.o
/opt/local/bin/ranlib: file: ../../libcrypto.a(ebcdic.o) has no symbols
/opt/local/bin/ranlib: file: ../../libcrypto.a(fips_ers.o) has no symbols
/usr/bin/ranlib ../../libcrypto.a || echo Never mind.
/usr/bin/ranlib: file: ../../libcrypto.a(ebcdic.o) has no symbols
/usr/bin/ranlib: file: ../../libcrypto.a(fips_ers.o) has no symbols
making all in crypto/md4...
cc -I.. -I../.. -I../modes -I../asn1 -I../evp -I../../include -O -c -o md4_dgst.o md4_dgst.c
In file included from md4_dgst.c:62:
In file included from ./md4_locl.h:87:
../md32_common.h:379:2: warning: expression result unused [-Wunused-value]
HASH_MAKE_STRING(c,md);
^~~~~~~~~~~~~~~~~~~~~~
./md4_locl.h:80:22: note: expanded from macro 'HASH_MAKE_STRING'
ll=(c)->A; HOST_l2c(ll,(s));
^~
../md32_common.h:257:62: note: expanded from macro 'HOST_l2c'

define HOST_l2c(l,c) (*((unsigned int *)(c))=(l), (c)+=4, l)

                                                         ^

... cut by @mpapis ...

/opt/local/bin/ranlib: file: ../../libcrypto.a(fips_ers.o) has no symbols
/usr/bin/ranlib ../../libcrypto.a || echo Never mind.
/usr/bin/ranlib: file: ../../libcrypto.a(ebcdic.o) has no symbols
/usr/bin/ranlib: file: ../../libcrypto.a(fips_ers.o) has no symbols
making all in crypto/des...
cc -I.. -I../.. -I../modes -I../asn1 -I../evp -I../../include -O -c -o set_key.o set_key.c
set_key.c:399:17: error: unsupported inline asm: input with type 'unsigned long' matching output with type 'unsigned int'
(k++)=ROTATE(t2,30)&0xffffffffL;
~~~~~~~^~~~~~
./des_locl.h:170:19: note: expanded from macro 'ROTATE'
: "I"(n),"0"(a)
^
set_key.c:402:17: error: unsupported inline asm: input with type 'unsigned long' matching output with type 'unsigned int'
*(k++)=ROTATE(t2,26)&0xffffffffL;
~~~~~~~^~~~~~
./des_locl.h:170:19: note: expanded from macro 'ROTATE'
: "I"(n),"0"(a)
^
2 errors generated.
make[2]: *
* [set_key.o] Error 1
make[1]: *** [subdirs] Error 1
make: *** [build_crypto] Error 1

@mpapis
Copy link
Member

mpapis commented Feb 25, 2013

can you try with:

rvm get head
rvm pkg remove
rvm remove ruby
rvm install ruby --debug

if it fails gist all the outputs

@BjoernKW
Copy link
Author

rvm get head returns a tar error: https://gist.github.com/BjoernKW/5026644

@mpapis
Copy link
Member

mpapis commented Feb 25, 2013

what version of tar do you have, I have tried on OSX 10.6 and 10.8 and both support --strip-components

@BjoernKW
Copy link
Author

I have tar 1.14. I'm running OSX 10.7

@BjoernKW
Copy link
Author

By the way, if I'm running from a fresh install from latest stable of RVM I get the following results:

https://gist.github.com/BjoernKW/5028301
install.log: https://gist.github.com/BjoernKW/5028307

@qqshfox
Copy link
Contributor

qqshfox commented Feb 25, 2013

similar problem here

https://gist.github.com/qqshfox/5030580

@BjoernKW
Copy link
Author

I now can't even install any other Ruby version any more. This is the make.log for 1.9.3:

https://gist.github.com/BjoernKW/5032614

Root cause appears to be:

In file included from openssl_missing.c:22:
openssl_missing.h:71: error: conflicting types for 'HMAC_CTX_copy'

@mpapis
Copy link
Member

mpapis commented Feb 26, 2013

could you please try:

rvm get head
rvm install ruby-2.0.0 --rubygems head --debug

if it fail then please gist all the outputs and mentioned log files

@seryl
Copy link

seryl commented Feb 26, 2013

I ran into this same issue; however I was on 10.8.2, and brew had apple-gcc42 installed.

To fix it:

brew uninstall apple-gcc42
brew cleanup
softwareupdate --all
rvm pkg remove
rvm clean
brew install openssl
rvm install 2.0.0 --with-openssl-dir=brew --prefix openssl

Seems to work fine with openssl 1.0.1e

@mpapis
Copy link
Member

mpapis commented Feb 26, 2013

@seryl the last two steps:

brew install openssl
rvm install 2.0.0 --with-openssl-dir=`brew --prefix openssl`

are already handled by rvm, so it can be simplified to:

rvm install 2.0.0

@BjoernKW
Copy link
Author

You're right. Reinstalling brew and rvm from scratch did the trick. After reinstalling brew I could the following as described under https://rvm.io/packages/openssl/ and everything worked fine once more:

rvm get head
rvm pkg remove
rvm requirements run
rvm reinstall 2.0.0

@mpapis
Copy link
Member

mpapis commented Feb 26, 2013

I will close as it looks fixed, let me know if there is anything more I can do

@mpapis mpapis closed this as completed Feb 26, 2013
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants