Pthreadsは、以下の場所にあります。
http://sourceware.org/pthreads-win32/
正式リリースは、pthreads-w32-2-8-0-release.tar.gzですが、cvsでダウンロードできる、pthreads-w32-2-9-0のソースを置いておきますので、こちらをご利用下さい。
pthreads-w32-2-9-0-release.tar.gz
pthreadもstaticライブラリにすることで、pthreadGC2.dllが不要になります。
何をしているか興味のある方は、以下の記事を参照してください。
http://sourceware.org/ml/pthreads-win32/2009/msg00004.html
http://sourceware.org/ml/pthreads-win32/2009/msg00024.html
MSYSで、ファイルを保存したディレクトリに移動し、
$ tar xzf pthreads-w32-2-9-0-release.tar.gz
$ cd pthreads
ここでautostaticのパッチpthreads-autostatic.diffを適用します。
$ patch -p1 < pthreads-autostatic.diff
2010/3/10 追記
mingwrt-3.18より、TLS Callbackが実装されました。
それに伴い、autostaticパッチも修正しましたので、以下のようにパッチを使い分けてください。
mingwrt-3.17以前
pthreads-autostatic-prev.diff
mingwrt-3.18以降
2010/06/15 追記
autostatic以外に、64bit OSでの不具合対応など追加しました。
pthreads-autostatic.diff
パッチを適用したら、
$ make clean GC-autostatic
$ cp libpthreadGC2.a /mingw/lib/libpthread.a
$ cp pthread.h sched.h semaphore.h /mingw/include/.
libpthreadGC2.aは、ファイル名をlibpthread.aに変更して、コピーするのがミソです。
ヘッダファイル3つも、忘れずにコピーして下さい。
以上で終了です。
2009年08月05日
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/31078165
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック
http://blog.sakura.ne.jp/tb/31078165
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック
pthreads-w32-2-9-0-release.tar.gz
です。
ファイルをアップし直しました。
( ・д・)/−−=≡(((卍 シュッ!!
ご指摘ありがとうございました。
私のような人の場合、ここのサイトのどこから見ればいいですか?一通りMinGWとMSYSを理解してからきたつもりですが、どのライブラリからインストール・コンパイルしていいのかがさっぱりわかりません(笑) 一応NASMとyasmは重要そうなので先にやりましたが・・・ 順番とかはどうでもいいのでしょうか?
ところで改行コードの関係でうまくパッチが当たらないようです。msysでなく純debian環境などに持っていって改行コードをすべてLFに統一するなどしたら、なんとかあたりましたが……。
お手数ですが、確認いただけると幸いです。
ご報告ありがとうございます。
パッチの改行コードがCRLFになっているのが原因でしょうか。
msys-1.0.10を使い続けていて、特に問題なくパッチを当てることができていたのですが、msysのバージョンによって違うのかもしれません。
とりあえず、
$ tr -d "\r" < pthreads-autostatic.diff > temp.diff
$ patch -p1 < temp.diff
などとして、改行コードを修正してパッチを当ててみてください。
> パッチの改行コードがCRLFになっているのが原因でしょうか。
ではなく、パッチの改行コードがCRLFになっていませんでした。
申し訳ありません。
パッチをアップし直しましたので、今度は大丈夫だと思います。
2010/06/20
CVSの方にautostaticがマージされた模様です。