Linux/PPC(Debian)でkakasiが動かない原因

ひらがな、カタカナ、英数のみ(漢字なし) → 動く
漢字あり → 動かない
まずはデバッガにつっこむより一連の動作の流れが手っ取り早く分かりやすい strace でシステムコールを追ってみると kanwadict の読み込みがおかしいのがすぐに分かった。
_llseek(3, 41488384, [41488384], SEEK_SET) = 0 と、いかにも怪しい挙動が。
事前にいくらか辞書を読んでいるので、これはインデックスを読んで飛んでいるんだろうが変なとこにいくのはエンディアンの違いのせい? と考えて、kakasiを取ってきてビルド & 新しい辞書ファイルのテストをすると、テストプログラムの動作も OK になった。

以上、ソースを一切読まずに挙動だけで推測したけど、辞書ファイルのエンディアンのせいでFA? データ系はプラットフォームごとに分けてないのでリトルエンディアンの辞書だったんだろう…。こういう問題は deb のメンテナにメールすればいいのかな。

コメントをどうぞ