Introduce common-types.h
authorGary Benson <gbenson@redhat.com>
Wed, 30 Jul 2014 14:31:10 +0000 (15:31 +0100)
committerGary Benson <gbenson@redhat.com>
Tue, 19 Aug 2014 09:07:19 +0000 (10:07 +0100)
This introduces common-types.h.  This file defines various standard
types used by gdb and gdbserver.

Currently these types are conditionally defined based on GDBSERVER.
The long term goal is to remove all such tests; however, this is
difficult as currently gdb uses definitions from BFD.  In the meantime
this is still a step in the right direction.

gdb/ChangeLog:

* common/common-types.h: New file.
* Makefile.in (HFILES_NO_SRCDIR): Add common/common-types.h.
* common/common-defs.h: Include common-types.h.
* defs.h (gdb_byte, CORE_ADDR, CORE_ADDR_MAX, LONGEST)
(ULONGEST): Remove.

gdb/gdbserver/ChangeLog:

* server.h: Add static assertion.
(gdb_byte, CORE_ADDR, LONGEST, ULONGEST): Remove.

gdb/ChangeLog
gdb/Makefile.in
gdb/common/common-defs.h
gdb/common/common-types.h [new file with mode: 0644]
gdb/defs.h
gdb/gdbserver/ChangeLog
gdb/gdbserver/server.h

index 8c9a8d8bef4f092d03e11a96b4102dae983b00a6..4c8b76b2b87bb059140c7570d62f20d2e43a9e36 100644 (file)
@@ -1,3 +1,12 @@
+2014-08-19  Tom Tromey  <tromey@redhat.com>
+           Gary Benson  <gbenson@redhat.com>
+
+       * common/common-types.h: New file.
+       * Makefile.in (HFILES_NO_SRCDIR): Add common/common-types.h.
+       * common/common-defs.h: Include common-types.h.
+       * defs.h (gdb_byte, CORE_ADDR, CORE_ADDR_MAX, LONGEST)
+       (ULONGEST): Remove.
+
 2014-08-19  Tom Tromey  <tromey@redhat.com>
            Gary Benson  <gbenson@redhat.com>
 
index fa0dcd41702215b3b2a3945a5be255b21a1b9ee7..76ca0dae20385b033c66a00d5cea2177cc73a7b5 100644 (file)
@@ -936,7 +936,7 @@ gdb_bfd.h sparc-ravenscar-thread.h ppc-ravenscar-thread.h nat/linux-btrace.h \
 ctf.h nat/i386-cpuid.h nat/i386-gcc-cpuid.h target/resume.h \
 target/wait.h target/waitstatus.h nat/linux-nat.h nat/linux-waitpid.h \
 common/print-utils.h common/rsp-low.h nat/i386-dregs.h x86-linux-nat.h \
-i386-linux-nat.h common/common-defs.h common/errors.h
+i386-linux-nat.h common/common-defs.h common/errors.h common/common-types.h
 
 # Header files that already have srcdir in them, or which are in objdir.
 
index a15423cde14e22272810d7fd87b59289cc381c31..5543e4c56bd3438cda4092b0c80ef851db2ce740 100644 (file)
@@ -42,5 +42,6 @@
 #include "common-utils.h"
 #include "gdb_assert.h"
 #include "errors.h"
+#include "common-types.h"
 
 #endif /* COMMON_DEFS_H */
diff --git a/gdb/common/common-types.h b/gdb/common/common-types.h
new file mode 100644 (file)
index 0000000..9fa1c24
--- /dev/null
@@ -0,0 +1,61 @@
+/* Declarations for common types.
+
+   Copyright (C) 1986-2014 Free Software Foundation, Inc.
+
+   This file is part of GDB.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef COMMON_TYPES_H
+#define COMMON_TYPES_H
+
+#ifdef GDBSERVER
+
+/* * A byte from the program being debugged.  */
+typedef unsigned char gdb_byte;
+
+typedef unsigned long long CORE_ADDR;
+
+typedef long long LONGEST;
+typedef unsigned long long ULONGEST;
+
+#else /* GDBSERVER */
+
+#include "bfd.h"
+
+/* * A byte from the program being debugged.  */
+typedef bfd_byte gdb_byte;
+
+/* * An address in the program being debugged.  Host byte order.  */
+typedef bfd_vma CORE_ADDR;
+
+/* This is to make sure that LONGEST is at least as big as CORE_ADDR.  */
+
+#ifdef BFD64
+
+typedef BFD_HOST_64_BIT LONGEST;
+typedef BFD_HOST_U_64_BIT ULONGEST;
+
+#else /* No BFD64 */
+
+typedef long long LONGEST;
+typedef unsigned long long ULONGEST;
+
+#endif /* No BFD64 */
+#endif /* GDBSERVER */
+
+/* * The largest CORE_ADDR value.  */
+#define CORE_ADDR_MAX (~ (CORE_ADDR) 0)
+
+#endif /* COMMON_TYPES_H */
index b7271a7566453bb35f292ad283c42bd76f83bd17..8914512bc7a74d059151484779edf7c68cdae0c2 100644 (file)
 
 #include "hashtab.h"
 
-/* Rather than duplicate all the logic in BFD for figuring out what
-   types to use (which can be pretty complicated), symply define them
-   in terms of the corresponding type from BFD.  */
-
-#include "bfd.h"
-
-/* * A byte from the program being debugged.  */
-typedef bfd_byte gdb_byte;
-
-/* * An address in the program being debugged.  Host byte order.  */
-typedef bfd_vma CORE_ADDR;
-
-/* * The largest CORE_ADDR value.  */
-#define CORE_ADDR_MAX (~ (CORE_ADDR) 0)
-
-/* This is to make sure that LONGEST is at least as big as CORE_ADDR.  */
-
-#ifdef BFD64
-
-#define LONGEST BFD_HOST_64_BIT
-#define ULONGEST BFD_HOST_U_64_BIT
-
-#else /* No BFD64 */
-
-#define LONGEST long long
-#define ULONGEST unsigned long long
-
-#endif /* No BFD64 */
-
 #ifndef min
 #define min(a, b) ((a) < (b) ? (a) : (b))
 #endif
index 00c5324ca4a57858d5b04971270f4af199df71d0..81db69a6d87a264c17afbbd97f1d1ddeb30fc611 100644 (file)
@@ -1,3 +1,9 @@
+2014-08-19  Tom Tromey  <tromey@redhat.com>
+           Gary Benson  <gbenson@redhat.com>
+
+       * server.h: Add static assertion.
+       (gdb_byte, CORE_ADDR, LONGEST, ULONGEST): Remove.
+
 2014-08-19  Tom Tromey  <tromey@redhat.com>
            Gary Benson  <gbenson@redhat.com>
 
index db6ddde3411f9082a0b5ed2d5e2101b2c315921e..e6b22774507d1ad89814f76130263c7eaaae446d 100644 (file)
@@ -21,6 +21,8 @@
 
 #include "common-defs.h"
 
+gdb_static_assert (sizeof (CORE_ADDR) >= sizeof (void *));
+
 #ifdef __MINGW32CE__
 #include "wincecompat.h"
 #endif
@@ -63,19 +65,8 @@ int vsnprintf(char *str, size_t size, const char *format, va_list ap);
 #  define PROG "gdbserver"
 #endif
 
-/* A type used for binary buffers.  */
-typedef unsigned char gdb_byte;
-
 #include "buffer.h"
 #include "xml-utils.h"
-
-/* FIXME: This should probably be autoconf'd for.  It's an integer type at
-   least the size of a (void *).  */
-typedef unsigned long long CORE_ADDR;
-
-typedef long long LONGEST;
-typedef unsigned long long ULONGEST;
-
 #include "regcache.h"
 #include "gdb_signals.h"
 #include "target.h"