2018年5月7日月曜日

Dosbox-X 0.82.6 が(現時点)ビルドできない話

Dosbox-X 0.82.6 が出たのでビルドしようとしたらSDLのあたりでひっかかる。理由は Dosbox-X が SDL のソースコードにオリジナルにはない改善を加えているために、MacPorts の SDL1.2.15 (libsdl@1.2.15_3) のヘッダファイルをインクルードしていたのでは(おそらく)だめで、 Dosbox-X のソースコードについてきたSDLのソースコードが要るようだ、というところまでは理解した。ただし単純にそのヘッダファイルをインクルードしただけでは最後のところで失敗する。この理由は未定義のシンボル(識別子、変数とか関数)を参照しているというもので、参照されるべき関数 LinuxX11_KeySymName がコンパイルされていないようだ。参照されるべき関数 LinuxX11_KeySymName を含むソースファイル src/gui/sdlmain_linux.cpp 全体ではちゃんとコンパイルされているが定義されたシンボルを全く含まないのだそうで、つまり関数の定義部分がコンパイルを通ってないということか。はあ?という感じやな。

Dosbox-X をビルドする際の ./configure オプションでは SDL がインストールされた場所を指定できるものがあって、おそらくこの変更されたヘッダファイルを指定するにはそれを用いて Dosbox-X 内 SDL をビルドした後に指定すればいいのだろうか。

そこで別途自力でSDLをビルドしようとしたのだけど、これはこれで失敗した。どうも SDL-1.2.15 リリース以降に発見されたバグ があってそれが悪さをしている。1.2.16はまだ出てないので、すくなくともSDLをビルドするには1.2.15に手動でパッチ当てんとならんというところまでは理解した。

ということで、Dosbox-Xのビルドのためにまず付属のSDL-1.2.15にパッチを当てるところからやりましょうという話になりそうだ。とはいえ bugzilla への報告がまるまる5年前なので、それ以降のアップデートがないところを見ると今後も1.2.16がリリースされる期待はせんほうがいいのかしらね。

(※追記) ここで書いたことは嘘です。とりあえずビルドはできた。

0 件のコメント:

コメントを投稿