2012年1月29日日曜日

CentOS5.7 mhddfsのmake時のwarningを解消する

気持ち悪い、というかちゃんと動いていない気がするので、warningの解消を試みました。

■結論
CentOS5.7には入れられません。後日CentOS6への移行を試みます。

■xattr問題
警告:src/main.c:37:24: 警告: attr/xattr.h: そのようなファイルやディレクトリはありません
原因:CentOS5.7では sys/xattr.h に入っている。
対策:シンボリックリンクを作ってお茶を濁す。

mkdir /usr/include/attr
ln -s /usr/include/sys/xattr.h /usr/include/attr/xattr.h

■lutimes問題
警告:main.c:(.text+0x1ca9): warning: warning: lutimes is not implemented and will always fail
原因:Linuxシステムコールlutimesはglibc2.6で追加されたもの。CentOS5.7は2.5なので、搭載されていない。
対策:utimesに変えてしまえ。
注意:正常に動作しない場合がありそうな気がする。
utimesに変えると、シンボリックリンク自体のタイムスタンプを変えられなくなる。シンボリックリンクのリンク先ファイルのタイムスタンプが書き変わってしまう。シンボリックリンクを使わなければ問題にならないのでよしとする・・・ と思ったんですが、GlusterFSでミラーするのに正しくタイムスタンプが変えられないのは深刻な問題のような気がするので、今回の用途としてはCentOS5.7では安心しては使えなさそうな気がしました。

2012/1/29追記
> futimes() is available since glibc 2.3. lutimes() is available since glibc 2.6, and is implemented using the utimensat(2) system call, which is supported since kernel 2.6.22.
CentOS5.7の最新kernelは2.6.18なので、純正環境ではどうあがいても無理ですね。はい。

0 件のコメント: