Re: [RFC-v2] Fix .text section offset for windows DLL (was Calling __stdcall functions in the inferior)

Pedro Alves
2012-11-07T19:44:45Z

On 11/06/2012 02:31 PM, Pierre Muller wrote:
> --- coff-pe-read.h 4 Jan 2012 08:17:00 -0000 1.11
> +++ coff-pe-read.h 6 Nov 2012 13:37:01 -0000
> @@ -21,11 +21,17 @@
>
> #if !defined (COFF_PE_READ_H)
> #define COFF_PE_READ_H
> +#include "defs.h"

The need for this in a header hints at a problem elsewhere.
defs.h should always be the first included header.

> Index: coff-pe-read.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/coff-pe-read.c,v
> retrieving revision 1.17
> diff -u -p -r1.17 coff-pe-read.c
> --- coff-pe-read.c 4 Jan 2012 08:17:00 -0000 1.17
> +++ coff-pe-read.c 6 Nov 2012 13:37:01 -0000
> @@ -23,16 +23,26 @@
>
> #include "coff-pe-read.h"
>
> +#include <ctype.h>
> #include "defs.h"

There's the problem.

I did

$ grep "\"defs\.h" *.c -B 3 | grep include | grep -v "\"defs"

and

$ grep "\"defs\.h" *.h

and hopefully caught all cases.

Applying in a bit.

2012-11-07 Pedro Alves <palves@redhat.com>

* arm-tdep.c: Make defs.h be the first include.
* coff-pe-read.c: Ditto.
* gnu-nat.c: Ditto.
* go32-nat.c: Ditto.
* i386-nat.c: Ditto.
* ppcnbsd-nat.c: Ditto.
* ada-varobj.h: Don't include defs.h.
* i386-darwin-tdep.h: Ditto.
* i386-nat.h: Ditto.

---

gdb/ada-varobj.h | 1 -
gdb/arm-tdep.c | 3 ++-
gdb/coff-pe-read.c | 3 ++-
gdb/gnu-nat.c | 3 ++-
gdb/go32-nat.c | 3 ++-
gdb/i386-darwin-tdep.h | 1 -
gdb/i386-nat.c | 2 +-
gdb/i386-nat.h | 2 --
gdb/ppcnbsd-nat.c | 3 ++-
9 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/gdb/ada-varobj.h b/gdb/ada-varobj.h
index 2ef1a70..21f4cec 100644
--- a/gdb/ada-varobj.h
+++ b/gdb/ada-varobj.h
@@ -20,7 +20,6 @@
#ifndef ADA_VAROBJ_H
#define ADA_VAROBJ_H

-#include "defs.h"
#include "varobj.h"

struct value;
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index 05a030a..fbc2479 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -18,9 +18,10 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */

+#include "defs.h"
+
#include <ctype.h> /* XXX for isupper (). */

-#include "defs.h"
#include "frame.h"
#include "inferior.h"
#include "gdbcmd.h"
diff --git a/gdb/coff-pe-read.c b/gdb/coff-pe-read.c
index 66c7c82..fd55170 100644
--- a/gdb/coff-pe-read.c
+++ b/gdb/coff-pe-read.c
@@ -21,9 +21,10 @@

Contributed by Raoul M. Gough (RaoulGough@yahoo.co.uk). */

+#include "defs.h"
+
#include "coff-pe-read.h"

-#include "defs.h"
#include "bfd.h"
#include "gdbtypes.h"

diff --git a/gdb/gnu-nat.c b/gdb/gnu-nat.c
index 2ca01e1..b34935e 100644
--- a/gdb/gnu-nat.c
+++ b/gdb/gnu-nat.c
@@ -22,6 +22,8 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

+#include "defs.h"
+
#include <ctype.h>
#include <errno.h>
#include <limits.h>
@@ -52,7 +54,6 @@

#include <portinfo.h>

-#include "defs.h"
#include "inferior.h"
#include "symtab.h"
#include "value.h"
diff --git a/gdb/go32-nat.c b/gdb/go32-nat.c
index d848017..ef1da91 100644
--- a/gdb/go32-nat.c
+++ b/gdb/go32-nat.c
@@ -82,9 +82,10 @@
GDB does not use those as of this writing, and will never need
to. */

+#include "defs.h"
+
#include <fcntl.h>

-#include "defs.h"
#include "i386-nat.h"
#include "inferior.h"
#include "gdbthread.h"
diff --git a/gdb/i386-darwin-tdep.h b/gdb/i386-darwin-tdep.h
index 8be9946..4732b2d 100644
--- a/gdb/i386-darwin-tdep.h
+++ b/gdb/i386-darwin-tdep.h
@@ -19,7 +19,6 @@
#ifndef __I386_DARWIN_TDEP_H__
#define __I386_DARWIN_TDEP_H__

-#include "defs.h"
#include "frame.h"

/* Mapping between the general-purpose registers in Darwin x86 thread_state
diff --git a/gdb/i386-nat.c b/gdb/i386-nat.c
index e7d9b4d..559bc29 100644
--- a/gdb/i386-nat.c
+++ b/gdb/i386-nat.c
@@ -18,8 +18,8 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */

-#include "i386-nat.h"
#include "defs.h"
+#include "i386-nat.h"
#include "breakpoint.h"
#include "command.h"
#include "gdbcmd.h"
diff --git a/gdb/i386-nat.h b/gdb/i386-nat.h
index c06993c..be563ef 100644
--- a/gdb/i386-nat.h
+++ b/gdb/i386-nat.h
@@ -20,8 +20,6 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */

-#include "defs.h"
-
#ifndef I386_NAT_H
#define I386_NAT_H 1

diff --git a/gdb/ppcnbsd-nat.c b/gdb/ppcnbsd-nat.c
index 8f73283..2b7837d 100644
--- a/gdb/ppcnbsd-nat.c
+++ b/gdb/ppcnbsd-nat.c
@@ -19,13 +19,14 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */

+#include "defs.h"
+
#include <sys/types.h>
#include <sys/ptrace.h>
#include <machine/reg.h>
#include <machine/frame.h>
#include <machine/pcb.h>

-#include "defs.h"
#include "gdbcore.h"
#include "inferior.h"
#include "regcache.h"