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

[FDclone-users:00691] Re: Linux 2.6.18 での 2.09b + 00673 パッチコンパイル・実行結果



 しらいです。

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
#の実装にはバグが多くて使いものになりませんよね。

                                               しらい たかし