bonasseサポート掲示板 ~ 動作環境について
手の届く範囲のいくつかのマシンでbonasse1.2をコンパイルして動かしてみました。動いたといっても問題一問やらせてみたくらいですし、網羅的にサポート範囲を明確にする、なんてことはとてもできないですが、どのあたりまで動きそうか、という参考にどうぞ。
[Linux]
* Ubuntu 9.10 64bit + icc 11.1
私が今使ってます。動いてます。
* Fedora Core 6 32bit + gcc 4.1.1
動きました。
* RHEL 4 64bit + gcc3.4.6
pthread_setaffinity_np()がない、でエラーになります。これを無理やりコメント化すると、コンパイルは通ったが動かすとSEG FAULTに。
-> 私の記憶が正しければたしかこのマシンで元ボナは動いたはずなので、bonasseの修正のどれかのせいか。ALIGN16あたり?
* RHEL 4 64bit + gcc4.4.4
上記と同じマシンにgcc4.4.4を入れて試したところ、pthread_setaffinity_np()はやはりないが、これをコメント化すると動いた。
-> pthread_setaffinity_np()はOSがサポートしてないとだめ?この関数はもともとaffinity onの時しか使わないので、make時のオプションでdisableできるようにしました。
gccはv4以降が必要なのかな?
[cygwin]
* Win XP SP3 + cygwin 1.7.1 + gcc4.3.4
-DTLPにするとthread.cのコンパイルでこけます。lock()の中でasm文があるんですが、どうもこれが悪さしてる模様(ここをコメントにするとコンパイル通る)。-DTLPなしだと動きました。
-> floodgate観測員さんの「cygwinでスタックダンプ」は再現できませんでした。
cygwinのせいというよりgccのバージョンのせいかもしれません。
cygwinではTLPはノーサポート、とさせていただきます。
TLPもmake時のオプションでdisableできるようにしました。
(当然ですが、そうすると1コアでしか動きません)
[VC++]
* Win Vista SP1 + Visual C++ 2010 Express Edition
最近私が試したもの。動いてます。
将棋所+u2bにしたときのバージョン表示は、"5.2.1"になるようにしました。
[SPARC]
* Solaris 5.8 + gcc-3.4.6
"lock_t already defined"となってコンパイルエラー。SPARCやるならちゃんと書き直す必要ありそうです。
ということでまとめると、
・gccはv4以降が必要そう
・pthread_setaffinity_np()でエラーになったらMakefileの頭をいじる
・cygwinはTLP禁止。その他TLPでおかしくなったらMakefileの頭をいじる
・SPARCはだめぽ
でなとこでしょうか。
#autoconfとか使った方がいいのか…でもよく知らないんだよな
以上を反映したバージョンを資料館に置きました。Winバイナリにとっての変更点は将棋所のバージョン表示だけです。PGOなしですがバイナリをここに置きます。一晩floodgateで流してちゃんと動く程度は確認済。なおbonasse2cwin32はCore2Duo 1.86Gです。
※「将棋ソフトのページ」のbonasse1.2のバイナリを現在使っていて特に不満ない方は、このバイナリを使う必要はありません。強さに関わるソース変更は今回してないので、PGOがないぶんほんのわずかこちらの方が弱いかも(R10も変わらないはずですが)。将棋所でのバージョン表示が気になる、という方向けです。
最近のコメント