old-cross-binutils/gdb/common
Pedro Alves 91ee7171d0 MinGW and attribute format(printf/gnu_printf)
Cross building gdbserver for --host=x86_64-w64-mingw32 with gcc 4.8.4
20141219 (Fedora MinGW 4.8.4-1.fc20), I get:

  src/gdb/gdbserver/tracepoint.c: In function 'cmd_qtdp':
  src/gdb/gdbserver/tracepoint.c:2577:7: error: unknown conversion type character 'l' in format [-Werror=format=]
	 trace_debug ("Defined %stracepoint %d at 0x%s, "
	 ^
  src/gdb/gdbserver/tracepoint.c:2577:7: error: unknown conversion type character 'l' in format [-Werror=format=]
  src/gdb/gdbserver/tracepoint.c:2577:7: error: too many arguments for format [-Werror=format-extra-args]
  src/gdb/gdbserver/tracepoint.c: In function 'stop_tracing':
  src/gdb/gdbserver/tracepoint.c:3447:7: error: unknown conversion type character 'l' in format [-Werror=format=]
	 trace_debug ("Stopping the trace because "
	 ^
  src/gdb/gdbserver/tracepoint.c:3447:7: error: too many arguments for format [-Werror=format-extra-args]
  src/gdb/gdbserver/tracepoint.c: In function 'collect_data_at_tracepoint':
  src/gdb/gdbserver/tracepoint.c:4651:3: error: unknown conversion type character 'l' in format [-Werror=format=]
     trace_debug ("Making new traceframe for tracepoint %d at 0x%s, hit %" PRIu64,
     ^
  src/gdb/gdbserver/tracepoint.c:4651:3: error: too many arguments for format [-Werror=format-extra-args]
  src/gdb/gdbserver/tracepoint.c: In function 'collect_data_at_step':
  src/gdb/gdbserver/tracepoint.c:4687:3: error: unknown conversion type character 'l' in format [-Werror=format=]
     trace_debug ("Making new step traceframe for "
     ^

trace_debug is a macro that calls:

  static void trace_vdebug (const char *, ...) ATTRIBUTE_PRINTF (1, 2);

The calls that fail checking use PRIu64, etc., like:

      trace_debug ("Defined %stracepoint %d at 0x%s, "
		   "enabled %d step %" PRIu64 " pass %" PRIu64,
		   tpoint->type == fast_tracepoint ? "fast "
		   : tpoint->type == static_tracepoint ? "static " : "",
		   tpoint->number, paddress (tpoint->address), tpoint->enabled,
		   tpoint->step_count, tpoint->pass_count);

gnulib's stdio/printf module replacements may make %llu, etc. work on
mingw, instead of the MS-specific %I64u, and thus may make PRIu64
expand to %llu.  However, gcc isn't aware of that, because libiberty's
ansidecl.h defines ATTRIBUTE_PRINTF as using attribute format(printf).
But, with that format, gcc checks for MS-style format strings (%I64u).
In order to have gcc expect gnu/standard formats, we need to use
gnu_printf format instead.  Which version to use (printf/gnu_printf)
depends on msvcrt and mingw version, and so gnulib has a
configure-time check, and defines _GL_ATTRIBUTE_FORMAT_PRINTF
accordingly.

Since _GL_ATTRIBUTE_FORMAT_PRINTF is compatible with ATTRIBUTE_PRINTF,
the fix is simply to make use of the former.

gdb/ChangeLog:
2015-11-17  Pedro Alves  <palves@redhat.com>

	* common/common-defs.h (ATTRIBUTE_PRINTF): Redefine in terms of
	_GL_ATTRIBUTE_FORMAT_PRINTF after including ansidecl.h.
2015-11-17 15:22:39 +00:00
..
agent.c Add some more casts (1/2) 2015-09-25 14:08:07 -04:00
agent.h Make functions and variables exported by the IPA be extern "C" 2015-02-27 17:27:29 +00:00
ax.def [gdb/ax] small "setv" fix and documentation's adjustment. 2015-02-19 19:04:16 +04:00
break-common.h Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
btrace-common.c Add casts to memory allocation related calls 2015-09-25 14:08:06 -04:00
btrace-common.h ari, btrace: avoid unsigned long long 2015-07-15 08:40:57 +02:00
buffer.c Add casts to memory allocation related calls 2015-09-25 14:08:06 -04:00
buffer.h Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
cleanups.c Replace some xmalloc-family functions with XNEW-family ones 2015-08-26 17:18:12 -04:00
cleanups.h Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
common-debug.c Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
common-debug.h Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
common-defs.h MinGW and attribute format(printf/gnu_printf) 2015-11-17 15:22:39 +00:00
common-exceptions.c Add cast to exception_none 2015-10-29 12:55:01 +00:00
common-exceptions.h Don't assume break/continue inside a TRY block works 2015-10-29 12:55:01 +00:00
common-regcache.h aarch64 multi-arch part 6: HW breakpoint on unaligned address 2015-10-15 15:05:10 +01:00
common-types.h Call target_can_download_tracepoint if there are tracepoints to download 2015-09-10 12:31:36 +01:00
common-utils.c Move utility functions to common/ 2015-06-15 17:04:56 +02:00
common-utils.h Move utility functions to common/ 2015-06-15 17:04:56 +02:00
common.host Move safe_strerror to common/ 2015-01-15 15:09:15 -05:00
common.m4 Revert the previous 7 commits of: Validate binary before use 2015-07-15 20:27:32 +02:00
create-version.sh Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
enum-flags.h Type-safe wrapper for enum flags 2015-11-17 13:31:29 +00:00
errors.c Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
errors.h Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
fileio.c Don't assume File-I/O mode bits match the host's format 2015-06-09 13:24:46 +01:00
fileio.h Don't assume File-I/O mode bits match the host's format 2015-06-09 13:24:46 +01:00
filestuff.c common/filestuff.c (make_cleanup_close): Update comment. 2015-09-28 11:31:54 -07:00
filestuff.h Move make_cleanup_close to common code 2015-06-10 14:28:43 +01:00
format.c Add some more casts (1/2) 2015-09-25 14:08:07 -04:00
format.h Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
gdb_assert.h Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
gdb_locale.h Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
gdb_setjmp.h Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
gdb_signals.h Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
gdb_sys_time.h Prepare for gnulib update 2015-08-24 18:50:55 +01:00
gdb_vecs.c More char constification 2015-10-13 19:40:50 +01:00
gdb_vecs.h Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
gdb_wait.h musl: Move W_STOPCODE to common/gdb_wait.h. 2015-10-26 13:24:01 -07:00
host-defs.h Move utility functions to common/ 2015-06-15 17:04:56 +02:00
mingw-strerror.c Move safe_strerror to common/ 2015-01-15 15:09:15 -05:00
posix-strerror.c Move safe_strerror to common/ 2015-01-15 15:09:15 -05:00
print-utils.c Make host_address_to_string/gdb_print_host_address cast parameter to 'void *' 2015-10-27 17:33:01 +00:00
print-utils.h Make host_address_to_string/gdb_print_host_address cast parameter to 'void *' 2015-10-27 17:33:01 +00:00
ptid.c Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
ptid.h Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
queue.h Replace some xmalloc-family functions with XNEW-family ones 2015-08-26 17:18:12 -04:00
rsp-low.c remote: consider addressable unit size when reading/writing memory 2015-06-18 13:12:39 -04:00
rsp-low.h remote: consider addressable unit size when reading/writing memory 2015-06-18 13:12:39 -04:00
signals.c Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
symbol.h Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
vec.c Add some more casts (1/2) 2015-09-25 14:08:07 -04:00
vec.h Add cast to VEC_iterate 2015-10-29 17:39:33 +00:00
version.h Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
x86-xstate.h Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
xml-utils.c Add casts to memory allocation related calls 2015-09-25 14:08:06 -04:00
xml-utils.h Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00