This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[PATCH] i386 GNU Hurd cleanup
- From: Mark Kettenis <kettenis at chello dot nl>
- To: gdb-patches at sources dot redhat dot com
- Date: Fri, 16 Aug 2002 00:25:04 +0200 (CEST)
- Subject: [PATCH] i386 GNU Hurd cleanup
Long overdue. Untested, but the target is broken anyway right now. I
should really get the Hurd up and running on my new machine.
Checked in.
Mark
Index: ChangeLog
from Mark Kettenis <kettenis@elgar.kettenis.dyndns.org>
* config/i386/nm-gnu.h: Removed.
* config/i386/nm-i386gnu.h: New file.
(THREAD_STATE_FLAVOR, THREAD_STATE_SIZE,
THREAD_STATE_SET_TRACED, THREAD_STATE_CLEAR_STATE, ATTACH_DETACH):
Moved here from ...
* config/i386/tm-i386gnu.h: ... here. Removed.
* config/i386/xm-i386gnu.h: Removed.
* config/i386/i386gnu.mh (XM_FILE): Set to xm-i386.h.
(NAT_FILE): Set to nm-i386gnu.h.
* config/i386/i386gnu.mt (TDEPFILES): Add i386gnu-tdep.o.
* i386-tdep.c: New file.
* Makefile.in (ALLDEPFILES): Add i386gnu-nat.c and i386gnu-tdep.c.
(i386gnu-tdep.o): Specify dependencies.
Index: Makefile.in
===================================================================
RCS file: /cvs/src/src/gdb/Makefile.in,v
retrieving revision 1.236
diff -u -p -r1.236 Makefile.in
--- Makefile.in 14 Aug 2002 18:13:30 -0000 1.236
+++ Makefile.in 15 Aug 2002 22:17:32 -0000
@@ -1225,6 +1225,7 @@ ALLDEPFILES = a68v-nat.c \
i386bsd-nat.c i386bsd-tdep.c i386fbsd-nat.c \
i387-tdep.c \
i386-linux-tdep.c i386-nat.c \
+ i386gnu-nat.c i386gnu-tdep.c \
i960-tdep.c \
ia64-linux-nat.c ia64-linux-tdep.c ia64-tdep.c \
infptrace.c inftarg.c irix4-nat.c irix5-nat.c \
@@ -1658,6 +1659,8 @@ hppab-nat.o: hppab-nat.c $(bfd_h) $(defs
hppah-nat.o: hppah-nat.c $(bfd_h) $(defs_h) $(inferior_h) $(target_h) \
$(regcache_h)
+
+i386gnu-tdep.o: $(defs_h) $(i386_tdep_h)
i386gnu-nat.o: gnu-nat.h
Index: config/i386/i386gnu.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/i386/i386gnu.mh,v
retrieving revision 1.8
diff -u -p -r1.8 i386gnu.mh
--- config/i386/i386gnu.mh 11 May 2002 17:22:27 -0000 1.8
+++ config/i386/i386gnu.mh 15 Aug 2002 22:17:32 -0000
@@ -4,8 +4,8 @@ NATDEPFILES= i386gnu-nat.o gnu-nat.o cor
notify_S.o process_reply_S.o msg_reply_S.o \
msg_U.o exc_request_U.o exc_request_S.o
-XM_FILE= xm-i386gnu.h
-NAT_FILE= nm-gnu.h
+XM_FILE= xm-i386.h
+NAT_FILE= nm-i386gnu.h
MH_CFLAGS = -D_GNU_SOURCE
XM_CLIBS = -lshouldbeinlibc
Index: config/i386/i386gnu.mt
===================================================================
RCS file: /cvs/src/src/gdb/config/i386/i386gnu.mt,v
retrieving revision 1.2
diff -u -p -r1.2 i386gnu.mt
--- config/i386/i386gnu.mt 22 Jul 2001 20:35:14 -0000 1.2
+++ config/i386/i386gnu.mt 15 Aug 2002 22:17:32 -0000
@@ -1,3 +1,3 @@
-# Target: Intel 386/elf/GNU Hurd
-TDEPFILES= i386-tdep.o i387-tdep.o
-TM_FILE= tm-i386gnu.h
+# Target: Intel 386 running the GNU Hurd
+TDEPFILES= i386-tdep.o i387-tdep.o i386gnu-tdep.o
+TM_FILE= tm-i386v4.h
--- /dev/null Fri Aug 16 00:12:56 2002
+++ config/i386/nm-i386gnu.h Fri Aug 16 00:00:48 2002
@@ -0,0 +1,38 @@
+/* Native-dependent definitions for Intel 386 running the GNU Hurd
+ Copyright 1994, 1995, 1996, 2002 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., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#ifndef NM_I386GNU_H
+#define NM_I386GNU_H
+
+/* Include common definitions for GNU systems. */
+#include "config/nm-gnu.h"
+
+/* Thread flavors used in re-setting the T bit. */
+#define THREAD_STATE_FLAVOR i386_REGS_SEGS_STATE
+#define THREAD_STATE_SIZE i386_THREAD_STATE_COUNT
+#define THREAD_STATE_SET_TRACED(state) \
+ ((struct i386_thread_state *) (state))->efl |= 0x100
+#define THREAD_STATE_CLEAR_TRACED(state) \
+ ((((struct i386_thread_state *) (state))->efl &= ~0x100), 1)
+
+/* We can attach and detach. */
+#define ATTACH_DETACH 1
+
+#endif /* nm-i386gnu.h */
--- /dev/null Fri Aug 16 00:17:57 2002
+++ i386gnu-tdep.c Thu Aug 15 23:44:25 2002
@@ -0,0 +1,43 @@
+/* Target-dependent code for the GNU Hurd.
+ Copyright 2002 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., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include "defs.h"
+
+#include "i386-tdep.h"
+
+static void
+i386gnu_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
+{
+ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+
+ /* GNU uses ELF. */
+ i386_elf_init_abi (info, gdbarch);
+
+ tdep->jb_pc_offset = 20; /* From <bits/setjmp.h>. */
+}
+
+/* Provide a prototype to silence -Wmissing-prototypes. */
+extern void _initialize_i386gnu_tdep (void);
+
+void
+_initialize_i386gnu_tdep (void)
+{
+ gdbarch_register_osabi (bfd_arch_i386, GDB_OSABI_HURD, i386gnu_init_abi);
+}