[Canna-dev 173] Re: AIX でのコンパイルエラーについて

Back to archive index

AIDA Shinra aida-****@jcom*****
2003年 2月 3日 (月) 17:26:17 JST


相田です。
> > #ifdef AIXV3
> > # include <sys/select.h>
> > #endif
> > という部分がconnection.cとWaitFor.cにありますが、ここはV3だけでなく、
> > POSIXなら必ずincludeしなければならないようです。ここをif 1にするとどう
> > なりますか?
> 変化ありませんでした。
> -DAIXV3 が引数についてコンパイルされていますし、ある意味当然なんでしょう。
普通はfd_setがそこで定義されているはずだと思うのですが、どこか違う場所
で定義されているのでしょうか?これもgrepしてくれると助かります。どこに
も無いなら、IR.hのifdef hpuxの部分を有効にすれば一応は動くと思います。

> > これは、protodef.hの最初のifndef CBUFSIZEのために、Ushort,BYTEが未定義
> > になるのが原因のようです。ここのtypedefはifdefの外に出ているのが正しい
> > はずです。ただ、普通はCBUFSIZEはここではdefineされていないと思うのです
> > が、ひょっとしてシステムのヘッダにCBUFSIZEがあるのかもしれません。もし
> > そうならまずいので、/usr/includeをCBUFSIZEでgrepした結果を教えてくれま
> > せんか?
> $ cd /usr/include
> $ find . -type f -print | xargs grep CBUFSIZE
> $
> という結果になりました。 define はされていないようです。
> また、 
> typedef unsigned short Ushort;
> typedef unsigned char BYTE;
>> #ifndef CBUFSIZE
> の前に出してから make canna を実行しても、現象に変化がありません。
これはかなり変ですね。まさかBYTEがシステム定義のマクロになっているとか?
それとも、fd_setでこけているせいで、全てがおかしくなっているのでしょう
か?

> 順序を変えさせていただきます。
> > もう一つ気になるのは、-DLONG_BIT=64という部分ですが、64ビットの環境で
> > すか?もしそうなら多分まともに動かないと思います。64ビットOSの事情はよ
> > く分からないので、32ビットでのコンパイルはimakeのオプション程度で出来
> > るのかどうか等教えてください。
> うーん、 フル 64bit であること最大に売りにしている OS なので 32bit には
> ならないかと思います。
> この環境は、将来 64 bit OS に対応した時点で試すことにします。
> この環境が正常な環境かどうかにも、疑問があるので。
32bitバイナリを動かせる仕組みがもしあるなら、configファイルをでっちあ
げてgccを使う、という大技があるのでしょうが、64ビットにきちんと対応す
るのが本筋でしょうね。一応64ビット対応を考えている形跡はあるので、修正
はそれほど多くないと思いますが、なにせテスト環境が無いもので。

> > あと、できれば私にlib/X11/config/の下を送ってください。
> /usr/lib/X11/config 以下のファイルを、 tar.gz で固めてお送りします。
ありがとうございます。これから詳しく調べます。

> #> 0をnull pointerとして見てくれないのはコンパイラが悪いのでしょうが。
> #これについては、信条的に同意できないのですが、本筋ではないので...
ISO C的にはキャスト無しの0がnull pointerになるべきで、とくに関数ポイン
タとデータへのポインタでサイズが違うシステムでは、void *にキャストする
と逆にまずいことになります。まあ、普通のUNIXでそれは無いでしょうから、
一応受け付けるけれどもwarning、というのは正しいかも知れません。



Canna-dev メーリングリストの案内
Back to archive index