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

[FDclone-users:00667] Re: Linux 2.6.18 で dosdisk.c コンパイルエラー (_syscall5 マクロ)



 しらいです。

In Message-Id <061210115820.M0103933@mix.syd.odn.ne.jp>
        <hma@syd.odn.ne.jp>さんwrites:
> 濱崎です。

> がありました。syscall の引数の先頭に __NR__llseek を渡せばいいようです。

 より互換性を上げるのなら「SYS__llseek」にした方がいいかも
知れません。でも、この辺の作法が Linux kernel や libc に依存
しているようなので、syscall(2) の使用は避けたいところです。
 特に llseek() は余り標準的な system call ではないために、
バージョン依存が激しかったと記憶しています。


> _syscall5の定義が __KERNEL__ に囲まれているかどうかに応じて使い分けるとすると、
> 以下のようになると思います。

 _syscall5 が未定義の環境となると Linux の中でも限られて来
ると思うので、その条件でのみ syscall(2) を使うということであ
れば多少は互換性も出て来ると思います。
 しかし、互換性に無頓着な Linux のことなので、それが今後ど
のくらい通用するのか不安ではありますね。


> __KERNEL__を定義するのに比べると、少し煩わしいですね。

 当面は私の書いた方の patch を適用しようと考えていますが、
あの patch で何か不都合があるようなら言って下さい。
 因みに、llseek() が有効になっているか否かは、総容量が 4GB
を超える FAT partition を setdrv で設定しておいて、実際にア
クセス出来るかどうかを試してみるといいでしょう。
 例えばこんな感じかな。
	setdrv C "/dev/hda2" HDD

# まぁ Linux なら msdosfs があるから機能としては要らないん
#だけどね。

                                               しらい たかし