Linux 64ビット用バージョン0.3.8.1アップデート
バージョン0.3.6でCrypto++ 5.6.0 SHA-256に切り替えた際に、Linux 64ビットビルドで生成が壊れていた。64ビットバイナリを更新したバージョン0.3.8.1がSourceForgeに公開されている。
0.3.8以降の将来のバージョンではSSE2が必要になる可能性がある。これが問題になるPentium 3以前のCPUをお使いの方はいるだろうか?
私見だが、SSEは単にクライアントを実行するためではなく、生成のために必要とされるべきだ。
良い指摘だ。SSE2がなくても生成をオフにすれば動作できるはずだ。
cryptopp/config.hの先頭に以下を追加するのはどうだろうか:
#if !defined(_M_X64) && !defined(x86_64) #define CRYPTOPP_DISABLE_SSE2 1 #endif
これにより32ビットビルドでSSE2が無効になる。(少なくともGCCまたはMSVCでは)
ははは!長年の謎がようやく解けた。なぜ自分の10,000 khash/sのLinux 64ビットマシンだけが、2週間経ってもブロックを1つも生成しなかったのか。Smiley
確認だが、この修正はSVN 125に入っているのか?
Quote from: Ground Loop on August 10, 2010, 03:38:23 AM
ははは!長年の謎がようやく解けた。なぜ自分の10,000 khash/sのLinux 64ビットマシンだけが、2週間経ってもブロックを1つも生成しなかったのか。Smiley
あなただけではない。私は1ヶ月以上生成していない。
SVN rev 128:32ビットでSSE2を無効化。これはMSVCとGCCでのみ無効化される可能性がある。他のコンパイラは異なる64ビット定義を持っているかもしれない。