[En-Nut-Discussion] IP Checksum calculation broken. Reenabled old algorithm for the meantime.
harald.kipp at egnite.de
Fri Jul 6 13:22:39 CEST 2012
On 06.07.2012 12:10, Ole Reinhardt wrote:
> just an idea on this generic vs. architecture specific IP checksum
> calculation. Couldn't we mark the NutIpChkSumPartial() as weak, so any
> architecture could overwrite it with it's own code supplied in the emac
> driver file? Or is this a gcc specific extension?
As far as I know, weak declarations are not language, but linker specific. Furthermore, the __attribute__ keyword is GCC specific.
Anyway, I do not have any problems with toolchain specific declarations in general. As long as you can make sure, that the code will still compile and link with other C89 tools. In its most simple form:
extern uint16_t NutIpChkSumPartial(uint16_t ics, CONST void *buf, int len) __attribute__ ((weak));
extern uint16_t NutIpChkSumPartial(uint16_t ics, CONST void *buf, int len);
More information about the En-Nut-Discussion