Porting Newlib to Microchip's dsPIC series

Karolina Lindqvist karolina.lindqvist@kramnet.se
Mon Feb 2 12:59:00 GMT 2009

söndagen den 1 februari 2009 skrev Leo Singer:
> Here is the file that gets built from "printf.c".  It gets put in my
> build directory under "pic30/newlib/libc/stdio/lib_a-printf.o".  I see
> no mention of the symbol "printf", just "printf_r" and "iprintf".
> This is very strange because "iprintf" is not invoked directly
> anywhere inside the file "printf.c".  Does anyone know what is going
> on?

It is an options for pic30-gcc:
           This option attempts to statically analyze format strings passed to         
           printf,  scanf and the f and v variations of these functions. Uses
           of nonfloating point  format arguments will be converted to use an
           integer-only variation of the library functions.

To disable it, use the option -msmart-io=0

Depending on the option, the printf() routine will be named
_printf, _iprintf or _dprintf.
The same for fscanf, scanf, snprintf, sprintf, sscanf, vfprintf, vprintf, 
vsnprintf and vsprintf

Which means that to use this feature, all those routines come in three 

More information about the Newlib mailing list