http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46261
--- Comment #20 from Georg-Johann Lay <gjl at gcc dot gnu.org> 2011-07-02 17:29:23 UTC --- (In reply to comment #19) > Indeed, I simply made all bare-metal targets use newlib-stdint.h as a > default, but since AVR has its own libc it seems more appropriate to put > the defines in avr-stdint.h or avr.h and not use newlib-stdint.h. (And > the point of having separate headers such as newlib-stdint.h is that there > may not otherwise be a header shared between all relevant targets. If all > AVR targets use avr-libc, putting the defines in avr.h makes sense, but if > avr-rtems is using newlib like other RTEMS targets then you probably want > a separate header only for AVR targets using avr-libc.) The extra header is not needed because of avr-libc; there is nothing special about avr-libc and it conforms to the standard (except when you explicitely link some lean implementation of *printf* or so. Jörg will correct me if I'm wrong). The extra avr specific header is just needed to avoid shredding avr-gcc with -mint8 and arrange for int=QI. -mint8 it not a multilib option, and isn't supported by avr-libc except that it provides conditional type definitions in stdint.h et al.