In article <20090811.215258.126602848.taca / back-street.net>,
  Takahiro Kambe <taca / back-street.net> writes:

> また、Ruby 1.9.1 patchlevel 243 と Ruby 1.9.2 preview1用のパッチも作成
> してみました。いずれも、コンパイルに問題がないところまでの確認はしてい
> ます。

> ftp://ftp.back-street.net/pub/ruby/openssl-1/ruby-1.9.2pre1-openssl1-patch.bz2

openssl-1.0.0-beta3 と組み合わせて試すと、コンパイルできるよ
うになるのは良いのですが、テストで SEGV しますねぇ。

% ./ruby test/runner.rb -v openssl  
Loaded suite test/runner
Started
OpenSSL::TestASN1#test_decode: 0.03 s: .
OpenSSL::TestCipher#test_AES: 0.10 s: .
OpenSSL::TestCipher#test_ciphers: 0.00 s: .
OpenSSL::TestCipher#test_crypt: 0.02 s: .
OpenSSL::TestCipher#test_dup: 0.00 s: .
OpenSSL::TestCipher#test_empty_data: 0.00 s: .
OpenSSL::TestCipher#test_info: 0.00 s: .
OpenSSL::TestCipher#test_reset: 0.00 s: .
OpenSSL::TestDigest#test_098_features: 0.00 s: .
OpenSSL::TestDigest#test_digest: 0.00 s: .
OpenSSL::TestDigest#test_dup: 0.00 s: .
OpenSSL::TestDigest#test_eql: 0.00 s: .
OpenSSL::TestDigest#test_info: 0.00 s: .
OpenSSL::TestDigest#test_reset: 0.00 s: .
OpenSSL::TestEC#test_check_key: 0.03 s: .
OpenSSL::TestEC#test_curve_names: 0.01 s: .
OpenSSL::TestEC#test_dh_compute_key: 0.03 s: .
OpenSSL::TestEC#test_dsa_sign_verify: 0.03 s: .
OpenSSL::TestEC#test_encoding: 0.07 s: .
OpenSSL::TestEC#test_set_keys: 0.04 s: .
OpenSSL::TestEOF1#test_eof_0: 0.20 s: .
OpenSSL::TestEOF1#test_eof_0_rw: 0.00 s: .
OpenSSL::TestEOF1#test_eof_1: 0.39 s: .
OpenSSL::TestEOF1#test_eof_2: 0.05 s: .
OpenSSL::TestEOF1#test_eof_3: 0.05 s: .
OpenSSL::TestEOF2#test_eof_0: 0.20 s: .
OpenSSL::TestEOF2#test_eof_0_rw: 0.00 s: .
OpenSSL::TestEOF2#test_eof_1: /home/ruby/openssl/lib/ruby/1.9.1/openssl/buffering.rb:37: [BUG] Segmentation fault
ruby 1.9.2dev (2009-10-17 trunk 25381) [i686-linux]

-- control frame ----------
c:0019 p:---- s:0073 b:0073 l:000072 d:000072 CFUNC  :===
c:0018 p:0020 s:0069 b:0069 l:000065 d:000068 BLOCK  /home/ruby/openssl/lib/ruby/1.9.1/openssl/buffering.rb:37
c:0017 p:0026 s:0066 b:0066 l:000065 d:000065 METHOD /home/ruby/openssl/lib/ruby/1.9.1/openssl/buffering.rb:35
c:0016 p:0094 s:0063 b:0063 l:000062 d:000062 METHOD /home/ruby/openssl/lib/ruby/1.9.1/openssl/buffering.rb:68
c:0015 p:0016 s:0057 b:0055 l:00136c d:000054 BLOCK  /home/ruby/openssl/ruby/test/ruby/ut_eof.rb:66
c:0014 p:0041 s:0052 b:0052 l:000eb0 d:000eb0 METHOD /home/ruby/openssl/ruby/test/openssl/test_pair.rb:80
c:0013 p:0061 s:0046 b:0046 l:00136c d:00136c METHOD /home/ruby/openssl/ruby/test/ruby/ut_eof.rb:65
c:0012 p:0063 s:0043 b:0043 l:000042 d:000042 METHOD /home/ruby/openssl/lib/ruby/1.9.1/minitest/unit.rb:458
c:0011 p:0091 s:0037 b:0037 l:000018 d:000036 BLOCK  /home/ruby/openssl/lib/ruby/1.9.1/minitest/unit.rb:426
c:0010 p:---- s:0032 b:0032 l:000031 d:000031 FINISH
c:0009 p:---- s:0030 b:0030 l:000029 d:000029 CFUNC  :each
c:0008 p:0026 s:0027 b:0027 l:000018 d:000026 BLOCK  /home/ruby/openssl/lib/ruby/1.9.1/minitest/unit.rb:420
c:0007 p:---- s:0024 b:0024 l:000023 d:000023 FINISH
c:0006 p:---- s:0022 b:0022 l:000021 d:000021 CFUNC  :each
c:0005 p:0082 s:0019 b:0019 l:000018 d:000018 METHOD /home/ruby/openssl/lib/ruby/1.9.1/minitest/unit.rb:419
c:0004 p:0154 s:0014 b:0014 l:000013 d:000013 METHOD /home/ruby/openssl/lib/ruby/1.9.1/minitest/unit.rb:393
c:0003 p:0041 s:0007 b:0007 l:0015dc d:000006 BLOCK  /home/ruby/openssl/lib/ruby/1.9.1/minitest/unit.rb:334
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:001034 d:001034 TOP   
---------------------------
/home/ruby/openssl/lib/ruby/1.9.1/minitest/unit.rb:334:in `block in autorun'
/home/ruby/openssl/lib/ruby/1.9.1/minitest/unit.rb:393:in `run'
/home/ruby/openssl/lib/ruby/1.9.1/minitest/unit.rb:419:in `run_test_suites'
/home/ruby/openssl/lib/ruby/1.9.1/minitest/unit.rb:419:in `each'
/home/ruby/openssl/lib/ruby/1.9.1/minitest/unit.rb:420:in `block in run_test_suites'
/home/ruby/openssl/lib/ruby/1.9.1/minitest/unit.rb:420:in `each'
/home/ruby/openssl/lib/ruby/1.9.1/minitest/unit.rb:426:in `block (2 levels) in run_test_suites'
/home/ruby/openssl/lib/ruby/1.9.1/minitest/unit.rb:458:in `run'
/home/ruby/openssl/ruby/test/ruby/ut_eof.rb:65:in `test_eof_1'
/home/ruby/openssl/ruby/test/openssl/test_pair.rb:80:in `open_file'
/home/ruby/openssl/ruby/test/ruby/ut_eof.rb:66:in `block in test_eof_1'
/home/ruby/openssl/lib/ruby/1.9.1/openssl/buffering.rb:68:in `read'
/home/ruby/openssl/lib/ruby/1.9.1/openssl/buffering.rb:35:in `fill_rbuff'
/home/ruby/openssl/lib/ruby/1.9.1/openssl/buffering.rb:37:in `rescue in fill_rbuff'
/home/ruby/openssl/lib/ruby/1.9.1/openssl/buffering.rb:37:in `==='

-- C level backtrace information -------------------------------------------
./ruby(rb_vm_bugreport+0x6c) [0x8152552]
./ruby [0x8185599]
./ruby(rb_bug+0x36) [0x81855f4]
./ruby [0x80ec2fa]
[0xb7fd7410]
./ruby [0x80669f5]
./ruby [0x806534b]
./ruby [0x8066ba9]
./ruby [0x8066bbc]
./ruby(rb_gc_finalize_deferred+0x19) [0x8066be2]
./ruby [0x8154aae]
./ruby(rb_threadptr_execute_interrupts+0x19) [0x8154b91]
./ruby [0x814b0d6]
./ruby [0x814ba4c]
./ruby [0x814b709]
./ruby(rb_funcall+0xa2) [0x814bafa]
./ruby [0x814a724]
./ruby(rb_obj_respond_to+0x4f) [0x814a631]
./ruby(rb_respond_to+0x20) [0x814a760]
./ruby [0x8186c58]
./ruby [0x814807d]
./ruby [0x8147ef7]
./ruby [0x8147436]
./ruby [0x814310a]
./ruby [0x814fa96]
./ruby [0x814e7e2]
./ruby [0x814e870]
./ruby [0x814bcc6]
./ruby(rb_yield+0x3a) [0x814bc9c]
./ruby(rb_ary_each+0x7c) [0x81621ab]
./ruby [0x814805e]
./ruby [0x8147ef7]
./ruby [0x8147436]
./ruby [0x814310a]
./ruby [0x814fa96]
./ruby [0x814e7e2]
./ruby [0x814e870]
./ruby [0x814bcc6]
./ruby(rb_yield+0x3a) [0x814bc9c]
./ruby(rb_ary_each+0x7c) [0x81621ab]
./ruby [0x814805e]
./ruby [0x8147ef7]
./ruby [0x8147436]
./ruby [0x814310a]
./ruby [0x814fa96]
./ruby [0x814e7e2]
./ruby(rb_vm_invoke_proc+0xb0) [0x814e922]
./ruby(rb_proc_call+0x8e) [0x8060564]
./ruby(rb_call_end_proc+0x1a) [0x805dcf6]
./ruby(rb_exec_end_proc+0x174) [0x805df97]
./ruby [0x805e1f4]
./ruby(ruby_cleanup+0x92) [0x805e2c0]
./ruby(ruby_run_node+0x43) [0x805e620]
./ruby(main+0x74) [0x805d070]
/lib/i686/cmov/libc.so.6(__libc_start_main+0xe5) [0xb7df7455]
./ruby [0x805ceb1]

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

zsh: abort      ./ruby test/runner.rb -v openssl
% ldd .ext/i686-linux/openssl.so 
        linux-gate.so.1 =>  (0xb7f65000)
        libssl.so.1.0.0 => /home/ruby/openssl/lib/libssl.so.1.0.0 (0xb7ebc000)
        libcrypto.so.1.0.0 => /home/ruby/openssl/lib/libcrypto.so.1.0.0 (0xb7d38000)
        libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb7d04000)
        librt.so.1 => /lib/i686/cmov/librt.so.1 (0xb7cfb000)
        libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7cf7000)
        libcrypt.so.1 => /lib/i686/cmov/libcrypt.so.1 (0xb7cc5000)
        libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb7c9f000)
        libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7b44000)
        /lib/ld-linux.so.2 (0xb7f66000)
% ./ruby -v
ruby 1.9.2dev (2009-10-17 trunk 25381) [i686-linux]
-- 
[田中 哲][たなか あきら][Tanaka Akira]