On 10/25/2011 04:26 PM, Eric Blake wrote:
then it makes configure-time decisions on whether to use
_GL_ATTRIBUTE_FORMAT_PRINTF or _GL_ATTRIBUTE_FORMAT_PRINTF according to
whether the package requested the gnulib modules to override printf to
fix implementation bugs, or whether the package just wants the system
functionality (and is steering clear of the buggy constructs).
By the way, the number of buggy printf implementations is appalling,
with the mingw implementations tending to have the most flaws. Also
from gnulib:
dnl 1 = checking whether printf supports size specifiers as in C99...
dnl 2 = checking whether printf supports 'long double' arguments...
dnl 3 = checking whether printf supports infinite 'double' arguments...
dnl 4 = checking whether printf supports infinite 'long double' arguments...
dnl 5 = checking whether printf supports the 'a' and 'A' directives...
dnl 6 = checking whether printf supports the 'F' directive...
dnl 7 = checking whether printf supports the 'n' directive...
dnl 8 = checking whether printf supports the 'ls' directive...
dnl 9 = checking whether printf supports POSIX/XSI format strings with
positions...
dnl 10 = checking whether printf supports the grouping flag...
dnl 11 = checking whether printf supports the left-adjust flag correctly...
dnl 12 = checking whether printf supports the zero flag correctly...
dnl 13 = checking whether printf supports large precisions...
dnl 14 = checking whether printf survives out-of-memory conditions...
dnl 15 = checking for snprintf...
dnl 16 = checking whether snprintf truncates the result as in C99...
dnl 17 = checking whether snprintf returns a byte count as in C99...
dnl 18 = checking whether snprintf fully supports the 'n' directive...
dnl 19 = checking whether snprintf respects a size of 1...
dnl 20 = checking whether vsnprintf respects a zero size as in C99...
dnl
dnl . = yes, # = no.
dnl
dnl 1 2 3 4 5 6 7 8 9 10 11 12
13 14 15 16 17 18 19 20
dnl glibc 2.5 . . . . . . . . . . . .
. . . . . . . .
dnl glibc 2.3.6 . . . . # . . . . . . .
. . . . . . . .
dnl FreeBSD 5.4, 6.1 . . . . # . . . . . . #
. # . . . . . .
dnl MacOS X 10.5.8 . . . # # . . . . . . #
. . . . . . . .
dnl MacOS X 10.3.9 . . . . # . . . . . . #
. # . . . . . .
dnl OpenBSD 3.9, 4.0 . . # # # # . # . # . #
. # . . . . . .
dnl Cygwin 1.7.0 (2009) . . . # . . . ? . . . .
. ? . . . . . .
dnl Cygwin 1.5.25 (2008) . . . # # . . # . . . .
. # . . . . . .
dnl Cygwin 1.5.19 (2006) # . . # # # . # . # . #
# # . . . . . .
dnl Solaris 11 2010-11 . . # # # . . # . . . #
. . . . . . . .
dnl Solaris 10 . . # # # . . # . . . #
# . . . . . . .
dnl Solaris 2.6 ... 9 # . # # # # . # . . . #
# . . . # . . .
dnl Solaris 2.5.1 # . # # # # . # . . . #
. . # # # # # #
dnl AIX 7.1 . . # # # . . . . . . #
# . . . . . . .
dnl AIX 5.2 . . # # # . . . . . . #
. . . . . . . .
dnl AIX 4.3.2, 5.1 # . # # # # . . . . . #
. . . . # . . .
dnl HP-UX 11.31 . . . . # . . . . . . #
. . . . # # . .
dnl HP-UX 11.{00,11,23} # . . . # # . . . . . #
. . . . # # . #
dnl HP-UX 10.20 # . # . # # . ? . . # #
. . . . # # ? #
dnl IRIX 6.5 # . # # # # . # . . . #
. . . . # . . .
dnl OSF/1 5.1 # . # # # # . . . . . #
. . . . # . . #
dnl OSF/1 4.0d # . # # # # . . . . . #
. . # # # # # #
dnl NetBSD 5.0 . . . # # . . . . . . #
. # . . . . . .
dnl NetBSD 4.0 . ? ? ? ? ? . ? . ? ? ?
? ? . . . ? ? ?
dnl NetBSD 3.0 . . . . # # . ? # # ? #
. # . . . . . .
dnl Haiku . . . # # # . # . . . .
. ? . . ? . . .
dnl BeOS # # . # # # . ? # . ? .
# ? . . ? . . .
dnl old mingw / msvcrt # # # # # # . . # # . #
# ? . # # # . .
dnl MSVC 9 # # # # # # # . # # . #
# ? # # # # . .
dnl mingw 2009-2011 . # . # . . . . # # . .
. ? . . . . . .
dnl mingw-w64 2011 # # # # # # . . # # . #
# ? . # # # . .
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org