From: "U.Nakamura" Date: 2009-08-06T21:28:03+09:00 Subject: [ruby-dev:39032] Re: [bug:trunk] Re: [ruby-cvs:31633] Ruby:r24415 (trunk): * ext/digest/sha2/sha2.[ch]: Update to 1.0 RELEASE which fixes an こんにちは、なかむら(う)です。 In message "[ruby-dev:39030] Re: [bug:trunk] Re: [ruby-cvs:31633] Ruby:r24415 (trunk): * ext/digest/sha2/sha2.[ch]: Update to 1.0 RELEASE which fixes an" on Aug.06,2009 19:51:37, wrote: > > (2) have_headerマクロでヘッダの存在をチェックしているなら、 > > ない時は#includeしないでください。 > >  どれのことかにわかにはわからなかったので上記だけ直しました。 なぜか指が滑って「マクロ」と書いてしまいましたがそこは間違い でした。 extconf.rbの中でhave_headerを使ってsys/types.h・inttypes.h・ unistd.hの存在を確認していますが、sha2.h内で無条件にsys/types.h とinttypes.hを#includeしています。 また、unistd.hは結局#includeしていません。 で、続きなのですが、 (3) 割と下らないバグが入っていて静的または動的リンクが不可能 になっていたので、r24427で勝手に直しておきました。 ご確認ください。 (4) テストを実行してみたらsha2.so絡みのテストが一切実行されな くてなんだかおかしいと思ったら、sha2.rbが邪魔をして単純に はsha2.soがロードされなくなっていました。 r24428で勝手に直しておきましたのでご確認ください。 これは他のブランチにもバックポートが必要だと思います。 (5) sha2.c内でULL接尾辞を使って64bit整数リテラルを使用してい ますが、ULLはC99で追加されたものなので古いコンパイラでは コンパイルエラーになります(VCだとUI64という接尾辞が存在し ます)。 どう直すのがよいか判断できていないのですが、ここでrubyの ビルドが止まっちゃうので何とかなんないでしょうか。 単に「ULL」を全部削除するだけだと他のコンパイラで問題が出 たりしますかね? それでは。 -- U.Nakamura