[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[FDclone-users:01006] Re: AIX上でのコンパイル時ワーニングについて
- Subject: [FDclone-users:01006] Re: AIX上でのコンパイル時ワーニングについて
- From: Takashi SHIRAI <shirai@unixusers.net>
- Date: Fri, 03 Aug 2012 22:01:37 +0900
しらいです。
In Message-Id <20120803131954.ab74ba50ed6724f77b08efa0@lightwell.co.jp>
SHIOTA Shoichi <Shoichi.Shiota@lightwell.co.jp>さんwrites:
> 潮田と申します。
> 3.01 のリリースを知り、久しぶりに version をあげてみました。
> コンパイル途中にワーニングが出ていますので報告いたします。
> # 今回初めて出るようになったものかは、調べておりません。
いえ、件の箇所は 0.99d で mntctl() に対応して以来ずっと同
じ cast 文字列になっていますので、多分 AIX 側の仕様変更によ
るもので、該当する AIX ではずっと出ていたと思われます。
> 少し調べたところ、
> 1. mntctl() の第3引数の型は、 AIX 5.3, 6.1 共に char *。
> # この2環境しか身近にありません。
> 2. machine.h で USEMNTCTL が define されるのは AIX の時だけ。
> でした。
Install 見て貰うと判りますけど AIX は 3.x/4.x のみ対応とい
うことになっています。4.x -> 5.x で AIX 側の include file が
宣言を変えたのかも知れませんね。
旧 AIX でどうなるかを考えてみると、warning なのであれば従
来どおりの実装にしておいた方が無難なのではないかと思います。
逆向きの型不一致だと warning で留まらないような気がします。
この辺りの code は GNU fileutils を参考にしていて、該当箇
所は今だと GNU coreutils に移管されているんですが、その最新
版 8.17 でも mntctl() の第三引数は struct vmount * ですね。
AIX は手元に持っていないので実際のところは定かではないので
すが、0.99d 当時は小島肇さんが AIX の面倒を見て下さっていて、
struct vmount * で無事 build 出来ているようでした。
小島さん自身はまだこの ML に参加されていますが、当時の AIX
環境は流石にもう残ってないでしょうかね?
> 次の新版のリリース時にでも、上の変更をいれていただければ幸いです。
OS や version の違いによって引数や返り値の型が異なるという
ことはままあって、それが実際に仕様の差異に起因している場合は
対応が必要ですが、そうでなければ黙認しているのが実状です。
例えば munmap(2) の引数って void * だったり caddr_t だった
りまちまちですが、各種 OS の正しい型を調べて warning を全て
解消しようとすると不必要な code の肥大化を招きます。
このケースでも、AIX の各 version を比較して然るべき型での
cast を実現したとしても、その調べる手間や増えた code 量に見
合うだけの効果が得られるかどうかは甚だ疑問です。
多分 GNU coreutils も同じような考えで放置しているんじゃな
いでしょうかね。
しらい たかし