X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Fprintf.m4;h=3ce777c2628a15953a21608b27ca2a2146bc0716;hb=9f88c0b0e0cfa8a9c25f1db4f58b837c7b891575;hp=099d956b483b894b40f775f2a82593423e1e81bb;hpb=4e60bbf36bd3873f96f7249ee8a07e8fada89118;p=gnulib.git diff --git a/m4/printf.m4 b/m4/printf.m4 index 099d956b4..3ce777c26 100644 --- a/m4/printf.m4 +++ b/m4/printf.m4 @@ -1,4 +1,4 @@ -# printf.m4 serial 2 +# printf.m4 serial 4 dnl Copyright (C) 2003, 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -13,7 +13,6 @@ AC_DEFUN([gl_PRINTF_SIZES_C99], AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gl_AC_HEADER_STDINT_H]) AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) - AC_REQUIRE([gt_TYPE_LONGDOUBLE]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports size specifiers as in C99], [gl_cv_func_printf_sizes_c99], @@ -46,37 +45,35 @@ int main () if (sprintf (buf, "%tu %d", (ptrdiff_t) 12345673, 33, 44, 55) < 0 || strcmp (buf, "12345673 33") != 0) return 1; -#if HAVE_LONG_DOUBLE buf[0] = '\0'; if (sprintf (buf, "%Lg %d", (long double) 1.5, 33, 44, 55) < 0 || strcmp (buf, "1.5 33") != 0) return 1; -#endif return 0; }], [gl_cv_func_printf_sizes_c99=yes], [gl_cv_func_printf_sizes_c99=no], [ changequote(,)dnl case "$host_os" in - dnl Guess yes on glibc systems. + # Guess yes on glibc systems. *-gnu*) gl_cv_func_printf_sizes_c99="guessing yes";; - dnl Guess yes on FreeBSD >= 5. + # Guess yes on FreeBSD >= 5. freebsd[1-4]*) gl_cv_func_printf_sizes_c99="guessing no";; freebsd* | kfreebsd*) gl_cv_func_printf_sizes_c99="guessing yes";; - dnl Guess yes on MacOS X >= 10.3. + # Guess yes on MacOS X >= 10.3. darwin[1-6].*) gl_cv_func_printf_sizes_c99="guessing no";; darwin*) gl_cv_func_printf_sizes_c99="guessing yes";; - dnl Guess yes on OpenBSD >= 3.9. + # Guess yes on OpenBSD >= 3.9. openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*) gl_cv_func_printf_sizes_c99="guessing no";; openbsd*) gl_cv_func_printf_sizes_c99="guessing yes";; - dnl Guess yes on Solaris >= 2.10. + # Guess yes on Solaris >= 2.10. solaris2.[0-9]*) gl_cv_func_printf_sizes_c99="guessing no";; solaris*) gl_cv_func_printf_sizes_c99="guessing yes";; - dnl Guess yes on NetBSD >= 3. + # Guess yes on NetBSD >= 3. netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) gl_cv_func_printf_sizes_c99="guessing no";; netbsd*) gl_cv_func_printf_sizes_c99="guessing yes";; - dnl If we don't know, assume the worst. + # If we don't know, assume the worst. *) gl_cv_func_printf_sizes_c99="guessing no";; esac changequote([,])dnl @@ -92,7 +89,6 @@ dnl Result is gl_cv_func_printf_directive_a. AC_DEFUN([gl_PRINTF_DIRECTIVE_A], [ AC_REQUIRE([AC_PROG_CC]) - AC_REQUIRE([gt_TYPE_LONGDOUBLE]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports the 'a' and 'A' directives], [gl_cv_func_printf_directive_a], @@ -115,6 +111,13 @@ int main () && strcmp (buf, "-0X6.488P-1 33") != 0 && strcmp (buf, "-0XC.91P-2 33") != 0)) return 1; + /* This catches a FreeBSD 6.1 bug: it doesn't round. */ + if (sprintf (buf, "%.2a %d", 1.51, 33, 44, 55) < 0 + || (strcmp (result, "0x1.83p+0 33") != 0 + && strcmp (result, "0x3.05p-1 33") != 0 + && strcmp (result, "0x6.0ap-2 33") != 0 + && strcmp (result, "0xc.14p-3 33") != 0)) + return 1; /* This catches a MacOS X 10.3.9 (Darwin 7.9) bug. */ if (sprintf (buf, "%.1a", 1.999) < 0 || (strcmp (buf, "0x1.0p+1") != 0 @@ -122,7 +125,6 @@ int main () && strcmp (buf, "0x4.0p-1") != 0 && strcmp (buf, "0x8.0p-2") != 0)) return 1; -#if HAVE_LONG_DOUBLE /* This catches the same MacOS X 10.3.9 (Darwin 7.9) bug and also a glibc 2.4 bug . */ if (sprintf (buf, "%.1La", 1.999L) < 0 @@ -131,12 +133,11 @@ int main () && strcmp (buf, "0x4.0p-1") != 0 && strcmp (buf, "0x8.0p-2") != 0)) return 1; -#endif return 0; }], [gl_cv_func_printf_directive_a=yes], [gl_cv_func_printf_directive_a=no], [ case "$host_os" in - dnl Guess yes on glibc >= 2.5 systems. + # Guess yes on glibc >= 2.5 systems. *-gnu*) AC_EGREP_CPP([BZ2908], [ #include @@ -149,18 +150,9 @@ int main () [gl_cv_func_printf_directive_a="guessing yes"], [gl_cv_func_printf_directive_a="guessing no"]) ;; -changequote(,)dnl - dnl Guess yes on FreeBSD >= 5. - freebsd[1-4]*) gl_cv_func_printf_directive_a="guessing no";; - freebsd* | kfreebsd*) gl_cv_func_printf_directive_a="guessing yes";; - dnl Guess yes on NetBSD >= 4. - netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*) - gl_cv_func_printf_directive_a="guessing no";; - netbsd*) gl_cv_func_printf_directive_a="guessing yes";; - dnl If we don't know, assume the worst. + # If we don't know, assume the worst. *) gl_cv_func_printf_directive_a="guessing no";; esac -changequote([,])dnl ]) ]) ]) @@ -270,39 +262,39 @@ int main () [ changequote(,)dnl case "$host_os" in - dnl Guess yes on glibc systems. + # Guess yes on glibc systems. *-gnu*) gl_cv_func_snprintf_truncation_c99="guessing yes";; - dnl Guess yes on FreeBSD >= 5. + # Guess yes on FreeBSD >= 5. freebsd[1-4]*) gl_cv_func_snprintf_truncation_c99="guessing no";; freebsd* | kfreebsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; - dnl Guess yes on MacOS X >= 10.3. + # Guess yes on MacOS X >= 10.3. darwin[1-6].*) gl_cv_func_snprintf_truncation_c99="guessing no";; darwin*) gl_cv_func_snprintf_truncation_c99="guessing yes";; - dnl Guess yes on OpenBSD >= 3.9. + # Guess yes on OpenBSD >= 3.9. openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*) gl_cv_func_snprintf_truncation_c99="guessing no";; openbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; - dnl Guess yes on Solaris >= 2.6. + # Guess yes on Solaris >= 2.6. solaris2.[0-5]*) gl_cv_func_snprintf_truncation_c99="guessing no";; solaris*) gl_cv_func_snprintf_truncation_c99="guessing yes";; - dnl Guess yes on AIX >= 4. + # Guess yes on AIX >= 4. aix[1-3]*) gl_cv_func_snprintf_truncation_c99="guessing no";; aix*) gl_cv_func_snprintf_truncation_c99="guessing yes";; - dnl Guess yes on HP-UX >= 11. + # Guess yes on HP-UX >= 11. hpux[7-9]* | hpux10*) gl_cv_func_snprintf_truncation_c99="guessing no";; hpux*) gl_cv_func_snprintf_truncation_c99="guessing yes";; - dnl Guess yes on IRIX >= 6.5. + # Guess yes on IRIX >= 6.5. irix6.5) gl_cv_func_snprintf_truncation_c99="guessing yes";; - dnl Guess yes on OSF/1 >= 5. + # Guess yes on OSF/1 >= 5. osf[3-4]*) gl_cv_func_snprintf_truncation_c99="guessing no";; osf*) gl_cv_func_snprintf_truncation_c99="guessing yes";; - dnl Guess yes on NetBSD >= 3. + # Guess yes on NetBSD >= 3. netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) gl_cv_func_snprintf_truncation_c99="guessing no";; netbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; - dnl Guess yes on BeOS. + # Guess yes on BeOS. beos*) gl_cv_func_snprintf_truncation_c99="guessing yes";; - dnl If we don't know, assume the worst. + # If we don't know, assume the worst. *) gl_cv_func_snprintf_truncation_c99="guessing no";; esac changequote([,])dnl @@ -336,31 +328,31 @@ int main () [ changequote(,)dnl case "$host_os" in - dnl Guess yes on glibc systems. + # Guess yes on glibc systems. *-gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";; - dnl Guess yes on FreeBSD >= 5. + # Guess yes on FreeBSD >= 5. freebsd[1-4]*) gl_cv_func_snprintf_retval_c99="guessing no";; freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; - dnl Guess yes on MacOS X >= 10.3. + # Guess yes on MacOS X >= 10.3. darwin[1-6].*) gl_cv_func_snprintf_retval_c99="guessing no";; darwin*) gl_cv_func_snprintf_retval_c99="guessing yes";; - dnl Guess yes on OpenBSD >= 3.9. + # Guess yes on OpenBSD >= 3.9. openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*) gl_cv_func_snprintf_retval_c99="guessing no";; openbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; - dnl Guess yes on Solaris >= 2.6. + # Guess yes on Solaris >= 2.6. solaris2.[0-5]*) gl_cv_func_snprintf_retval_c99="guessing no";; solaris*) gl_cv_func_snprintf_retval_c99="guessing yes";; - dnl Guess yes on AIX >= 4. + # Guess yes on AIX >= 4. aix[1-3]*) gl_cv_func_snprintf_retval_c99="guessing no";; aix*) gl_cv_func_snprintf_retval_c99="guessing yes";; - dnl Guess yes on NetBSD >= 3. + # Guess yes on NetBSD >= 3. netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) gl_cv_func_snprintf_retval_c99="guessing no";; netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; - dnl Guess yes on BeOS. + # Guess yes on BeOS. beos*) gl_cv_func_snprintf_retval_c99="guessing yes";; - dnl If we don't know, assume the worst. + # If we don't know, assume the worst. *) gl_cv_func_snprintf_retval_c99="guessing no";; esac changequote([,])dnl @@ -394,32 +386,32 @@ int main () [ changequote(,)dnl case "$host_os" in - dnl Guess yes on glibc systems. + # Guess yes on glibc systems. *-gnu*) gl_cv_func_snprintf_directive_n="guessing yes";; - dnl Guess yes on FreeBSD >= 5. + # Guess yes on FreeBSD >= 5. freebsd[1-4]*) gl_cv_func_snprintf_directive_n="guessing no";; freebsd* | kfreebsd*) gl_cv_func_snprintf_directive_n="guessing yes";; - dnl Guess yes on MacOS X >= 10.3. + # Guess yes on MacOS X >= 10.3. darwin[1-6].*) gl_cv_func_snprintf_directive_n="guessing no";; darwin*) gl_cv_func_snprintf_directive_n="guessing yes";; - dnl Guess yes on Solaris >= 2.6. + # Guess yes on Solaris >= 2.6. solaris2.[0-5]*) gl_cv_func_snprintf_directive_n="guessing no";; solaris*) gl_cv_func_snprintf_directive_n="guessing yes";; - dnl Guess yes on AIX >= 4. + # Guess yes on AIX >= 4. aix[1-3]*) gl_cv_func_snprintf_directive_n="guessing no";; aix*) gl_cv_func_snprintf_directive_n="guessing yes";; - dnl Guess yes on IRIX >= 6.5. + # Guess yes on IRIX >= 6.5. irix6.5) gl_cv_func_snprintf_directive_n="guessing yes";; - dnl Guess yes on OSF/1 >= 5. + # Guess yes on OSF/1 >= 5. osf[3-4]*) gl_cv_func_snprintf_directive_n="guessing no";; osf*) gl_cv_func_snprintf_directive_n="guessing yes";; - dnl Guess yes on NetBSD >= 3. + # Guess yes on NetBSD >= 3. netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) gl_cv_func_snprintf_directive_n="guessing no";; netbsd*) gl_cv_func_snprintf_directive_n="guessing yes";; - dnl Guess yes on BeOS. + # Guess yes on BeOS. beos*) gl_cv_func_snprintf_directive_n="guessing yes";; - dnl If we don't know, assume the worst. + # If we don't know, assume the worst. *) gl_cv_func_snprintf_directive_n="guessing no";; esac changequote([,])dnl @@ -452,9 +444,9 @@ dnl dnl 1 2 3 4 5 6 7 8 dnl glibc 2.5 . . . . . . . . dnl glibc 2.3.6 . # . . . . . . -dnl FreeBSD 5.4, 6.1 . . . . . . . . +dnl FreeBSD 5.4, 6.1 . ? . . . . . . dnl MacOS X 10.3.9 . # . . . . . . -dnl OpenBSD 3.9 . # . . . . . ? +dnl OpenBSD 3.9, 4.0 . # . . . . . ? dnl Cygwin 2007 . # . . . . . ? dnl Cygwin 2006 # # . . . . . ? dnl Solaris 10 . # . . . . . . @@ -466,7 +458,7 @@ dnl HP-UX 10.20, 11.00, 11.11, 11.23 # # . . . . # # dnl IRIX 6.5 # # . . . . # . dnl OSF/1 5.1 # # . . . . # . dnl OSF/1 4.0d # # . . # # # # -dnl NetBSD 4.0 . . . . . . . ? +dnl NetBSD 4.0 . ? . . . . . ? dnl NetBSD 3.0 . # . # . . . . dnl BeOS # # . # . . . . dnl mingw # # . # . # # #