Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: SCO Open Server compilation problem



竹迫です。

"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>