I grabbed source via git today. Trying to compile, it dies with these
error messages:
# make
make -C /lib/modules/3.16.6-2-desktop/build M=/usr/src/yaffs2 modules
make[1]: Entering directory '/usr/src/linux-3.16.6-2-obj/x86_64/desktop'
make[1]: Entering directory `/usr/src/linux-3.16.6-2-obj/x86_64/desktop'
CC [M] /usr/src/yaffs2/yaffs_vfs_multi.o
/usr/src/yaffs2/yaffs_vfs_multi.c: In function ‘yaffs_file_flush’:
/usr/src/yaffs2/yaffs_vfs_multi.c:741:2: error: too few arguments to
function ‘yaffs_flush_file’
yaffs_flush_file(obj, 1, 0);
^
In file included from /usr/src/yaffs2/yaffs_vfs_multi.c:173:0:
/usr/src/yaffs2/yaffs_guts.h:879:5: note: declared here
int yaffs_flush_file(struct yaffs_obj *in,
^
/usr/src/yaffs2/yaffs_vfs_multi.c: In function ‘yaffs_sync_object’:
/usr/src/yaffs2/yaffs_vfs_multi.c:771:2: error: too few arguments to
function ‘yaffs_flush_file’
yaffs_flush_file(obj, 1, datasync);
^
In file included from /usr/src/yaffs2/yaffs_vfs_multi.c:173:0:
/usr/src/yaffs2/yaffs_guts.h:879:5: note: declared here
int yaffs_flush_file(struct yaffs_obj *in,
^
/usr/src/yaffs2/yaffs_vfs_multi.c: At top level:
/usr/src/yaffs2/yaffs_vfs_multi.c:781:14: error:
‘generic_file_aio_read’ undeclared here (not in a function)
.aio_read = generic_file_aio_read,
^
/usr/src/yaffs2/yaffs_vfs_multi.c:782:15: error:
‘generic_file_aio_write’ undeclared here (not in a function)
.aio_write = generic_file_aio_write,
^
/usr/src/yaffs2/yaffs_vfs_multi.c:787:18: error:
‘generic_file_splice_write’ undeclared here (not in a function)
.splice_write = generic_file_splice_write,
^
/usr/src/yaffs2/yaffs_vfs_multi.c: In function ‘yaffs_flush_inodes’:
/usr/src/yaffs2/yaffs_vfs_multi.c:2190:4: error: too few arguments to
function ‘yaffs_flush_file’
yaffs_flush_file(obj, 1, 0);
^
In file included from /usr/src/yaffs2/yaffs_vfs_multi.c:173:0:
/usr/src/yaffs2/yaffs_guts.h:879:5: note: declared here
int yaffs_flush_file(struct yaffs_obj *in,
^
/usr/src/yaffs2/yaffs_vfs_multi.c: In function ‘yaffs_flush_super’:
/usr/src/yaffs2/yaffs_vfs_multi.c:2203:2: error: too few arguments to
function ‘yaffs_flush_whole_cache’
yaffs_flush_whole_cache(dev);
^
In file included from /usr/src/yaffs2/yaffs_vfs_multi.c:173:0:
/usr/src/yaffs2/yaffs_guts.h:885:6: note: declared here
void yaffs_flush_whole_cache(struct yaffs_dev *dev, int discard);
^
/usr/src/linux-3.16.6-2/scripts/Makefile.build:273: recipe for target
'/usr/src/yaffs2/yaffs_vfs_multi.o' failed
make[4]: *** [/usr/src/yaffs2/yaffs_vfs_multi.o] Error 1
/usr/src/linux-3.16.6-2/Makefile:1359: recipe for target
'_module_/usr/src/yaffs2' failed
make[3]: *** [_module_/usr/src/yaffs2] Error 2
Makefile:195: recipe for target 'sub-make' failed
make[2]: *** [sub-make] Error 2
Makefile:24: recipe for target '__sub-make' failed
make[1]: *** [__sub-make] Error 2
make[1]: Leaving directory '/usr/src/linux-3.16.6-2-obj/x86_64/desktop'
Makefile:63: recipe for target 'modules' failed
make: *** [modules] Error 2
Checking the source, the error makes sense. The .h file declares the
function differently than the .c file does. Which is correct? I am
guessing the .c, but why the discrepancy?
- --
Kenneth
A people that values its privileges above its principles soon loses both.
- ---Dwight D. Eisenhower, First Inaugural Address, January 20, 1953