Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: SCO Open Server compilation problem
- From: "Yoshinori TAKESAKO" <yoshinori-takesako@xxxxxxxxx>
- Date: Fri, 31 Aug 2001 16:45:04 +0900
- X-ml-name: namazu-devel-ja
- X-mail-count: 01907
- References: <200108310643.PAA09467@mail1.rim.or.jp>
竹迫です。
"Ryuji Abe" <raeva@xxxxxxxxxxxx> wrote:
> namazu-devel-ja#01730の問題ですけど、その後Mikeさんに
> libtool 1.4を使ったnamazu-2.0.6rc4を試してもらったの
> ですが、やはりダメだったようです。一応、どういう環境
> か尋ねてみたのですが、未だ返事はきていません。(;_;)
>
> で、エラーの内容をあらためて見てみたのですが、
>
> Undefined first referenced
> symbol in file
> alloca ../nmz/.libs/libnmz.so
> .libs/namazu: fatal error: Symbol referencing errors. No output written to .libs/namazu
>
> allocaのsymbolが参照できてないように見えます。
だとすると、根本的な解決ではないかもしれませんが、
CFLAGS="-DNO_ALLOCA" ./configure && make
とすると、ユーザ側でこの問題は解決するのではないかと思います。
nmz/regex.c では、マクロ変数 NO_ALLOCA が定義されていると、
組み込み alloca を使用しない C言語による実装 (free と nmz_xrealloc) で、
擬似的に可変長配列を割り付ける動作をしてくれるようです。
スタック領域に直接割り当ててくれる、組み込み alloca よりも
多少オーバーヘッドがあるかもしれませんが、動作は確実だと思います。
nmz.dll を VC++ でコンパイルするときに同様の問題が発生したので、
とりあえず、CFLAGS に -DNO_ALLOCA を追加して対処しています。
# もっとうまいやり方があるのかもしれませんが、これ以上突っ込んでいません (^^;
興味がありましたら、Namazu 2.0.6 for Win32 の HACKKIT.tgz に含まれる
namazu/make-nmz-dll.sh のシェルスクリプトを参照してみてください。
外していましたら、すみません。
--
広島市立大学 情報科学部 情報機械システム工学科 知能ロボット講座
竹迫 良範 <takesako@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>