aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog9
-rw-r--r--gdb/Makefile.in8
-rw-r--r--gdb/configure.in74
-rw-r--r--gdb/gdb-stop.c110
4 files changed, 164 insertions, 37 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 7da1398..05c18d2 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,12 @@
+Thu Jun 16 14:41:37 1994 Stan Shebs (shebs@andros.cygnus.com)
+
+ * configure.in: Improve sorting/formatting of hosts and targets.
+ (i[34]86-*-mach3*, i[34]86-*-osf1mk*, mips-*-mach3*,
+ m88*-*-mach3*, ns32k-*-mach3*): Recognize.
+ * Makefile.in (gdb-stop): New target.
+ * gdb-stop.c: New file, utility to gets attention of waiting GDBs
+ in Mach 3.
+
Wed Jun 15 00:41:03 1994 Tom Lord (lord@rtl.cygnus.com)
* top.c (gdb_init): Init current_directory in gdb_init. Probably
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index 0590761..adad21d 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -1,4 +1,4 @@
-#Copyright 1989, 1990, 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
+# Copyright 1989, 1990, 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
# This file is part of GDB.
@@ -587,6 +587,12 @@ saber_gdb: $(SFILES) $(DEPFILES) copying.c version.c
echo "Load .c corresponding to:" $(DEPFILES)
+# A Mach 3.0 program to force gdb back to command level
+
+gdb-stop: gdb-stop.o
+ ${CC-LD} $(GLOBAL_CFLAGS) $(LDFLAGS) -o gdb-stop \
+ gdb-stop.o $(CLIBS) $(LOADLIBES)
+
# This is useful when debugging GDB, because some Unix's don't let you run GDB
# on itself without copying the executable. So "make gdb1" will make
# gdb and put a copy in gdb1, and you can run it with "gdb gdb1".
diff --git a/gdb/configure.in b/gdb/configure.in
index 2496eaf..f468538 100644
--- a/gdb/configure.in
+++ b/gdb/configure.in
@@ -1,7 +1,13 @@
-configdirs="doc testsuite"
+# This file is a shell script fragment that supplies the information
+# necessary to tailor a template configure script into the configure
+# script appropriate for this directory. For more information, check
+# any existing configure script.
+
srcname="GDB"
srctrigger=main.c
+configdirs="doc testsuite"
+
# per-host:
# Map host cpu into the config cpu subdirectory name.
@@ -13,6 +19,7 @@ c[12]) gdb_host_cpu=convex ;;
hppa*) gdb_host_cpu=pa ;;
i[34]86) gdb_host_cpu=i386 ;;
m68*) gdb_host_cpu=m68k ;;
+m88*) gdb_host_cpu=m88k ;;
np1) gdb_host_cpu=gould ;;
pyramid) gdb_host_cpu=pyr ;;
*) gdb_host_cpu=$host_cpu ;;
@@ -32,25 +39,23 @@ arm-*-*) gdb_host=arm ;;
c[12]-*-*) gdb_host=convex ;;
hppa*-*-bsd*) gdb_host=hppabsd ;;
-hppa*-*-hpux*) gdb_host=hppahpux ;;
hppa*-*-hiux*) gdb_host=hppahpux ;;
+hppa*-*-hpux*) gdb_host=hppahpux ;;
hppa*-*-osf*) gdb_host=hppabsd ;;
i[34]86-ncr-*) gdb_host=ncr3000 ;;
-i[34]86-sequent-bsd*) gdb_host=symmetry ;; #dynix
+i[34]86-sequent-bsd*) gdb_host=symmetry ;; # dynix
i[34]86-sequent-sysv4*) gdb_host=ptx4 ;;
i[34]86-sequent-sysv*) gdb_host=ptx ;;
-
i[34]86-*-aix*) gdb_host=i386aix ;;
i[34]86-*-bsd*) gdb_host=i386bsd ;;
i[34]86-*-netbsd*) gdb_host=i386bsd ;;
-i[34]86-*-go32*) gdb_host=go32 ;;
+i[34]86-*-go32*) gdb_host=go32 ;;
i[34]86-*-linux*) gdb_host=linux ;;
i[34]86-*-lynxos*) gdb_host=i386lynx ;;
-# Obsolete I suspect
-# i[34]86-*-mach) gdb_host=i386mach ;;
-i[34]86-*-mach*) gdb_host=i386m3 ;;
-i[34]86-*-osf1mk*) gdb_host=i386mk ;;
+i[34]86-*-mach3*) gdb_host=mach3 ;;
+i[34]86-*-mach*) gdb_host=i386mach ;;
+i[34]86-*-osf1mk*) gdb_host=osf1mk ;;
i[34]86-*-sco3.2v4*) gdb_host=i386sco4 ;;
i[34]86-*-sco*) gdb_host=i386sco ;;
i[34]86-*-solaris*) gdb_host=i386sol2 ;;
@@ -85,24 +90,26 @@ m68*-sun-*) gdb_host=sun3os4 ;;
m88*-motorola-sysv4*) gdb_host=delta88v4 ;;
m88*-motorola-sysv*) gdb_host=delta88 ;;
-# I suspect this is just used for DGUX
+m88*-*-mach3*) gdb_host=mach3 ;;
m88*-*-*) gdb_host=m88k ;;
+mips-dec-mach3*) gdb_host=mach3 ;;
mips-dec-*) gdb_host=decstation ;;
mips-little-*) gdb_host=littlemips ;;
mips-sgi-irix3*) gdb_host=irix3 ;;
mips-sgi-irix4*) gdb_host=irix4 ;;
mips-sgi-irix5*) gdb_host=irix5 ;;
mips-sony-*) gdb_host=news-mips ;;
+mips-*-mach3*) gdb_host=mach3 ;;
mips-*-sysv4*) gdb_host=mipsv4 ;;
mips-*-sysv*) gdb_host=riscos ;;
mips-*-riscos*) gdb_host=riscos ;;
-mips-*-mach*) gdb_host=mipsm3 ;;
none-*-*) gdb_host=none ;;
np1-*-*) gdb_host=np1 ;;
+ns32k-*-mach3*) gdb_host=mach3 ;;
ns32k-umax-*) gdb_host=umax ;;
ns32k-utek-sysv*) gdb_host=merlin ;;
@@ -149,14 +156,13 @@ c[12]) gdb_target_cpu=convex ;;
hppa*) gdb_target_cpu=pa ;;
i[34]86) gdb_target_cpu=i386 ;;
m68*) gdb_target_cpu=m68k ;;
-m8*) gdb_target_cpu=m88k ;;
+m88*) gdb_target_cpu=m88k ;;
mips*) gdb_target_cpu=mips ;;
np1) gdb_target_cpu=gould ;;
pn) gdb_target_cpu=gould ;;
pyramid) gdb_target_cpu=pyr ;;
sparclite*) gdb_target_cpu=sparc
- configdirs="${configdirs} sparclite"
- ;;
+ configdirs="${configdirs} sparclite" ;;
sparc*) gdb_target_cpu=sparc ;;
*) gdb_target_cpu=$target_cpu ;;
@@ -177,8 +183,8 @@ a29k-*-udi*) gdb_target=a29k-udi ;;
alpha-*-osf*) gdb_target=alpha-osf1 ;;
alpha-*-netware*) gdb_target=alpha-nw
- configdirs="${configdirs} nlm"
- ;;
+ configdirs="${configdirs} nlm" ;;
+
arm-*-*) gdb_target=arm ;;
c1-*-*) gdb_target=convex ;;
@@ -198,19 +204,16 @@ i[34]86-sequent-bsd*) gdb_target=symmetry ;;
i[34]86-sequent-sysv4*) gdb_target=ptx4 ;;
i[34]86-sequent-sysv*) gdb_target=ptx ;;
i[34]86-ncr-*) gdb_target=ncr3000 ;;
-
i[34]86-*-aout*) gdb_target=i386aout ;;
i[34]86-*-coff*) gdb_target=i386v ;;
i[34]86-*-elf*) gdb_target=i386v ;;
-
i[34]86-*-aix*) gdb_target=i386aix ;;
i[34]86-*-bsd*) gdb_target=i386bsd ;;
i[34]86-*-netbsd*) gdb_target=i386bsd ;;
i[34]86-*-os9k) gdb_target=i386os9k ;;
i[34]86-*-go32*) gdb_target=i386aout ;;
i[34]86-*-lynxos*) gdb_target=i386lynx
- configdirs="${configdirs} gdbserver"
- ;;
+ configdirs="${configdirs} gdbserver" ;;
i[34]86-*-solaris*) gdb_target=i386sol2 ;;
i[34]86-*-sunos*) gdb_target=sun386 ;;
i[34]86-*-sysv4*) gdb_target=i386v4 ;;
@@ -218,7 +221,8 @@ i[34]86-*-sco*) gdb_target=i386v ;;
i[34]86-*-sysv*) gdb_target=i386v ;;
i[34]86-*-linux*) gdb_target=linux ;;
i[34]86-*-isc*) gdb_target=i386v ;;
-i[34]86-*-mach*) gdb_target=i386m3 ;;
+i[34]86-*-mach3*) gdb_target=mach3 ;;
+i[34]86-*-mach*) gdb_target=i386mach ;;
i[34]86-*-netware*) gdb_target=i386nw ;;
i[34]86-*-osf1mk*) gdb_target=i386mk ;;
@@ -232,43 +236,41 @@ i960-*-vxworks*) gdb_target=vxworks960 ;;
m68000-*-sunos3*) gdb_target=sun2os3 ;;
m68000-*-sunos4*) gdb_target=sun2os4 ;;
-m68*-cbm-sysv4*) gdb_target=amix ;;
-m68*-bull-sysv*) gdb_target=dpx2 ;;
-m68*-hp-bsd*) gdb_target=hp300bsd ;;
-m68*-hp-hpux*) gdb_target=hp300hpux ;;
-
m68*-altos-*) gdb_target=altos ;;
m68*-apollo*-bsd*) gdb_target=apollo68b ;;
m68*-att-*) gdb_target=3b1 ;;
+m68*-bull-sysv*) gdb_target=dpx2 ;;
+m68*-cbm-sysv4*) gdb_target=amix ;;
m68*-cisco*-*) gdb_target=cisco ;;
m68*-ericsson-*) gdb_target=es1800 ;;
+m68*-hp-bsd*) gdb_target=hp300bsd ;;
+m68*-hp-hpux*) gdb_target=hp300hpux ;;
m68*-isi-*) gdb_target=isi ;;
m68*-motorola-*) gdb_target=delta68 ;;
m68*-netx-*) gdb_target=vxworks68 ;;
m68*-sony-*) gdb_target=news ;;
m68*-tandem-*) gdb_target=st2000 ;;
-
m68*-rom68k-*) gdb_target=monitor ;;
m68*-*bug-*) gdb_target=monitor ;;
m68*-monitor-*) gdb_target=monitor ;;
-
m68*-*-aout*) gdb_target=monitor ;;
m68*-*-coff*) gdb_target=monitor ;;
m68*-*-elf*) gdb_target=monitor ;;
m68*-*-lynxos*) gdb_target=m68klynx
- configdirs="${configdirs} gdbserver"
- ;;
+ configdirs="${configdirs} gdbserver" ;;
m68*-*-os68k*) gdb_target=os68k ;;
m68*-*-sunos3*) gdb_target=sun3os3 ;;
m68*-*-sunos4*) gdb_target=sun3os4 ;;
m68*-*-vxworks*) gdb_target=vxworks68 ;;
m88*-motorola-sysv4*) gdb_target=delta88v4 ;;
+m88*-*-mach3*) gdb_target=mach3 ;;
m88*-motorola-*) gdb_target=delta88 ;;
m88*-*-*) gdb_target=m88k ;;
mips64*-big-*) gdb_target=bigmips64 ;;
mips*-big-*) gdb_target=bigmips ;;
+mips*-dec-mach3*) gdb_target=mach3 ;;
mips*-dec-*) gdb_target=decstation ;;
mips64*el-*-ecoff*) gdb_target=idtl64 ;;
mips64*-idt-ecoff*) gdb_target=idt64 ;;
@@ -282,15 +284,16 @@ mips*-little-*) gdb_target=littlemips ;;
mips*-sgi-irix5*) gdb_target=irix5 ;;
mips*-sgi-*) gdb_target=irix3 ;;
mips*-sony-*) gdb_target=bigmips ;;
+mips*-*-mach3*) gdb_target=mach3 ;;
mips*-*-sysv4*) gdb_target=mipsv4 ;;
mips*-*-sysv*) gdb_target=bigmips ;;
mips*-*-riscos*) gdb_target=bigmips ;;
-mips*-*-mach*) gdb_target=mipsm3 ;;
none-*-*) gdb_target=none ;;
np1-*-*) gdb_target=np1 ;;
+ns32k-*-mach3*) gdb_target=mach3 ;;
ns32k-utek-sysv*) gdb_target=merlin ;;
ns32k-utek-*) gdb_target=umax ;;
@@ -305,22 +308,21 @@ sparc-*-aout*) gdb_target=sparc-em ;;
sparc-*-coff*) gdb_target=sparc-em ;;
sparc-*-elf*) gdb_target=sparc-em ;;
sparc-*-lynxos*) gdb_target=sparclynx
- configdirs="${configdirs} gdbserver"
- ;;
+ configdirs="${configdirs} gdbserver" ;;
sparc-*-solaris2*) gdb_target=sun4sol2 ;;
sparc-*-sunos4*) gdb_target=sun4os4 ;;
sparc-*-vxworks*) gdb_target=vxsparc ;;
sparc-*-*) gdb_target=sun4os4 ;;
sparclite*-*-*) gdb_target=sparclite ;;
-# start-sanitize-v9
-sparc64-*-*) gdb_target_cpu=sparc gdb_target=sp64 ;;
-# end-sanitize-v9
+sparc64-*-*) gdb_target=sp64 ;;
tahoe-*-*) gdb_target=tahoe ;;
+
vax-*-*) gdb_target=vax ;;
z8k-*-sim*) gdb_target=z8ksim ;;
z8k-*-coff*) gdb_target=z8ksim ;;
+
esac
if [ ! -f ${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt ]; then
diff --git a/gdb/gdb-stop.c b/gdb/gdb-stop.c
new file mode 100644
index 0000000..abb3d69
--- /dev/null
+++ b/gdb/gdb-stop.c
@@ -0,0 +1,110 @@
+/* A client to make GDB return to command level in Mach 3.
+ Copyright (C) 1992, 1993 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 2 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+/* Authors: Jukka Virtanen <jtv@hut.fi> and Peter Stout <pds@cs.cmu.edu>.
+
+ A simple client to make GDB (versions 4.4 and later) on Mach 3 return
+ to the command level when it is waiting for the inferior to stop.
+
+ Actions: Lookup the send right to the GDB message port from the
+ NetMsgServer.
+
+ Send an asynchronous message with msgh_id
+ GDB_MESSAGE_ID_STOP to that port.
+ */
+
+#include <stdio.h>
+
+#include "defs.h"
+
+#include <mach.h>
+#include <mach/message.h>
+#include <mach_error.h>
+#include <servers/netname.h>
+#include <servers/netname_defs.h>
+
+void
+main (argc, argv)
+ int argc;
+ char **argv;
+{
+ kern_return_t kr;
+ mach_msg_header_t msg;
+ mach_port_t gdb_port;
+ char *host;
+ char *name;
+
+ if (argc == 1)
+ argv[argc++] = GDB_DEF_NAME;
+
+ if (argc != 2)
+ {
+ fprintf (stderr, "Usage : %s <GDB name>\n", argv[0]);
+ exit (1);
+ }
+
+ /* Allow the user to specify a remote host. */
+ host = strchr (argv[1], '@');
+ if (host)
+ *(host++) = '\0';
+ else
+ host = (char *) "";
+
+ name = malloc (strlen (argv[1]) + sizeof(GDB_NAME_PREFIX));
+ if (name == NULL)
+ {
+ fprintf (stderr, "Unable to allocate memory for name.");
+ exit (1);
+ }
+
+ strcpy (name, GDB_NAME_PREFIX);
+ strcat (name, argv[1]);
+
+ /* Look up the GDB service port. For convenience, add the
+ GDB_NAME_PREFIX the argument before looking up the name.
+ For backwards compatibility, do it without. */
+
+ kr = netname_look_up (name_server_port, host, name, &gdb_port);
+ if (kr == NETNAME_NOT_CHECKED_IN)
+ kr = netname_look_up (name_server_port, host, argv[1], &gdb_port);
+ if (kr != KERN_SUCCESS)
+ {
+ fprintf (stderr, "Unable to lookup the GDB service port: %s.\n",
+ mach_error_string(kr));
+ exit(1);
+ }
+
+ /* Code generated by mig stub generator, with minor cleanups :-)
+
+ simpleroutine stop_inferior(gdb_port : mach_port_t); */
+
+ msg.msgh_bits = MACH_MSGH_BITS (MACH_MSG_TYPE_COPY_SEND, 0);
+ msg.msgh_remote_port = gdb_port;
+ msg.msgh_local_port = MACH_PORT_NULL;
+ msg.msgh_size = sizeof(msg);
+ msg.msgh_seqno = 0;
+ msg.msgh_id = GDB_MESSAGE_ID_STOP;
+
+ kr = mach_msg_send (&msg);
+ if (kr != KERN_SUCCESS)
+ fprintf (stderr, "Message not sent, return code %d : %s\n", kr,
+ mach_error_string (kr));
+
+ exit (kr != KERN_SUCCESS);
+}