Caution |
NetBSD 7.0 (たぶん 5.2 あたり以降)では、 mule のコンパイルもできないので、あきらめました。 現在 NetBSD 7.0 上では Emacs 24 (X11 なし) で、日本語入力に anthy を使っています。 |
そこまでして Emacs 19.28 とか 19.34 を愛する人たちがいるのです(キリッ)
Caution |
mule 2.3 nb6 以降、うまくコンパイルできません。orz だれか直して〜 デバッグメモは こちら へ。 |
Important: チェックポイント
□ ターゲット /usr/pkgsrc/editors/mule □ /etc/rc.conf 不要 □ 設定ファイル 不要(カスタマイズを ~/.emacs ですることはある) □ 動作の確認 mule が起動してくればOK
注意: # や % の意味が分からない人は 用語 を参照してください。
% su root # cd /usr/pkgsrc/editors/mule # make install
Caution |
2011/04 以降: make packege ではなく make install を使ってください。 事情の詳細は the Section called 2011 春: make install および make package の動作が変わる in the Chapter called NetBSD サーバの構築 節を参照してください。 |
まず wnn canna なしでもコンパイルできること。 次に 19.28 ベースの mule と 19.34 ベースの mule を別のパッケージにする。
こんなの?
pkgsrc/editors/mule/common.mk pkgsrc/editors/mule-19.28/ pkgsrc/editors/mule-19.34/
まぁ、よくわからないのですが、 emacs のメモリ管理まわり (該当ファイルは mule/src/alloc.c) の問題らしいことだけはわかっています。
gcc が厳しくなって or オプティマイザがおかしくて健在化?という気もしますが… gcc の最適化を切っても事態は変わらないので、ちがうような。
(1) 初回起動時かどうか?を見るフラグ: 整数変数 initialized がきちんと 0 になっていない。 このために make_uninit_string() という関数で segmentaion fault が起きます。 ただし、つねに起きるわけではないので、0 になったりならなかったり。 別のプロセスなのに前のプロセスの変更した値が見えているかのようなヤナ動き;)
修正は emacs.c の中にあるグローバル変数
int inialized;を
int inialized = 0;に変更してコンパイル。
先にすすんで、こんどはヒープのところで落ちるようになりますが、 とりあえず、一歩すすめました ;-)。 先は長い。
(2) gcc の最適化を切っても事態は変わらない。
(3) 現状は?
NetBSD/amd64 6.1.2 は allo.c 1625 行で無現ループ?
mark_object ((Lisp_Object *) &ptr->value);
NetBSD/i386 5.1.2 は gmalloc.c の 639 行目でエラー: フリーリストの管理をはじめる部分
_heapinfo[block + blocks].free.sizeへ代入するところで落ちる。
p.s.
この freebsd.h の直し方が参考になる?(試してない)
Copyright (C) 1993-2022 Ken'ichi Fukamachi mail:< fukachan at fml.org >