From: markea01@... Date: 2007-06-15T02:30:08+09:00 Subject: Building 1.8.6-p36 with Sun Studio 12 compiler All - I am trying to build 1.8.6-p36 (from the .tar.bz2 source) on Solaris Developer Express using the Sun Studio 12 compiler. If I try to configure it with "--enable-pthread" it fails to build with errors in eval.c: merlin:/home/.../ruby-1.8.6-p36 97> make /opt/SUNWspro/bin/cc -g -W0,-xgnuasm -xO3 -xbuiltin=%all -xinline=%auto -xprefetch=auto -xdepend -xtarget=pentium4 -I/usr/sfw/include -I/usr/local/include -DRUBY_EXPORT -I. -I. -c eval.c "eval.c", line 4482: warning: statement not reached "eval.c", line 4517: warning: statement not reached "eval.c", line 4644: warning: statement not reached "eval.c", line 4702: warning: statement not reached "eval.c", line 5151: warning: statement not reached "eval.c", line 5614: warning: statement not reached "eval.c", line 5740: warning: statement not reached "eval.c", line 6251: identifier redeclared: backtrace current : static function() returning unsigned long previous: function(pointer to pointer to void, int) returning int : "/usr/include/execinfo.h", line 41 "eval.c", line 8612: warning: loop not entered at top "eval.c", line 12004: warning: statement not reached "eval.c", line 12446: warning: statement not reached "eval.c", line 12818: warning: statement not reached cc: acomp failed for eval.c gmake: *** [eval.o] Error 2 If I configure it without "--enable-pthread", I get quite a few warnings, mostly of this type: line xxxx: warning: statement not reached and then some "ld" errors in building dl.c: /opt/SUNWspro/bin/cc -I. -I../.. -I../../. -I../.././ext/dl -DHAVE_DLFCN_H -DHAV E_DLOPEN -DHAVE_DLCLOSE -DHAVE_DLSYM -DHAVE_DLERROR -I. -KPIC -g -W0,-xgnuasm - xO3 -xbuiltin=%all -xinline=%auto -xprefetch=auto -xdepend -xtarget=pentium4 -I/ usr/sfw/include -I/usr/local/include -c dl.c "cbtable.func", line 1: warning: assignment type mismatch: pointer to void "=" pointer to function(long, long, long, long, long, long, long, long, long, long, long, long, long, long, long) returning void "cbtable.func", line 2: warning: assignment type mismatch: pointer to void "=" pointer to function(long, long, long, long, long, long, long, long, long, long, long, long, long, long, long) returning void "cbtable.func", line 3: warning: assignment type mismatch: pointer to void "=" pointer to function(long, long, long, long, long, long, long, long, long, long, long, long, long, long, long) returning void "cbtable.func", line 4: warning: assignment type mismatch: pointer to void "=" pointer to function(long, long, long, long, long, long, long, long, long, long, long, long, long, long, long) returning void "cbtable.func", line 5: warning: assignment type mismatch: pointer to void "=" pointer to function(long, long, long, long, long, long, long, long, long, long, long, long, long, long, long) returning void The build completes successfully, and "make check" gives these errors: Finished in 95.708688 seconds. 1) Error: test_AES(OpenSSL::TestCipher): RuntimeError: unsupported cipher algorithm (AES-256-ECB) /home/markea/src/ruby-1.8.6/.ext/common/openssl/cipher.rb:38:in `initialize' /home/markea/src/ruby-1.8.6/.ext/common/openssl/cipher.rb:38:in `initialize' ./test/openssl/test_cipher.rb:81:in `new' ./test/openssl/test_cipher.rb:81:in `test_AES' ./test/openssl/test_cipher.rb:80:in `each' ./test/openssl/test_cipher.rb:80:in `test_AES' 2) Error: test_eof_0(OpenSSL::TestEOF1): OpenSSL::SSL::SSLError: cipher or hash unavailable ./test/openssl/test_pair.rb:32:in `connect' ./test/openssl/test_pair.rb:32:in `client' ./test/openssl/test_pair.rb:45:in `ssl_pair' ./test/openssl/test_pair.rb:65:in `open_file' /home/markea/src/ruby-1.8.6/test/ruby/ut_eof.rb:5:in `test_eof_0' 3) Error: test_eof_1(OpenSSL::TestEOF1): OpenSSL::SSL::SSLError: cipher or hash unavailable ./test/openssl/test_pair.rb:32:in `connect' ./test/openssl/test_pair.rb:32:in `client' ./test/openssl/test_pair.rb:45:in `ssl_pair' ./test/openssl/test_pair.rb:65:in `open_file' /home/markea/src/ruby-1.8.6/test/ruby/ut_eof.rb:40:in `test_eof_1' 4) Error: test_eof_2(OpenSSL::TestEOF1): OpenSSL::SSL::SSLError: cipher or hash unavailable ./test/openssl/test_pair.rb:32:in `connect' ./test/openssl/test_pair.rb:32:in `client' ./test/openssl/test_pair.rb:45:in `ssl_pair' ./test/openssl/test_pair.rb:65:in `open_file' /home/markea/src/ruby-1.8.6/test/ruby/ut_eof.rb:87:in `test_eof_2' 5) Error: test_eof_3(OpenSSL::TestEOF1): OpenSSL::SSL::SSLError: cipher or hash unavailable ./test/openssl/test_pair.rb:32:in `connect' ./test/openssl/test_pair.rb:32:in `client' ./test/openssl/test_pair.rb:45:in `ssl_pair' ./test/openssl/test_pair.rb:65:in `open_file' /home/markea/src/ruby-1.8.6/test/ruby/ut_eof.rb:94:in `test_eof_3' 6) Error: test_eof_0(OpenSSL::TestEOF2): OpenSSL::SSL::SSLError: cipher or hash unavailable ./test/openssl/test_pair.rb:32:in `connect' ./test/openssl/test_pair.rb:32:in `client' ./test/openssl/test_pair.rb:45:in `ssl_pair' ./test/openssl/test_pair.rb:76:in `open_file' /home/markea/src/ruby-1.8.6/test/ruby/ut_eof.rb:5:in `test_eof_0' 7) Error: test_eof_1(OpenSSL::TestEOF2): OpenSSL::SSL::SSLError: cipher or hash unavailable ./test/openssl/test_pair.rb:32:in `connect' ./test/openssl/test_pair.rb:32:in `client' ./test/openssl/test_pair.rb:45:in `ssl_pair' ./test/openssl/test_pair.rb:76:in `open_file' /home/markea/src/ruby-1.8.6/test/ruby/ut_eof.rb:40:in `test_eof_1' 8) Error: test_eof_2(OpenSSL::TestEOF2): OpenSSL::SSL::SSLError: cipher or hash unavailable ./test/openssl/test_pair.rb:32:in `connect' ./test/openssl/test_pair.rb:32:in `client' ./test/openssl/test_pair.rb:45:in `ssl_pair' ./test/openssl/test_pair.rb:76:in `open_file' /home/markea/src/ruby-1.8.6/test/ruby/ut_eof.rb:87:in `test_eof_2' 9) Error: test_eof_3(OpenSSL::TestEOF2): OpenSSL::SSL::SSLError: cipher or hash unavailable ./test/openssl/test_pair.rb:32:in `connect' ./test/openssl/test_pair.rb:32:in `client' ./test/openssl/test_pair.rb:45:in `ssl_pair' ./test/openssl/test_pair.rb:76:in `open_file' /home/markea/src/ruby-1.8.6/test/ruby/ut_eof.rb:94:in `test_eof_3' 10) Error: test_getc(OpenSSL::TestPair): OpenSSL::SSL::SSLError: cipher or hash unavailable ./test/openssl/test_pair.rb:32:in `connect' ./test/openssl/test_pair.rb:32:in `client' ./test/openssl/test_pair.rb:45:in `ssl_pair' ./test/openssl/test_pair.rb:86:in `test_getc' 11) Error: test_puts_empty(OpenSSL::TestPair): OpenSSL::SSL::SSLError: cipher or hash unavailable ./test/openssl/test_pair.rb:32:in `connect' ./test/openssl/test_pair.rb:32:in `client' ./test/openssl/test_pair.rb:45:in `ssl_pair' ./test/openssl/test_pair.rb:135:in `test_puts_empty' 12) Error: test_puts_meta(OpenSSL::TestPair): OpenSSL::SSL::SSLError: cipher or hash unavailable ./test/openssl/test_pair.rb:32:in `connect' ./test/openssl/test_pair.rb:32:in `client' ./test/openssl/test_pair.rb:45:in `ssl_pair' ./test/openssl/test_pair.rb:121:in `test_puts_meta' 13) Error: test_readall(OpenSSL::TestPair): OpenSSL::SSL::SSLError: cipher or hash unavailable ./test/openssl/test_pair.rb:32:in `connect' ./test/openssl/test_pair.rb:32:in `client' ./test/openssl/test_pair.rb:45:in `ssl_pair' ./test/openssl/test_pair.rb:107:in `test_readall' 14) Error: test_readline(OpenSSL::TestPair): OpenSSL::SSL::SSLError: cipher or hash unavailable ./test/openssl/test_pair.rb:32:in `connect' ./test/openssl/test_pair.rb:32:in `client' ./test/openssl/test_pair.rb:45:in `ssl_pair' ./test/openssl/test_pair.rb:114:in `test_readline' 15) Error: test_readpartial(OpenSSL::TestPair): OpenSSL::SSL::SSLError: cipher or hash unavailable ./test/openssl/test_pair.rb:32:in `connect' ./test/openssl/test_pair.rb:32:in `client' ./test/openssl/test_pair.rb:45:in `ssl_pair' ./test/openssl/test_pair.rb:93:in `test_readpartial' 16) Failure: test_cgi(TestWEBrickCGI) [./test/webrick/test_cgi.rb:27:in `test_cgi' /home/markea/src/ruby-1.8.6/lib/net/http.rb:1050:in `request' /home/markea/src/ruby-1.8.6/lib/net/http.rb:2133:in `reading_body' /home/markea/src/ruby-1.8.6/lib/net/http.rb:1049:in `request' /home/markea/src/ruby-1.8.6/lib/net/http.rb:1034:in `request' /home/markea/src/ruby-1.8.6/lib/net/http.rb:543:in `start' /home/markea/src/ruby-1.8.6/lib/net/http.rb:1032:in `request' ./test/webrick/test_cgi.rb:27:in `test_cgi' ./test/webrick/utils.rb:26:in `call' ./test/webrick/utils.rb:26:in `start_server' ./test/webrick/utils.rb:34:in `start_httpserver' ./test/webrick/test_cgi.rb:24:in `test_cgi']: <"/webrick.cgi"> expected but was <"\n\n In ternal Server Error\n \n

Internal Server Error

\n Premature end of script headers: /home/markea/src/ruby-1.8.6/test/webrick/ webrick.cgi\n
\n
\n WEBrick/1.3.1 (Ruby/1.8.6/2007-03-13) OpenSSL/0.9.8a at\n 127.0.0.1:63178\n
\n \n\n"> . 1611 tests, 16442 assertions, 1 failures, 15 errors gmake: *** [test-all] Error 1 It does seem to work (I can run both ruby and irb, and existing Rails apps seem to work fine) but I'd really like to understand why I get so many errors. Any hints/help would be appreciated. Mark Almeida