Bill Auerbach schrieb:
Bill Auerbach wrote:
One problem however: If I define LWIP_CHKSUM in my sys_arch.h,
inet_chksum.c doesn't know about it. I had to add #include
"sys_arch.h" to inet_chksum.c. In order to override LWIP_CHKSUM
without changing source code, shouldn't include sys_arch.h?

I don't think so: sys_arch.h is supposed to provide things needed for
the sys layer (like threads, mboxes and semaphores). When compiling with
NO_SYS=1, the whole stack should still be compilable without the whole
sys_arch.h file. You will have to put the definition somewhere else.
OK.  I see.  This define (LWIP_CHKSUM) belongs in lwipopts.h not sys_arch.h
as per the comment.  The question becomes where to put the prototype for the
replacement function.  If it's in sys_arch.h to match sys_arch.c where the
function definition is, then lwipopts.h or inet_chksum.c need sys_arch.h
added to get the prototype pulled in.
In my opinion, the comment is wrong. Also the place you want to put it seems wrong. The files sys_arch.c and sys_arch.h are supposed to be an architecture-dependent extension for sys.c. And sys.c's purpose is to provide OS abstraction functions. Like you already stated, the LWIP_CHKSUM function is needed regardless of the NO_SYS setting (in fact, that's what I meant in my last mail) so you have to put it somwhere else, not in sys_arch.c: sys.c and sys_arch.c don't have to be included in your build when compiling with NO_SYS=1!

You can just put the definition into cc.h or lwipopts.h and create your own c file with the function in it. And perhaps we should include an example in the contrib folder to clarify this for the future...?

Simon


_______________________________________________
lwip-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to