common-defs.h: include <stdarg.h> before <stdio.h>
authorJoel Brobecker <brobecker@adacore.com>
Mon, 6 Oct 2014 18:50:46 +0000 (14:50 -0400)
committerJoel Brobecker <brobecker@adacore.com>
Fri, 14 Nov 2014 17:00:45 +0000 (21:00 +0400)
When trying to build gdbserver on ppc-lynx178, the compiler reports
while trying to compile gdbserver/ax.c that vsprintf is not declared.
Looking at my C99 reference manual (a draft), I see the following
synopsis:

    #include <stdarg.h>
    #include <stdio.h>
    int vsprintf(char * restrict s, [etc]);

Looking at stdio.h on LynxOS-178, if found where vsprintf gets
declared:

    #if defined(__varargs_h) || defined(__stdarg_h) \
            || defined(_VARARGS_H) || defined(_STDARG_H)
    extern int vsprintf             _AP((char *, const char *, va_list));
    #endif

Digging further, I noticed that common-defs.h, which is included
via server.h, includes stdarg.h after including stdio, explaining
why vsprintf does not get declared in this case.

This patch fixes the problem by including stdarg.h before stdio.h.

gdb/ChangeLog:

        * common/common-defs.h: Move <stdarg.h> #include ahead of
        <stdio.h> #include.

Tested on x86_64-linux.

gdb/ChangeLog
gdb/common/common-defs.h

index bfc427f387cd52317abcede51c1c16be6932b997..0ba42399c18952cf69e65d76c782651f3af24b1a 100644 (file)
@@ -1,3 +1,8 @@
+2014-11-14  Joel Brobecker  <brobecker@adacore.com>
+
+       * common/common-defs.h: Move <stdarg.h> #include ahead of
+       <stdio.h> #include.
+
 2014-11-14  Pedro Alves  <palves@redhat.com>
 
        * charset.c [PHONY_ICONV && !EILSEQ] (EILSEQ): Don't define.
index 29c8ab3039c425a41d694b6c1813084271962e75..4d2e8a73bb61a787e3066f0607d1b2b7a220090f 100644 (file)
@@ -27,9 +27,9 @@
 #include "build-gnulib/config.h"
 #endif
 
+#include <stdarg.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <stdarg.h>
 #include <stddef.h>
 #include <string.h>
 #include <errno.h>