mule-2.3 with ja-FreeWnn-lib 1.11alpha22 が build の途中で temacs から emacs を作った後で、
emacs を(初めて)起動するところで、落ちる。
ln -s ../lwlib/liblw.a liblw.a
./emacs -batch
-l /export/pkgsrc/editors/mule/work/mule/src/../lisp/mule-diag.elc
-f dump-charset
gmake[1]: *** [../etc/charset] Segmentation fault (core dumped)
gmake[1]: Leaving directory `/export/pkgsrc/editors/mule/work/mule/src'
- 9/13
に調べた stack back trace
main -> set_process_environment -> build_string -> make_string -> make_uninit_string
この中で見えている TIMEFMT=%U .. の文字列は、その時に設定されている環境変数
- unsetenv TIMEFMT すると、stack trace の文字列は変化する
Program terminated with signal 11, Segmentation fault.
#0 0xbb47fcf7 in kill () from /usr/lib/libc.so.12
Environment variable "DISPLAY" not defined.
TERM = xterm
Breakpoint 1 at 0xbb527cfd
Breakpoint 2 at 0x8064366: file xterm.c, line 5225.
(gdb) bt
#0 0xbb47fcf7 in kill () from /usr/lib/libc.so.12
#1 0x08084049 in fatal_error_signal (sig=11) at emacs.c:225
#2 <signal handler called>
#3 0x080b60f4 in make_uninit_string (length=11) at alloc.c:933
#4 0x080b6231 in make_string (contents=0xbf7ffdda "USER=makoto", length=11) at alloc.c:912
#5 0x080b6278 in build_string (str=0xbf7ffdda "USER=makoto") at alloc.c:921
#6 0x080daa0f in set_process_environment () at callproc.c:1228
#7 0x08083957 in main (argc=6, argv=0xbf7fec90, envp=Cannot access memory at address 0x8
) at emacs.c:722
(gdb)
alloc.c の行数 (:933) は同じ
930
931 if (length < 0) abort ();
932
933 if (fullsize <= STRING_BLOCK_SIZE - current_string_block->pos)
934 /* This string can fit in the current string block */
935 {
936 XSET (val, Lisp_String,
- 09/16
に、ja-freewnn-lib に含まれている部品 (PLIST) を比べて見た。
lib/libwnn.la が増えているのがちょっと気になる
- fprintf debug で見ると、malloc (gmalloc.c) で落ちている気がする
_heapinfo[0] 等と参照されている配列のポインタが初期化されていないまま
呼ばれていると見える
- 09/20
に見たところでは、__malloc_initialized が、( gmalloc.c:initialize() が初めて呼ばれる時から)
1 になっているのが変だな、という気がする
- ずうっと以前の、(と言っても 2011/09/15 日頃に更新する前まではそれだった) ja-freewnn-lib 1.10
だと落ちない
-
1.11alpha20
1.11alpha21
では落ちる。(それ以前で確認するのはちょっと面倒そう)
- 以前にあった何かのおまじないを消してしまったかな、と確認したが、 ja-freewnn-lib 1.10nb4 の
configure と configure.in にあった次のもの、
+ CCOPTIONS="-DCSRG_BASED"
+ CDEBUGFLAGS="-O2 -fno-strength-reduce"
+ CPP=/usr/bin/cpp
追加して見た。build の表示で、これらしい表示が出ていて、
このおまじないの戻しは効いていると思われるが、
落ちることに変わりがない。
- mule から
(..inputmethod/ja-freewnn-lib)% (cd ../../editors/mule/work/mule/src/; ldd emacs)
emacs:
....
-lutil.7 => /usr/lib/libutil.so.7
-lwnn.0 => /usr/pkg/lib/libwnn.so.0
....
と表示される libwnn の部品の動作に変化があるかないか ? の問題か、
でも、Segmentation Fault する地点は、その libwnn の中のようには見えない。
@
libtool: error: you must specify a MODE.:
そう言えば、ちょっと前の a019, a020 を build するに時は
libtool: error: you must specify a MODE.
と言われるので、一つ一つ --mode=compile とか書き足している。
libtool-1.x と libtool-2.x の違いかな。
@
1.11alpha019: