This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[RFA] common-defs.h: include <stdarg.h> before <stdio.h>
- From: Joel Brobecker <brobecker at adacore dot com>
- To: gdb-patches at sourceware dot org
- Date: Fri, 14 Nov 2014 20:48:08 +0400
- Subject: [RFA] common-defs.h: include <stdarg.h> before <stdio.h>
- Authentication-results: sourceware.org; auth=none
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. This was also implicitly tested on all
the platforms that we build GDB & GDBserver on, and no problem
has been detected since we made that change (Oct 6th).
OK to commit?
Thanks,
--
Joel
---
gdb/common/common-defs.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gdb/common/common-defs.h b/gdb/common/common-defs.h
index 29c8ab3..4d2e8a7 100644
--- a/gdb/common/common-defs.h
+++ b/gdb/common/common-defs.h
@@ -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>
--
1.9.1