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

[FDclone-users:00221] Re: build error on FreeBSD 5.x



 しらいです。

In Message-Id <86wuf6ik6x.knu@iDaemons.org>
        "Akinori MUSHA" <knu@iDaemons.org>さんwrites:
>  要は u_char が定義されていないということです。2.03b との差分を
> 見る限りでは、 system.c にも
> 
> #ifndef	__SYS_TYPES_STAT_H_
> #define	__SYS_TYPES_STAT_H_
> #include <sys/types.h>
> #include <sys/stat.h>
> #endif
> 
> を追加すればよさそうな気がしますが、どうでしょう。

 system.c から include されている pathname.h にその記述があ
るので、system.c に書く必要はないと思います。また、doscom.c
も似たような状況なので、system.c だけの対処では済まないでし
ょう。
 つまり、その記述が kctype.h 自体にあればいいんですよね?

 <sys/types.h> はあちこちの source から参照してあったのです
が、一部 OS では <sys/types.h> の中で二度読みを防止する策を
講じていなかったために warning が出る訳です。
 そのために、二度読み防止のための仕組みを FDclone 側で用意
したのですが、どことどこに必要になるかの検証が不十分だったよ
うです。

 他の環境でどうして平気なのかと思ったのですが、単に header
間の依存関係によるみたいですね。<sys/types.h> は大概他からも
参照されているので。
 FreeBSD の場合、例えば <stdio.h> は 2.x -> 3.x の時にこの
<sys/types.h> の参照をやめたようです。代わりに今は <sys/_types.h>
を参照しているんですが、その中には u_char はないもので。

                                               しらい たかし