namazu-ml(ring)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Text::kakasi/mknmz/perl (1.4.0.0-beta-8)core dumps
こんにちは、白井です。
From: "yoshihide hirose" <yoshihide@xxxxxxxxxx> さん曰く
Subject: [namazu 749] Re: Text::kakasi/mknmz/perl (1.4.0.0-beta-8)co
Message-ID: <199906010724.QAA10626@xxxxxxxxxxxxxx>
Date: Tue, 1 Jun 1999 16:25:08 +0900
knok> libkakasiを生成したときにコンパイラやコンパイルスイッチは
knok> 何を指定されましたでしょうか?
廣瀬> gcc 2.8.1で、デフォルトのままです。
% gcc -v
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.4/egcs-2.91.60/specs
gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release)
です。switch は デフォルトと -fPIC, -fpic 付きでやってみたのです
が、だめでした。また、Solaris 附属の ld を使うために
libkakasi.so: $(LIBOBJECTS)
$(LD) -dy -G -I libkakasi.so.2 -o libkakasi.so.2 $(LIBOBJECTS) -lc
### $(LD) -shared -soname libkakasi.so.2 -o libkakasi.so $(LIBOBJECTS) -lc
とかもやっています。./configuer & make の生活になれてしまってい
るので、このあたり良くわからないのですが、思考錯誤の結果です。^^;;;
だけど、libkakasi.a を直接以下の様に link して、
% gcc -g -o zzz zzz.c /usr/local/lib/libkakasi.a
--- zzz.c ---
#include <stdio.h>
#include <libkakasi.h>
main(argc, argv)
int argc;
char **argv;
{
/* char *arg[] = {"kakasi", "-JH"}; */
char *arg[] = {"kakasi", "-w", "-ieuc", "-oeuc"};
/* char *arg[] = {"kakasi", "-ijis", "-oeuc"};
これだけは日本語も動いた。*/
int argcount = 4;
char *res;
int i;
i = kakasi_getopt_argv(argcount, arg);
fprintf(stdout, "getopt: %d\n", i);
fprintf(stdout, "str: %s\n", argv[1]);
res = kakasi_do(argv[1]); <== ここで core dump
fprintf(stdout, "Res: %s\n", res);
i = kakasi_close_kanwadict();
fprintf(stdout, "close: %d\n", i);
}
--- zzz.c ---
としてもだめだったので、$(LD) の問題では無いような感じです。
# こんな試験(zzz)でいいのですか? それ以前にこれって動いているの
# かしら? `C' で日本語扱ったこと無いものでして……
入力に ASCII 文字列を指定したときは、動作しますが、
% ./zzz 本日は晴天なり
getopt: 0
str: 本日は晴天なり
Segmentation fault (core dumped)
となり、
% gdb ./zzz core
*** 古すぎるぞ gdb4.9 ***
Core was generated by `./zzz 本日は晴天なり'.
Program terminated with signal 11, Segmentation fault.
#0 0xef61751c in jisyo_table ()
(gdb) where
#0 0xef61751c in jisyo_table ()
#1 0xef64ee2c in jisyo_table ()
#2 0xef659bb0 in jisyo_table ()
#3 0x11a50 in main (argc=<error type>, argv=0xeffff39c) at zzz.c:20
な感じです。
From: knok@xxxxxxxxxxxxx (NOKUBI Takatsugu) さん曰く
Subject: [namazu 748] Re: Text::kakasi/mknmz/perl (1.4.0.0-beta-8)core dumps
Message-ID: <199906010610.PAA07471@xxxxxxxxxxxxxx>
Date: Tue, 1 Jun 99 15:08:01 JST
knok> あと藤原さんもちょっとお願いしたいのですが、Text::Kakasiをmakeした時
knok> のログを見せて頂けませんでしょうか。perl Makefile.PLを実行したときに
knok> -fpicもしくは-fPICのどちらを付加してコンパイルを行うのか確認したいので。
御参考までに、私の場合、
Perl 5.004_02 => -fpic
Perl 5.005_02 => -fPIC
になっていました。
しかし、思いっきりとりあえずなのですが、
廣瀬> 僕の使っているText::kakasiは
廣瀬> Text-Kakasi-0.10.tar.gz + kakasi-2.2.5w-lib1.diff
廣瀬> でした。
廣瀬さんのメールを読んで、Text-Kakasi-0.10.tar.gz +
kakasi-2.2.5w-lib1.diff で試したら、kanjiio.c に一行、おきまりの
#define bcopy(a,b,c) memcpy(b,a,c)
で動きました。しかし、すごく速いですねぇ。一日に数十回 mknmz す
る私はとってもうれしいです。
--
白井秀行 (mailto:shirai@xxxxxxxxxxxxxxxxxxx)