From: SATOH K. <ken...@a3...> - 2002-06-16 14:33:36
|
こんばんは、さとうです。 On 2002.06.10, at 13:14, Seiichi SATO wrote: > sourceforge.net のコンパイル環境で試したところ、current cvs と 2.4.0 が > 修正することなく Mac OS X で make できました。 ありがとうございます。m(__)m と同時に私が舌足らずで申し訳ありませんでした。 Mac OS X(Darwin) での mlterm ですが、先日示しました環境で、 幾つかの点を除いて、私の利用している範囲では問題なく動作しています。 -lc や -lm の問題は locale に関する問題です。 mlterm の話題から離れてしまいますが、お話します。 まず、Darwin は次のようにシステムライブラリを構成しています。 $ ls -l /usr/lib|grep libSystem.dylib lrwxr-xr-x 1 root wheel 17 Jun 5 08:55 libSystem.dylib -> libSystem.B.dylib lrwxr-xr-x 1 root wheel 15 Jun 5 08:55 libc.dylib -> libSystem.dylib lrwxr-xr-x 1 root wheel 15 Jun 5 08:55 libcurses.dylib -> libSystem.dylib lrwxr-xr-x 1 root wheel 15 Jun 5 08:55 libinfo.dylib -> libSystem.dylib lrwxr-xr-x 1 root wheel 15 Jun 5 08:55 libkvm.dylib -> libSystem.dylib lrwxr-xr-x 1 root wheel 15 Jun 5 08:55 libm.dylib -> libSystem.dylib lrwxr-xr-x 1 root wheel 15 Jun 5 08:55 libpthread.dylib -> libSystem.dylib 御覧頂いて分かるように、libc、libm 等が libSystem にシンボリックリンク されています。つまりそれらを libSystem の一部として持っています。また、 libSystem は暗黙にリンクされますので、-lc や -lm を取り去っても害にな りません。 さて、locale を操作する関数は libc が持っていますが、実装に不備があり、 正しく動作しません。その為、X_LOCALE を利用するか、libxpg4 を利用する のが現在の解決策としてネット上で解説されています。 このうち、X_LOCALE は XFree86 4.2.0 では正しく動作しないため、libxpg4 を私は利用しています。 ネット上の解説では libxpg4 を利用するときには、それを、実行するプログ ラムに先だって読み込む事で libxpg4 中の関数を優先させる手法(Linux で は PRELOAD(?)でしたか…)が解説されていますが、この手法は setuid され たプログラム([xk]term など)に対しては無効なため、私はそれを XFree86 に組み込んでいます。 その為か libkik 作成時に libxpg4 が自動的に参照されています。このため -lc や -lm が無くなると locale 関数の競合が無くなり具合が良いのです。 # 一番具合が良いのは locale 関数が正しく libc に実装されることですが。 なんにしても、Mac 上で作成した日本語フォルダ名がそのまま使えたり、いろ ものと解説されていますがホイールマウスでスクロールできたり、mlconfig という設定ツールが使えたりで、mlterm、とても気に入っています。 いつか来た道と感じる方もいらっしゃるかも知れませんが、locale が解決で きれば mlconfig に日本語が表れてくれそうですので、現在自分の導入したラ イブラリ群の見直しを含めて進めています。 次回は locale をクリアして、現在幾つか気になっている所を質問したいと 思いますので、今後ともよろしくお願い致します。 ξ 佐藤 謙( SATOH Ken ) □P ken...@a3... |