[#10793] 今度こそ (patch of the ruby-1.4.6 for NT4.0&VC4.0 on DEC Alpha.) — kou@...1609.sip.eee.yamaguchi-u.ac.jp (Koichi Okada)

岡田です。

10 messages 2000/09/01

[#10920] SIGINT on windows — "Nobuyoshi.Nakada" <nobu.nakada@...>

なかだです。

17 messages 2000/09/14
[#11077] Re: SIGINT on windows — matz@... (Yukihiro Matsumoto) 2000/09/27

まつもと ゆきひろです

[#10944] dummy DLL on Windows — "Nobuyoshi.Nakada" <nobu.nakada@...>

なかだです。

19 messages 2000/09/18
[#10955] Re: dummy DLL on Windows — WATANABE Hirofumi <eban@...> 2000/09/19

わたなべです.

[#10963] Re: dummy DLL on Windows — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/09/19

なかだです。

[#10964] Re: dummy DLL on Windows — WATANABE Hirofumi <eban@...> 2000/09/19

わたなべです.

[#10978] [PATCH] require in require — "Nobuyoshi.Nakada" <nobu.nakada@...>

なかだです。

15 messages 2000/09/20

[#10985] httphead.rb proxy version problem — Katsuyuki Komatsu <komatsu@...>

小松です.

16 messages 2000/09/20
[#10989] Re: httphead.rb proxy version problem — Minero Aoki <aamine@...> 2000/09/20

あおきです。

[ruby-dev:10972] require socket and md5

From: Katsuyuki Komatsu <komatsu@...>
Date: 2000-09-19 07:14:29 UTC
List: ruby-dev #10972
小松です.

drb-1.2.1を使っているときに出た問題なのですが,Ruby 1.6.0で
Solaris 2.5.1だけsocketとmd5をこの順でrequireすると,
MD5の値が間違っていたり毎回変わったりするという現象がおきていて,
悩んでいます.

しかも同じバイナリをSolaris 2.6で動かすとOKで,
他のプラットフォームでは再現しません.

コンパイラかと思って,gcc 2.8.1,egcs 1.1.2,gcc 2.95.2で"-g -O2"と
"-g"を,WorkShop Compiler 4.2 (2世代前,最新は6.0) で"-g"と"-O"を
試してみましたが,毎回値が変化するかどうかが変わるぐらいで間違って
いることは変わりありませんでした.

Ruby 1.4.6でも同様でした.

うーん,きっとSolarisのシェアードライブラリのローダーのバグ
なんだろうな.
しょうがないのでmd5をスタティックリンクして回避しています.

参考まで.

□Solaris 2.5.1, egcs 1.1.2, -g -O2
% uname -mrs
SunOS 5.5.1 sun4u
% ruby-1.6.0 -v -rsocket -rmd5 -e '5.times { p MD5.new("0").hexdigest }'
ruby 1.6.0 (2000-09-19) [sparc-solaris2.5.1] ← egcs 1.1.2で-g -O2で作成
"000001c0000000009bf3a3bb9b0a90a0" ← 値がおかしい上に毎回変わる
"000003c00000000089042cb03434dbf5"
"000005c0000000002fe81e55e2d8729b"
"000007c0000000000b90924f87a0f3d9"
"000009c000000000c0a253b7a1f11083"
% ruby-1.6.0 -v -rsocket -rmd5 -e '5.times { p MD5.new("0").hexdigest }'
ruby 1.6.0 (2000-09-19) [sparc-solaris2.5.1]
"000001c0000000009bf3a3bb9b0a90a0" ← 同一マシンとバイナリでは1回目のRubyの
"000003c00000000089042cb03434dbf5"    出力パターンと2回目のRubyの出力の
"000005c0000000002fe81e55e2d8729b"    パターンは同じ
"000007c0000000000b90924f87a0f3d9"
"000009c000000000c0a253b7a1f11083"
% ruby-1.6.0 -v -rmd5 -rsocket -e '5.times { p MD5.new("0").hexdigest }'
ruby 1.6.0 (2000-09-19) [sparc-solaris2.5.1] ← egcs 1.1.2で-g -O2で作成
"cfcd208495d565ef66e7dff9f98764da" ← -rmd5を先にもっていくと-rsocketが
"cfcd208495d565ef66e7dff9f98764da"    あっても正常
"cfcd208495d565ef66e7dff9f98764da"
"cfcd208495d565ef66e7dff9f98764da"
"cfcd208495d565ef66e7dff9f98764da"
% 

□Solaris 2.6, egcs 1.1.2, -g -O2
% uname -mrs
SunOS 5.6 sun4u
% ruby-1.6.0 -v -rsocket -rmd5 -e '5.times { p MD5.new("0").hexdigest }'
ruby 1.6.0 (2000-09-19) [sparc-solaris2.5.1] ← バイナリは上と同じもの
"cfcd208495d565ef66e7dff9f98764da" ← Solaris 2.6では-rsocketが先に
"cfcd208495d565ef66e7dff9f98764da"    あっても正常
"cfcd208495d565ef66e7dff9f98764da"
"cfcd208495d565ef66e7dff9f98764da"
"cfcd208495d565ef66e7dff9f98764da"
% 

--
小松克行 / Katsuyuki Komatsu <komatsu@sarion.co.jp>

In This Thread