Follow-up Comment #6, bug #50811 (project avr-libc): Well, the fact that the -u vfprintf needs to be forced is an unfortunate side effect of libprintf_min.a *only* containing a different definition of vfprintf(), but not e.g. for printf() or other members of the family.
Thus, if you only add -lprintf_min, this library will be processed by a time when the linker has not seen any obvious need to drag the vfprintf symbol in from it, so in effect, it will be ignored. Later on, when it comes to resolve the symbols needed by (e.g.) printf, it will suddenly also need vfprintf, but libprintf_min.a is already done by that time, so the standard version of vfprintf is used (from libc.a). We could probably reorganize these libraries to also contain the other printf family members, but 1) that needs to be done by someone (who?), and 2) it won't fix the history, so the documentation has to remain the way it is for at least a while (a couple of years or more). While the complaint this bug is focussing on is not completely invalid, I think it's practically a non-issue: except for the degraded testcase, nobody would want to drag in the full power (and bloat) of printf() & co. if all he wants to do is printing some constant strings without using any of the formatting functionality. As soon as a real printf functionality is needed, as seen, there is indeed a minimal saving of space by libprintf_min.a. _______________________________________________________ Reply to this item at: <http://savannah.nongnu.org/bugs/?50811> _______________________________________________ Message sent via/by Savannah http://savannah.nongnu.org/ _______________________________________________ AVR-libc-dev mailing list AVR-libc-dev@nongnu.org https://lists.nongnu.org/mailman/listinfo/avr-libc-dev