[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[FDclone-users:00662] Re: Linux 2.6.18 で dosdisk.c コンパイルエラー (_syscall5 マクロ)
- Subject: [FDclone-users:00662] Re: Linux 2.6.18 で dosdisk.c コンパイルエラー (_syscall5 マクロ)
- From: Takashi SHIRAI <shirai@unixusers.net>
- Date: Thu, 07 Dec 2006 22:16:29 +0900
しらいです。
In Message-Id <061207213712.M0109229@mix.syd.odn.ne.jp>
<hma@syd.odn.ne.jp>さんwrites:
> こんばんは、濱崎です。
> このファイルは、Linux カーネルソース由来のファイルで、
> Debian では linux-kernel-headers パッケージに入っています。
> __KERNEL__ による条件分岐は 以前はなかったので、
> 2.6.{15,16,17} あたりで入ったものと思います。
>
> llseek の man page を見てみると syscall(2) を使うことを勧めています。
> 根本的な解決をするには、呼び出し方法を変える必要があるのでしょうね。
2.6-kernel の最新版が手元に無いので確認し切れません。HP の
testdrive でも 2.6.8 が最新でした。Linux って kernel source
を CVS で公開してたりはしないんでしょうか。
その「syscall(2) を使え」という下りは古い kernel 環境だと
記述が存在しないんですが、具体的にどうしろと言ってるんでしょ
うか?
下手に syscall(2) を使うと古い kernel 環境で互換性が無くな
ってしまうので、出来るだけ大きな変更はしたくないんですが。む
しろ __KERNEL__ を定義してしまう方が無難な解かも知れません。
そもそも llseek(2) を使っているのは古い Linux 用なんですよ。
新しめの Linux なら -D_FILE_OFFSET_BITS=64 が効くから普通の
lseek(2) で十分だし。
その肝腎の古い Linux で使えなくなるようだと本末転倒なので、
新旧どの Linux も救済される仕組みを選ばなくてはなりません。
頭の痛いところです。
元々 Linux という文化は多分に ad-hoc に出来ているので、過
去との互換性とか継承性とか重視しないんですよね。CVS がないっ
てのもその傍証の一つだし。
しらい たかし