aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog14
-rw-r--r--gdb/Makefile.in2
-rw-r--r--gdb/NEWS4
-rw-r--r--gdb/config/sh/nbsd.mh6
-rw-r--r--gdb/configure.host1
-rw-r--r--gdb/shnbsd-nat.c34
6 files changed, 47 insertions, 14 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 876185a..01f510c 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,19 @@
2006-12-16 Mark Kettenis <kettenis@gnu.org>
+ Add OpenBSD/sh native support.
+ * NEWS (New native configurations): Mention OpenBSD/sh.
+ * configure.host: Add sh*-*-openbsd*.
+ * shnbsd-nat.c: Include "inf-ptrace.h".
+ (shnbsd_fetch_inferior_registers): Rename from
+ fetch_inferior_registers. Make static.
+ (shnbsd_store_inferior_registers): Rename from
+ store_inferior_registers. Make static.
+ (_initialize_shnbsd_nat): New function.
+ * Makefile.in (shnbsd-nat.o): Update dependencies.
+ * config/sh/nbsd.mh (NAT_CLIBS, NAT_FILE): Remove.
+ (NATDEPFILES): Remove infptrace.o and inftarg.o. Add
+ inf-ptrace.o.
+
Add OpenBSD/sh support.
* NEWS (New targets): Mention OpenBSD/sh.
* configure.tgt: Add sh*-*-openbsd*.
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index 695a3a7..51e74df 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -2604,7 +2604,7 @@ sh64-tdep.o: sh64-tdep.c $(defs_h) $(frame_h) $(frame_base_h) \
$(gdb_string_h) $(gdb_assert_h) $(arch_utils_h) $(regcache_h) \
$(osabi_h) $(elf_bfd_h) $(elf_sh_h) $(gdb_sim_sh_h)
shnbsd-nat.o: shnbsd-nat.c $(defs_h) $(inferior_h) $(sh_tdep_h) \
- $(shnbsd_tdep_h)
+ $(shnbsd_tdep_h) $(inf_ptrace_h)
shnbsd-tdep.o: shnbsd-tdep.c $(defs_h) $(gdbcore_h) $(regcache_h) $(value_h) \
$(osabi_h) $(solib_svr4_h) $(nbsd_tdep_h) $(sh_tdep_h) \
$(shnbsd_tdep_h)
diff --git a/gdb/NEWS b/gdb/NEWS
index b39c89c..22b7518 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -28,6 +28,10 @@ show breakpoint auto-hw
"break" command and internal breakpoints used for other commands
including "next" and "finish".
+* New native configurations
+
+OpenBSD/sh sh*-*openbsd*
+
* New targets
OpenBSD/sh sh*-*-openbsd*
diff --git a/gdb/config/sh/nbsd.mh b/gdb/config/sh/nbsd.mh
index 9c7cec9..d5e67cb 100644
--- a/gdb/config/sh/nbsd.mh
+++ b/gdb/config/sh/nbsd.mh
@@ -1,4 +1,2 @@
-# Host: SuperH running NetBSD
-NAT_CLIBS=
-NATDEPFILES= infptrace.o inftarg.o fork-child.o shnbsd-nat.o
-NAT_FILE= config/nm-nbsd.h
+# Host: NetBSD/sh
+NATDEPFILES= fork-child.o inf-ptrace.o shnbsd-nat.o
diff --git a/gdb/configure.host b/gdb/configure.host
index 3615859..f8aa18d 100644
--- a/gdb/configure.host
+++ b/gdb/configure.host
@@ -130,6 +130,7 @@ s390*-*-*) gdb_host=s390 ;;
sh*-*-netbsdelf* | sh*-*-knetbsd*-gnu)
gdb_host=nbsd ;;
+sh*-*-openbsd*) gdb_host=nbsd ;;
sparc64-*-freebsd* | sparc64-*-kfreebsd*-gnu)
gdb_host=fbsd ;;
diff --git a/gdb/shnbsd-nat.c b/gdb/shnbsd-nat.c
index 8a2ded3..264d01e 100644
--- a/gdb/shnbsd-nat.c
+++ b/gdb/shnbsd-nat.c
@@ -1,6 +1,7 @@
-/* Native-dependent code for SuperH running NetBSD, for GDB.
+/* Native-dependent code for NetBSD/sh.
+
+ Copyright (C) 2002, 2003, 2004, 2006 Free Software Foundation, Inc.
- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
Contributed by Wasabi Systems, Inc.
This file is part of GDB.
@@ -20,15 +21,16 @@
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. */
+#include "defs.h"
+#include "inferior.h"
+
#include <sys/types.h>
#include <sys/ptrace.h>
#include <machine/reg.h>
-#include "defs.h"
-#include "inferior.h"
-
#include "sh-tdep.h"
#include "shnbsd-tdep.h"
+#include "inf-ptrace.h"
/* Determine if PT_GETREGS fetches this register. */
#define GETREGS_SUPPLIES(regno) \
@@ -37,8 +39,8 @@
|| (regno) == MACH_REGNUM || (regno) == MACL_REGNUM \
|| (regno) == SR_REGNUM)
-void
-fetch_inferior_registers (int regno)
+static void
+shnbsd_fetch_inferior_registers (int regno)
{
if (regno == -1 || GETREGS_SUPPLIES (regno))
{
@@ -55,8 +57,8 @@ fetch_inferior_registers (int regno)
}
}
-void
-store_inferior_registers (int regno)
+static void
+shnbsd_store_inferior_registers (int regno)
{
if (regno == -1 || GETREGS_SUPPLIES (regno))
{
@@ -76,3 +78,17 @@ store_inferior_registers (int regno)
return;
}
}
+
+/* Provide a prototype to silence -Wmissing-prototypes. */
+void _initialize_shnbsd_nat (void);
+
+void
+_initialize_shnbsd_nat (void)
+{
+ struct target_ops *t;
+
+ t = inf_ptrace_target ();
+ t->to_fetch_registers = shnbsd_fetch_inferior_registers;
+ t->to_store_registers = shnbsd_store_inferior_registers;
+ add_target (t);
+}