Le samedi 31 mars 2012 à 20:22 +1030, Jonathan Woithe a écrit :
Hi Yves

> I just compiled revision 2102 and I got these warnings:
> src/dice/dice_eap.cpp: In member function ?virtual void 
> Dice::EAP::Router::show()?:
> src/dice/dice_eap.cpp:1613: warning: format ?%ld? expects type ?long 
> int?, but argument 7 has type ?size_t?
> src/dice/dice_eap.cpp:1618: warning: format ?%ld? expects type ?long 
> int?, but argument 7 has type ?size_t?
> src/dice/dice_eap.cpp: In member function ?void 
> Dice::EAP::RouterConfig::show()?:
> src/dice/dice_eap.cpp:1801: warning: format ?%ld? expects type ?long 
> int?, but argument 7 has type ?size_t?
> These are just warnings, without impact, but a simple cast could fix it.

Thanks for the report.  A fix has been committed in r2103.

As per the commit log, I've gone for "unsigned long long" because size_t
could be 64-bit (as it is on 64-bit systems).  Even though the values
concerned won't exceed the maximum of a 32-bit unsigned integer in the
context of these particular warnings, we should do things "correctly"

The best solution to the problem is to use %zu, which is one of the "%z"
specifiers introduced in C99 to cater for these built-in types (the "u" is
for "unsigned", since size_t is unsigned).  However, at this stage we
shouldn't start assuming that the compiler used by every FFADO tester is
C99-compliant and/or has support for this specifier (note however that I
have done no research into gcc's support of %zu - if it turns out that it is
widely supported perhaps we could consider using it).


Thanks Jonathan for fixing these warnings.
They appeared as I tried to have a clear look of the content of the flash versus the content of libffado maps.
Not as obvious as expected at first glance. I thought I fixed such warnings but I apparently mismatched somewhere.
So thanks again. I will follow your recommendation

Yves, may you have a "thorough test" of the last modification on your EAP device ? Starting with correct settings at first (I mean, reset using Windows/Mac OS), you would have to be able to do anything you want (including having the eight leds going together playing with the routing of 1394 destinations; amusing even useless ... :-)