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

[FDclone-users:00080] Re: AIX でのコンパイルエラーについて



 しらいです。

In Message-Id <88924.1044376407@ideon.st.ryukoku.ac.jp>
        KOJIMA Hajime / =?ISO-2022-JP?B?GyRCPi5FZ0glGyhC?= <kjm@rins.ryukoku.ac.jp>さんwrites:
>   超久しぶりに AIX な機械に login したら、まあ遅くて遅くて……。
>   いや実際、本来は廃棄されているべき機械だからなあ。

 ひょっとして Linux Zaurus よりも遅いとか?実機を swap 無し
で動かすと相当重くなって、FD-2.02a での「time make」の結果が
「real 4m20.522s user 3m28.150s sys 0m39.220s」といったとこ
ろです。
 うちで一番遅いのは DX4 な PC-9821 上の BOW かな。こいつだ
と同じものが平気で 20 分以上かかってます。


> |  そもそも「SVR4」という分類が曖昧で、営業的な謳い文句に過ぎ
> | ないことも多いので、何を信じてその OS が SVR4 であるとすれば
> | 良いのかが良く判りません。
>  
>   なるほど……困ったものですね。 

 IRIX なんかは POSIX 関数を網羅していないのに SVR4 を名乗っ
ていたりして、相当悩まされました。FDclone では SYSV 扱いにし
ています。
 SYSV 陣営では R3 -> R4 の間が相当開いていて、この間に BSD
や SunOS から独自に追加した「SVR3+α」が大量に現れました。こ
の「+α」の部分を称して「SVR4」を名乗っている OS が少なから
ず存在するようです。
 AIX もひょっとするとそういった経緯があるのかも知れませんね。


> |  因みに、AIX 4.1 ではどこに落とすのが最適なんでしょうか?上
> | の優先順位に当てはまれば良いのですが。
>  
>   AIX 4.1 は sys/sysmacros.h だけを持っています。

 その sysmacros.h の中で major/minor macro は #define され
ているでしょうか?もし #define されている場合、その記述は実
際の filesystem と合っているでしょうか?
 また、もし #define されていない場合、major/minor が 32bits
拡張されているでしょうか?32bits 拡張時は major/minor がそれ
ぞれ 14bits と 18bits になっています。
 どちらにせよ、/dev を FDclone 経由で覗いた場合と ls -l で
覗いた場合とで、device major/minor 番号が一致していえば構い
ません。


> |  んー、その辺りの code は 1.03 の頃からずっとそのままなので、
> | 小島さんが AIX 4.1 で動作確認して下さっている筈なのですが。
> | 私は実機を持っていないのでその報告を信じるしかない訳で。
> 
>   困った事に、もとのままでもコンパイル通ってしまうので……。さっき
>   man してみたら引数が 2 つしかなくて「あれ?」と思ったのです。

 statfs.h の prototype 宣言が modern type になっていないか、
cc が strict ANSI になっていないかなんでしょうね。


> |  因みに 2 つあるのは BSD の流儀なので SYSV 陣営な AIX が 4
> | -> 2 という変遷を辿るのは妙ですね。多分 AIX 4.x では statfs()
> | ではなく statvfs() の方を使うというのが正しいのかも知れませ
> | ん。
> 
>   なるほど。

 FDclone の扱っている OS の中で、SVR4 なのに statvfs() を使
わないのは AIX だけです。POSIX 関数ですからね。尤も POSIX を
満たしている保証はありませんけど。
 試しに #define USESTATVFSH して試してみて下さい。USESTATFSH
の方は消さなくても上書きされる筈です。


> |  因みに fdsh や EXECUTE_SH で手動で起動された外部コマンドは
> | どうなんでしょう?cat だと端末制御は関係ないと思うので、多分
> | process 制御で失敗していると思うんですが。
> 
>   このあたりは明日 (って日付変更線超えているけど……) 調べてみます。

 多分こっちの方が致命的だと思うので、ちょっと頑張ってみて貰
えますか?spark64 で挙動がおかしいという話も出ているので、こ
の fork() & exec() 周りは何か間違えている可能性が大きいと思
います。

                                               しらい たかし