Re: [Yaffs] Compile error in yaffs

Top Page
Attachments:
Message as email
+ (text/plain)
+ (text/html)
Delete this message
Reply to this message
Author: Sean Seifert
Date:  
To: Kenneth Ingham
CC: yaffs@lists.aleph1.co.uk
Subject: Re: [Yaffs] Compile error in yaffs
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


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 <> wrote:

>
> 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
>
>
> _______________________________________________
> yaffs mailing list
>
> http://lists.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs
>