On 05/12/2011 5:26 PM, Rafaël Carré wrote:
Le Mon, 05 Dec 2011 16:50:15 -0500,
Boris Gjenero<boris.gjen...@gmail.com> a écrit :
There doesn't seem to be any way to tell gcc that some printf-like
function supports a different set of format specifiers. Those warnings
can only be turned off completely via -Wno-format. Configure should add
that option that when Windows sim. Those warnings aren't very useful
anyways, because gcc doesn't know what Rockbox format() supports.
rockbox always uses c99/unix/gnu format ("printf" or "gnu_printf" in
gcc), not the microsoft format ("ms_printf") afaik.
I don't remember what is microsoft format exactly but it's better to
use the C99 functions with that define to avoid a lot of trouble,
that's what we do in VLC
I was referring to how Rockbox only supports a subset of the Unix
format. In firmware/libc/sprintf.c, there is the following comment:
* Minimal printf and snprintf formatting functions
*
* These support %c %s %d and %x
* Field width and zero-padding flag only
You can see the actual code interpreting the format in
firmware/common/format.c. It supports a bit more but it certainly
doesn't support everything at:
http://pubs.opengroup.org/onlinepubs/009695399/functions/printf.html .
For example, if you try to print an int using %i, gcc won't warn you
about it, and you'll just see an i where the number should be. Because
of this, -Wformat is of limited use.
Regards,
Boris