From: Akinori MUSHA Date: 2009-08-06T21:59:40+09:00 Subject: [ruby-dev:39033] Re: [bug:trunk] Re: [ruby-cvs:31633] Ruby:r24415 (trunk): * ext/digest/sha2/sha2.[ch]: Update to 1.0 RELEASE which fixes an --pgp-sign-Multipart_Thu_Aug__6_21:58:29_2009-1 Content-Type: text/plain; charset=ISO-2022-JP At Thu, 6 Aug 2009 21:28:03 +0900, U.Nakamura wrote: > extconf.rbの中でhave_headerを使ってsys/types.h・inttypes.h・ > unistd.hの存在を確認していますが、sha2.h内で無条件にsys/types.h > とinttypes.hを#includeしています。 > また、unistd.hは結局#includeしていません。 あれ。inttypes.h が #include されるということは #ifdef RUBY の #else の方に突入していますか。*.c はいずれも defs.h を経由して #include "ruby.h" しているので RUBY は定義されているはずですが…。 sys/types.h は以前から digest/defs.h で無条件に #include して いるのでチェックの意味がないですね。unistd.h のチェックは何かの 名残で今は無意味なようです。他の digest/*/extconf.rb とともに、 この2つのチェックはやめます。 > で、続きなのですが、 > > (3) 割と下らないバグが入っていて静的または動的リンクが不可能 > になっていたので、r24427で勝手に直しておきました。 > ご確認ください。 ありがとうございます。 > (4) テストを実行してみたらsha2.so絡みのテストが一切実行されな > くてなんだかおかしいと思ったら、sha2.rbが邪魔をして単純に > はsha2.soがロードされなくなっていました。 > r24428で勝手に直しておきましたのでご確認ください。 > これは他のブランチにもバックポートが必要だと思います。 1.8.8devにも入れます。 > (5) sha2.c内でULL接尾辞を使って64bit整数リテラルを使用してい > ますが、ULLはC99で追加されたものなので古いコンパイラでは > コンパイルエラーになります(VCだとUI64という接尾辞が存在し > ます)。 > どう直すのがよいか判断できていないのですが、ここでrubyの > ビルドが止まっちゃうので何とかなんないでしょうか。 > 単に「ULL」を全部削除するだけだと他のコンパイラで問題が出 > たりしますかね? #if defined(__GNUC__) || defined(_HPUX_SOURCE) || defined(__IBMC__) #define ULL(number) number##ULL #else #define ULL(number) (uint64_t)(number) #endif として ULL() で括る変更を再適用します。 -- Akinori MUSHA / http://akinori.org/ --pgp-sign-Multipart_Thu_Aug__6_21:58:29_2009-1 Content-Type: application/pgp-signature Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (FreeBSD) iEYEABECAAYFAkp603UACgkQkgvvx5/Z4e5vFACfVNqTWTMaPnKJg6xPz07xkSvt MVIAoIydien7goywlHfnpuZ86bvzDLNq =b7/F -----END PGP SIGNATURE----- --pgp-sign-Multipart_Thu_Aug__6_21:58:29_2009-1--