From 215942da54990e097f838cd8bdb7d7164a6e3463 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Tue, 6 Jan 2015 09:15:11 -0800 Subject: [PATCH] Merge from gnulib * lib/stdio.in.h, m4/stdio_h.m4: Update from gnulib, incorporating: 2015-01-05 stdio: fix use of PRIdMAX on modern mingw --- ChangeLog | 6 ++++++ lib/stdio.in.h | 7 ++++++- m4/stdio_h.m4 | 20 +++++++++++++++++++- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 36edfe638d4..ceceb68e9dc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2015-01-06 Paul Eggert + + Merge from gnulib + * lib/stdio.in.h, m4/stdio_h.m4: Update from gnulib, incorporating: + 2015-01-05 stdio: fix use of PRIdMAX on modern mingw + 2015-01-04 Paul Eggert * INSTALL: Mention 'make WERROR_CFLAGS='. diff --git a/lib/stdio.in.h b/lib/stdio.in.h index 2a639c4478e..759c94d7abf 100644 --- a/lib/stdio.in.h +++ b/lib/stdio.in.h @@ -84,8 +84,13 @@ except that it indicates to GCC that the supported format string directives are the ones of the system printf(), rather than the ones standardized by ISO C99 and POSIX. */ -#define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \ +#if GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU +# define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \ + _GL_ATTRIBUTE_FORMAT_PRINTF (formatstring_parameter, first_argument) +#else +# define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument)) +#endif /* _GL_ATTRIBUTE_FORMAT_SCANF indicates to GCC that the function takes a format string and arguments, diff --git a/m4/stdio_h.m4 b/m4/stdio_h.m4 index 42173387aff..e0c4bde1f8e 100644 --- a/m4/stdio_h.m4 +++ b/m4/stdio_h.m4 @@ -1,4 +1,4 @@ -# stdio_h.m4 serial 43 +# stdio_h.m4 serial 44 dnl Copyright (C) 2007-2015 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -12,6 +12,24 @@ AC_DEFUN([gl_STDIO_H], AC_REQUIRE([gl_STDIO_H_DEFAULTS]) gl_NEXT_HEADERS([stdio.h]) + dnl Determine whether __USE_MINGW_ANSI_STDIO makes printf and + dnl inttypes.h behave like gnu instead of system; we must give our + dnl printf wrapper the right attribute to match. + AC_CACHE_CHECK([whether inttypes macros match system or gnu printf], + [gl_cv_func_printf_attribute_flavor], + [AC_EGREP_CPP([findme .(ll|j)d. findme], + [#define __STDC_FORMAT_MACROS 1 + #include + #include + findme PRIdMAX findme + ], [gl_cv_func_printf_attribute_flavor=gnu], + [gl_cv_func_printf_attribute_flavor=system])]) + if test "$gl_cv_func_printf_attribute_flavor" = gnu; then + AC_DEFINE([GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU], [1], + [Define to 1 if printf and friends should be labeled with + attribute "__gnu_printf__" instead of "__printf__"]) + fi + dnl No need to create extra modules for these functions. Everyone who uses dnl likely needs them. GNULIB_FSCANF=1 -- 2.39.2