[#43284] [Ruby 1.9 - Bug #4456] [Open] Time#strftime で %F 指定子に大きな幅を指定した際の不具合 — tadayoshi funaba <redmine@...>

14 messages 2011/03/02

[#43317] [Ruby 1.9 - Bug #4474][Open] 複数のスレッドからトランザクションに入ろうとした場合のPStoreの挙動 — Masaki Matsushita <redmine@...>

9 messages 2011/03/06

[#43327] [Ruby 1.9 - Feature #4483][Open] PStoreをデフォルトで複数のスレッドから扱えるようにしたい — Masaki Matsushita <redmine@...>

10 messages 2011/03/08

[#43365] [Ruby 1.9 - Bug #4536][Open] 定数参照について1.8と1.9の違い — Yukihiro Matsumoto <matz@...>

11 messages 2011/03/29

[ruby-dev:43281] try_header in mkmf.rb on mswin32

From: Kenta Murata <muraken@...>
Date: 2011-03-01 10:46:38 UTC
List: ruby-dev #43281
むらたです。

現在、mswin32 において、try_cpp は成功するけど try_compile は失敗するような
ヘッダファイルの存在を have_header を用いて正しく判定できません。

この問題は ruby-debug-base19 を gem install すると再現できます。
have_header("iseq.h") が失敗するためです。
しかし、mswin32 以外のアーキテクチャでは再現できません。

何故 mswin32 だけで失敗するのか調べてみたところ、mswin32 上では、
mkmf.rb で定義される try_header が try_compile のエイリアスになるようです。
これは、r21791 で中田さんが行なった修正で、ChangeLog によると
理由は -E を付けると CL が遅からということでした。


実際、try_header を try_cpp のエイリアスにすると問題は解決しましたが、
処理測度はとても遅くなってしまいました。

extconf.rb はとても遅くなってしまいますが、have_header の仕様を考えると
try_header は try_cpp のエイリアスに戻すべきだと思います。如何でしょう?

ほかにエレガントな解法はあるでしょうか?

-- 
Kenta Murata
Sent with Sparrow


In This Thread

Prev Next