永井@知能.九工大です.

From: WATANABE Hirofumi <eban / os.rim.or.jp>
Subject: [ruby-dev:23566] try_run in ext/tcltklib/extconf.rb
Date: Sat, 22 May 2004 23:23:18 +0900
Message-ID: <20040522232317.831743.eban / os.rim.or.jp>
> ext/tcltklib/extconf.rbでtry_runが使われていますが、クロスの
> 環境ではできあがったconftestが実行できないためエラーになって
> しまいます。

なるほど.確かにクロスコンパイルだと困りますね.

> たぶん例のthreadが有効かどうかの判断のために使われているん
> だと思いますが、別の方法はありませんか?
> 
> ない場合は--enable-tcl-threadのようなオプションを新設して、
> これがセットされてるときはtry_runしないような変更になると思
> います。

別の方法となると,以前に話に出ていた tclConfig.sh を
使うしかなさそうですね.
しかし,有効な tclConfig.sh の場所は不明確ですから,
自動的に検索するのは問題が出そうです.
折衷案として,--with-tclConfig-file=<tclConfig.shのパス> が
指定されていれば,そのファイル中から /^TCL_THREADS=(0|1)/ 
という定義を検索し,それを用いるというではいかがでしょうか.

# もし指定されたファイルが存在しなければ,警告を出した上で
# thread チェックをとばします.

ついでに,tclConfig.sh 指定なし or ファイル存在せずの時,
クロスコンパイル環境でない限りは実行に失敗しないはずの
ソースで try_run をやって失敗するようなら警告の上で
thread チェックをパスするということではどうでしょう?

一番単純で楽なのは,--disable-pthread-check オプションが
指定された場合には thread チェックを行わないというもの
なのですけどね.(^_^)
-- 
                                         永井 秀利 (九工大 知能情報)
                                             nagai / ai.kyutech.ac.jp