読者です 読者をやめる 読者になる 読者になる

Imager::AnimeFaceのビルドと実行環境

実はビルドが一番不安で、なぜ不安なのかというと僕がさまざまなOS環境やリンクやローダーについてあまりよく分かっていない部分があるからです。
うまくいったとかダメだったとかあれば教えてもらえるとありがたいです。
OSに依存した部分はImagerとCLAPACKのなかで完結していて、libnvxsとImager::AnimeFace的には、そのふたつにリンクできれば動くはずなので、コンパイラオプションとローダーの環境変数などが失敗する原因だと思っています。

僕自身がはまったこととして、CGIで動かす場合は、LD_RUN_PATHを設定してからライブラリをコンパイルするか、Apache環境変数にLD_LIBRARY_PATHを追加しないと、XSのローダーがライブラリを見つけられず実行時エラーになる、というのがありました。

今のところ発覚していることとして、

  • -march=nativeはgcc 4.2以降でないと使えないのでgccがそれより古い場合は消さないといけない…
  • Macでexample1.plの実行時に_f2c_sgemvのシンボルが見つからないと実行時エラーになる (libblas.a[blas_LINUX.a]にあると思うけどリンクできてない?)

があります。

  • -mfpmath=sseも消す(4/13 12:00)
  • Mac OSで_f2c_sgemvのシンボルエラーが出るのは、すでにlibblas.dylibが存在していてそっちがリンクされているから…、libblas.aとliblapack.aを別の名前に変えるなど (4/13 12:00)
  • PowerPCで動かすにはnv_core/nv_config.hのNV_ENABLE_SSE2を0にしないといけない、判定いれる (4/13 12:00)