Hi Kenneth,

I also had a some of the same compilation problems with the functions "yaffs_flush_file(...)" and "yaffs_flush_whole_cache(...)" having too few arguments. I believe the problem was introduced in this commit: http://www.aleph1.co.uk/gitweb?p=yaffs2.git;a=commit;h=30f956c32c235e6b5fa77fb29965ababbd497561

As you can see from the commit (looking at yaffs_guts.h changeset), one extra parameter was added to both functions' declarations "yaffs_flush_file(...)" and "yaffs_flush_whole_cache(...)" and not all functions' usage were properly updated to add that extra function parameter when they were used, hence our problem. 

This doesn't really fix your issue, but I just wanted to let you know a little more about the issue. I'm not sure when/who/how this will get fixed. Good luck. 




-

Sean Seifert
EMBEDDED SOFTWARE ENGINEER

Appareo Systems, LLC
1810 NDSU Research Circle N
Fargo ND
58102

P: (701) 356-2200 Ext 349
F: (701) 356-3157
sseifert@appareo.com

NOTICE: This message {including attachments} is covered by the Electronic Communication Privacy Act, 18 U.S.C. sections 2510-2521, is confidential and may also be protected by attorney-client or other privilege. If you believe that it has been sent to you in error, do not read it. If you are not the intended recipient, you are hereby notified that any retention, dissemination, distribution, or copying of this communication is strictly prohibited. Please reply to the sender that you have received the message in error and then delete it.


On Sun, Nov 9, 2014 at 5:26 PM, Kenneth Ingham <ingham@i-pi.com> wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

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
-----BEGIN PGP SIGNATURE-----

iQIcBAEBCgAGBQJUX/g3AAoJEN0TsnzrrYbVEyIP/RmFlSNeNpdwTJxZYinWtKbT
qJXUIWkKAgyYBl7ORf9QikCIYAHSQmKuAGe6Vvj76IR3tIZfAxUConF7mnpwgWq9
x+5rGHayvxJq/LCQ1iNpOI7fAV2ye3OXyjiyDq6SuEE9ymw7OsrGavFnrvlrBBYm
xUULd2jiBWyisN2hQtw7sJVF+r/53q+cJr9rrfQhQ881rxuddVg2o75/MIJ+tlE7
FXHJQAsOq7wa4ns1aOE1+73ZIBrqN28oljKjvYkRILRfJDx4wOXJ3skc7o0QvRav
Xa/L4mh1OjVZ1LyC6PD8gSlG4NR2vxHnxHwoOwkd43aDp911wVt8looHlBxK2VEi
KpvxNHfoAkpN8PCnPCyAqgSSjqWwWV2wxb6hnyYhLC3n4Q9VhUnnTcIowRx0HZY9
FlnXv08Mr1t3U2aMLTFqf+1Ir2o5bHgR8pGBadfBcsvFZT/enGbfD2qcNLHJx0Mt
gHwIJq8RVnIiKgS1QhPp8XqLZkMgrykbiuRK/HPS6VrBbGm02r+j5XHchXGtqxEQ
ihT4edsa9CEmuwSLIjdeahOKZp5+eQe/U2LKyiVRVRh4tY30CA0OgFxQMZ4TYP6B
GJkZ63rDkt+wpdqW9oY6yz3iaV8E9E9BOc7rRH8YdVK5VeK7aYWAoVPiMNPJss3l
c8Q8fiNMRN9qktE2ZFTZ
=YPYU
-----END PGP SIGNATURE-----

_______________________________________________
yaffs mailing list
yaffs@lists.aleph1.co.uk
http://lists.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs