[Yaffs] yaffs 2.6.29 patch

トップ ページ
添付ファイル:
Eメールのメッセージ
+ (text/plain)
このメッセージを削除
このメッセージに返信
著者: Alexandros C. Couloumbis
日付:  
To: yaffs
題目: [Yaffs] yaffs 2.6.29 patch
Greetings,

I am trying to get yaffs compiled under linux-2.6.29-rc3-git5 for
openwrt/mipsel using gcc-4.3.3, uclibc-0.9.30 and binutils-2.19

here is a patch that fixes some issues:

--- linux-2.6.29-rc3/fs/yaffs2/yaffs_fs.c.orig  2009-02-03 20:10:33.000000000 +0200
+++ linux-2.6.29-rc3/fs/yaffs2/yaffs_fs.c       2009-02-03 19:36:18.000000000 +0200
@@ -1234,8 +1234,14 @@
        yaffs_Object *parent = yaffs_InodeToObject(dir);


        int error = -ENOSPC;
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
        uid_t uid = current->fsuid;
        gid_t gid = (dir->i_mode & S_ISGID) ? dir->i_gid : current->fsgid;
+#else /* 2.6.29 and higher */
+        uid_t uid = current->cred->fsuid;
+        gid_t gid = (dir->i_mode & S_ISGID) ? dir->i_gid :
current->cred->fsgid;
+#endif /* 2.6.29 check */


        if((dir->i_mode & S_ISGID) && S_ISDIR(mode))
                mode |= S_ISGID;
@@ -1414,8 +1420,14 @@
 {
        yaffs_Object *obj;
        yaffs_Device *dev;
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
        uid_t uid = current->fsuid;
        gid_t gid = (dir->i_mode & S_ISGID) ? dir->i_gid : current->fsgid;
+#else /* 2.6.29 and higher */
+       uid_t uid = current->cred->fsuid;
+       gid_t gid = (dir->i_mode & S_ISGID) ? dir->i_gid :
current->cred->fsgid;
+#endif /* 2.6.29 check */


        T(YAFFS_TRACE_OS, (KERN_DEBUG "yaffs_symlink\n"));


the linker though produces the following error:

fs/built-in.o: In function `yaffs_internal_read_super':
yaffs_fs.c:(.text.yaffs_internal_read_super+0x7c8): undefined reference
to `__udivdi3'
yaffs_fs.c:(.text.yaffs_internal_read_super+0x7c8): relocation truncated
to fit: R_MIPS_26 against `__udivdi3'
make[5]: *** [vmlinux] Error 1
make[5]: Leaving directory
`/develop/openwrt/rb532/trunk/build_dir/linux-rb532/linux-2.6.29-rc3'
make[4]: ***
[/develop/openwrt/rb532/trunk/build_dir/linux-rb532/linux-2.6.29-rc3/.image]
Error 2
make[4]: Leaving directory `/develop/openwrt/rb532/trunk/target/linux/rb532'

best regards,

--
Alexandros C. Couloumbis
http://dev.ozo.com/