[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[FDclone-users:00691] Re: Linux 2.6.18 での 2.09b + 00673 パッチコンパイル・実行結果
- Subject: [FDclone-users:00691] Re: Linux 2.6.18 での 2.09b + 00673 パッチコンパイル・実行結果
- From: Takashi SHIRAI <shirai@unixusers.net>
- Date: Tue, 27 Mar 2007 21:57:01 +0900
しらいです。
In Message-Id <070109233610.M0305962@mix.syd.odn.ne.jp>
<hma@syd.odn.ne.jp>さんwrites:
> 濱崎です。
> Linux 2.6.18 で、
> 1., 2. は OK でした。
この件、また蒸し返してしまいますが本当に大丈夫なんでしょう
か?
今日たまたま Fedora Core 6 の環境を覗いていたんですが、そ
の環境では /usr/include 以下どこにも _syscall5 が見当たりま
せんでした。
FC6 は kernel 2.6.18 なんですが、同じ kernel でも構成が異
なるんでしょうかね?
で、色々考えてみたんですが、kernel 2.6 以降になると glibc2
を使ってる筈なので、多分以下の patch のように lseek64() が使
えるんじゃないかと思いますがどうでしょう?
glibc に lseek64 が入った時期が特定出来ないのと、仮に特定
出来たとしてそれ以前の glibc を kernel 2.6 以降に組合わせる
実装に対する保証がないのとが不安として残りますが。
---- Cut Here ----
diff -u ../old/FD-2.09c/dosdisk.c ./dosdisk.c
--- ../old/FD-2.09c/dosdisk.c Wed Jan 17 00:00:00 2007
+++ ./dosdisk.c Tue Mar 27 21:23:10 2007
@@ -87,13 +87,7 @@
#ifdef LINUX
#include <mntent.h>
#include <sys/mount.h>
-# ifdef USELLSEEK
-# define __KERNEL__ /* For _syscall5() on Linux kernel >=2.6.18 */
-# endif
#include <linux/unistd.h>
-# ifdef USELLSEEK
-# undef __KERNEL__
-# endif
# ifndef BLKFLSBUF
# include <linux/fs.h>
# endif
@@ -238,10 +232,14 @@
#endif /* !FD */
#ifdef USELLSEEK
+# ifdef _syscall5
static l_off_t NEAR Xllseek __P_((int, l_off_t, int));
-#else
-#define Xllseek lseek
-#endif
+# else
+#define Xllseek lseek64
+# endif
+#else /* !USELLSEEK */
+#define Xllseek lseek
+#endif /* !USELLSEEK */
#if !MSDOS
static int NEAR sectseek __P_((devstat *, u_long));
#endif
@@ -1081,7 +1079,7 @@
}
#endif /* !FD */
-#ifdef USELLSEEK
+#if defined (USELLSEEK) && defined (_syscall5)
static _syscall5(int, _llseek,
u_int, fd,
u_long, ofs_h,
@@ -1104,7 +1102,7 @@
return(result);
}
-#endif /* USELLSEEK */
+#endif /* USELLSEEK && _syscall5 */
#if !MSDOS
static int NEAR sectseek(devp, sect)
---- Cut Here ----
# 過去を捨て去って顧みないという Linux スタンスは、新しい
#機能や枠組にシフトし易いというメリットもあるんだが、現状で
#はむしろ弊害の方が大きいと思う。
# 他にも例えば、2.6 になって cifs が出来たために smbfs を
#無効にして出荷している distribution が多いようですが、cifs
#の実装にはバグが多くて使いものになりませんよね。
しらい たかし