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

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



 しらいです。

In Message-Id <79769.1044365656@ideon.st.ryukoku.ac.jp>
        KOJIMA Hajime / =?ISO-2022-JP?B?GyRCPi5FZ0glGyhC?= <kjm@rins.ryukoku.ac.jp>さんwrites:
>   machines.h の
> 
> #ifdef  SVR4
> #define SYSV
> #define USEMKDEVH
> #endif
> 
>   と browse.c の
> 
> #ifdef  USEMKDEVH
> #include <sys/mkdev.h>
> #else
> # ifdef USEMKNODH
> # include <sys/mknod.h>
> # else
> #  ifdef        SVR4
> #  include <sys/sysmacros.h>
> 
>   は矛盾するような気がするのですが、SVR4 の場合はどうなることが予
>   想されているのでしょう。なお、AIX 4.1 には sys/mkdev.h はありま
>   せん。

 典型的な SVR4 には sys/mkdev.h があるのですが、もしそれを
持たないような SVR4 があるのならば、sys/sysmacros.h を見て、
それでも major/minor が無ければ 64bits 拡張された major/minor
を使いましょう、という意味です。
 SVR4 の場合、優先順位が sys/mkdev.h -> sys/sysmacros.h ->
64bits major/minor となっています。

 machine.h で SVR4 -> USEMKDEVH となっているのは、その例外
を見つけられなかったからで、AIX という実例が出て来た以上、こ
の記述は AIX 以外の SVR4 に分散して記述すべきなんでしょうね。
 そもそも「SVR4」という分類が曖昧で、営業的な謳い文句に過ぎ
ないことも多いので、何を信じてその OS が SVR4 であるとすれば
良いのかが良く判りません。

 因みに、AIX 4.1 ではどこに落とすのが最適なんでしょうか?上
の優先順位に当てはまれば良いのですが。


>   AIX 4.1 でも statfs() の引数は 2 個でした。4 つあるのは AIX 3.2
>   以前のようです。

 んー、その辺りの code は 1.03 の頃からずっとそのままなので、
小島さんが AIX 4.1 で動作確認して下さっている筈なのですが。
私は実機を持っていないのでその報告を信じるしかない訳で。
 因みに 2 つあるのは BSD の流儀なので SYSV 陣営な AIX が 4
-> 2 という変遷を辿るのは妙ですね。多分 AIX 4.x では statfs()
ではなく statvfs() の方を使うというのが正しいのかも知れませ
ん。
 その辺りの周辺状況から見ると、AIX 3 -> AIX 4 の過程で SYSV
-> SVR4 に変わったと見るべきなんでしょうか。


>   -PAGER=: はだいじょうぶです。
>   -PAGER=cat では Killed になります。

 だとすると fork() & exec() で失敗していそうですね。memory
管理?
 因みに fdsh や EXECUTE_SH で手動で起動された外部コマンドは
どうなんでしょう?cat だと端末制御は関係ないと思うので、多分
process 制御で失敗していると思うんですが。

                                               しらい たかし