On Monday 11 January 2010 21:32:08 Cristian Cudizio wrote:
> Da: Charles Manning <manningc2@actrix.gen.nz>
>
> A: yaffs@lists.aleph1.co.uk
> Cc: Cristian Cudizio <cristian.cudizio@yahoo.it>
> Inviato: Lun 11 gennaio 2010, 00:41:47
> Oggetto: Re: [Yaffs] Error compiling on yaffs_fs.c
>
> On Saturday 09 January 2010 04:11:25 Cristian Cudizio wrote:
> > Hi,
> > i've downloaded via CVS yaffs2 sources on a Oracle Enterprise Linux 5U4
> > (equal to RH 5U4)
> >
> > but i've this errors on compilation :
> > include/linux/config.h:6:2: warning: #warning Including config.h is
>
> ....
>
> > What i'm missing?
>
> This will be due to some backporting messing up the conditional
> compilation.
>
> Try changing this:
> --- yaffs_fs.c~ 2010-01-11 12:39:36.000000000 +1300
> +++ yaffs_fs.c 2010-01-11 12:39:36.000000000 +1300
> @@ -151,7 +151,7 @@
>
> /*#define T(x) printk x */
>
> -#if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 18))
> +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18))
> #define yaffs_InodeToObjectLV(iptr) ((iptr)->i_private)
> #else
> #define yaffs_InodeToObjectLV(iptr) ((iptr)->u.generic_ip)
>
> There might be some other oddities too.
>
> -- Charles
>
> Thanks a lot, with that change i've got:
>
> [oracle@oel54test11gR201 yaffs2]$ make clean
> make -C /lib/modules/2.6.18-164.el5xen/build M=/home/oracle/yaffs/yaffs2
> clean make[1]: Entering directory
> `/usr/src/kernels/2.6.18-164.el5-xen-x86_64' CLEAN
> /home/oracle/yaffs/yaffs2/.tmp_versions
> make[1]: Leaving directory `/usr/src/kernels/2.6.18-164.el5-xen-x86_64'
> [oracle@oel54test11gR201 yaffs2]$ make
> make -C /lib/modules/2.6.18-164.el5xen/build M=/home/oracle/yaffs/yaffs2
> modules make[1]: Entering directory
> `/usr/src/kernels/2.6.18-164.el5-xen-x86_64' CC [M]
> /home/oracle/yaffs/yaffs2/yaffs_mtdif.o
> In file included from /home/oracle/yaffs/yaffs2/yportenv.h:42,
> from /home/oracle/yaffs/yaffs2/yaffs_mtdif.c:17:
> include/linux/config.h:6:2: warning: #warning Including config.h is
> deprecated. CC [M] /home/oracle/yaffs/yaffs2/yaffs_mtdif2.o
> In file included from /home/oracle/yaffs/yaffs2/yportenv.h:42,
> from /home/oracle/yaffs/yaffs2/yaffs_mtdif2.c:19:
> include/linux/config.h:6:2: warning: #warning Including config.h is
> deprecated. CC [M] /home/oracle/yaffs/yaffs2/yaffs_mtdif1.o
> In file included from /home/oracle/yaffs/yaffs2/yportenv.h:42,
> from /home/oracle/yaffs/yaffs2/yaffs_mtdif1.c:26:
> include/linux/config.h:6:2: warning: #warning Including config.h is
> deprecated. CC [M] /home/oracle/yaffs/yaffs2/yaffs_packedtags1.o
> In file included from /home/oracle/yaffs/yaffs2/yportenv.h:42,
> from /home/oracle/yaffs/yaffs2/yaffs_guts.h:20,
> from /home/oracle/yaffs/yaffs2/yaffs_packedtags1.h:21,
> from /home/oracle/yaffs/yaffs2/yaffs_packedtags1.c:14:
> include/linux/config.h:6:2: warning: #warning Including config.h is
> deprecated. CC [M] /home/oracle/yaffs/yaffs2/yaffs_ecc.o
> In file included from /home/oracle/yaffs/yaffs2/yportenv.h:42,
> from /home/oracle/yaffs/yaffs2/yaffs_ecc.c:34:
> include/linux/config.h:6:2: warning: #warning Including config.h is
> deprecated. CC [M] /home/oracle/yaffs/yaffs2/yaffs_fs.o
> In file included from /home/oracle/yaffs/yaffs2/yaffs_fs.c:40:
> include/linux/config.h:6:2: warning: #warning Including config.h is
> deprecated. /home/oracle/yaffs/yaffs2/yaffs_fs.c: In function
> ‘yaffs_commit_write’: /home/oracle/yaffs/yaffs2/yaffs_fs.c:995: warning:
> cast from pointer to integer of different size
> /home/oracle/yaffs/yaffs2/yaffs_fs.c: In function
> ‘yaffs_FillInodeFromObject’: /home/oracle/yaffs/yaffs2/yaffs_fs.c:1067:
> error: ‘struct inode’ has no member named ‘i_blksize’
> /home/oracle/yaffs/yaffs2/yaffs_fs.c:1105: warning: assignment discards
> qualifiers from pointer target type
> /home/oracle/yaffs/yaffs2/yaffs_fs.c:1111: warning: assignment discards
> qualifiers from pointer target type
> /home/oracle/yaffs/yaffs2/yaffs_fs.c:1115: warning: assignment discards
> qualifiers from pointer target type /home/oracle/yaffs/yaffs2/yaffs_fs.c:
> In function ‘yaffs_internal_read_super’:
> /home/oracle/yaffs/yaffs2/yaffs_fs.c:2064: warning: assignment discards
> qualifiers from pointer target type
> /home/oracle/yaffs/yaffs2/yaffs_fs.c:2348: warning: assignment discards
> qualifiers from pointer target type make[2]: ***
> [/home/oracle/yaffs/yaffs2/yaffs_fs.o] Error 1
> make[1]: *** [_module_/home/oracle/yaffs/yaffs2] Error 2
> make[1]: Leaving directory `/usr/src/kernels/2.6.18-164.el5-xen-x86_64'
> make: *** [modules] Error 2
>
>
> so, i've applyed this:
>
> @@ -1063,7 +1063,7 @@ static void yaffs_FillInodeFromObject(st
> inode->i_mode = obj->yst_mode;
> inode->i_uid = obj->yst_uid;
> inode->i_gid = obj->yst_gid;
> -#if (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19))
> +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18))
> inode->i_blksize = inode->i_sb->s_blocksize;
> #endif
> #if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 5, 0))
>
> And module compilation succeds, but i've this error on utils/ compilation:
>
> [oracle@oel54test11gR201 utils]$ make
> ln -s ../yaffs_ecc.c yaffs_ecc.c
> gcc -c -I/usr/include -I.. -O2 -Wall -DCONFIG_YAFFS_UTIL -Wshadow
> -Wpointer-arith -Wwrite-strings -Wstrict-prototypes -Wmissing-declarations
> -Wmissing-prototypes -Wredundant-decls -Wnested-externs -Winline
> yaffs_ecc.c -o yaffs_ecc.o gcc -c -I/usr/include -I.. -O2 -Wall
> -DCONFIG_YAFFS_UTIL -Wshadow -Wpointer-arith -Wwrite-strings
> -Wstrict-prototypes -Wmissing-declarations -Wmissing-prototypes
> -Wredundant-decls -Wnested-externs -Winline mkyaffsimage.c -o
> mkyaffsimage.o In file included from mkyaffsimage.c:31:
> ../yaffs_guts.h:838: warning: ‘struct iattr’ declared inside parameter list
> ../yaffs_guts.h:838: warning: its scope is only this definition or
> declaration, which is probably not what you want ../yaffs_guts.h:839:
> warning: ‘struct iattr’ declared inside parameter list mkyaffsimage.c:117:
> warning: ‘yaffs_CalcNameSum’ defined but not used gcc -o mkyaffsimage
> yaffs_ecc.o mkyaffsimage.o
> gcc -c -I/usr/include -I.. -O2 -Wall -DCONFIG_YAFFS_UTIL -Wshadow
> -Wpointer-arith -Wwrite-strings -Wstrict-prototypes -Wmissing-declarations
> -Wmissing-prototypes -Wredundant-decls -Wnested-externs -Winline
> mkyaffs2image.c -o mkyaffs2image.o In file included from
> mkyaffs2image.c:33:
> ../yaffs_guts.h:838: warning: ‘struct iattr’ declared inside parameter list
> ../yaffs_guts.h:838: warning: its scope is only this definition or
> declaration, which is probably not what you want ../yaffs_guts.h:839:
> warning: ‘struct iattr’ declared inside parameter list In file included
> from mkyaffs2image.c:35:
> ../yaffs_tagsvalidity.h:22: warning: redundant redeclaration of
> ‘yaffs_InitialiseTags’ ../yaffs_guts.h:904: warning: previous declaration
> of ‘yaffs_InitialiseTags’ was here mkyaffs2image.c: In function
> ‘write_chunk’:
> mkyaffs2image.c:180: warning: passing argument 1 of ‘little_to_big_endian’
> from incompatible pointer type mkyaffs2image.c:185: warning: passing
> argument 1 of ‘yaffs_PackTags2’ from incompatible pointer type
> mkyaffs2image.c:185: warning: passing argument 2 of ‘yaffs_PackTags2’ from
> incompatible pointer type mkyaffs2image.c:185: error: too few arguments to
> function ‘yaffs_PackTags2’ make: *** [mkyaffs2image.o] Error 1
Thanks for pointing out this issue. I shall fix it.
You don't need mkyaffs2image to run yaffs though, only to build images.
-Charles