aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Buettner <kevinb@redhat.com>2001-02-21 05:20:35 +0000
committerKevin Buettner <kevinb@redhat.com>2001-02-21 05:20:35 +0000
commitfbad08934dd31e50f358eaf3db5d2b827946d643 (patch)
tree6edfc66e2b784d60a451bf9f3d47f77fb1704d5f
parent1ac7e077c996dea0b51806abba30f9fe80e65972 (diff)
downloadgdb-fbad08934dd31e50f358eaf3db5d2b827946d643.zip
gdb-fbad08934dd31e50f358eaf3db5d2b827946d643.tar.gz
gdb-fbad08934dd31e50f358eaf3db5d2b827946d643.tar.bz2
Enable new thread support for Linux/IA-64.
-rw-r--r--gdb/ChangeLog10
-rw-r--r--gdb/config/ia64/linux.mh2
-rw-r--r--gdb/config/ia64/nm-linux.h16
-rw-r--r--gdb/ia64-tdep.c4
4 files changed, 29 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 5c2f674..379e177 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,13 @@
+2001-02-20 Kevin Buettner <kevinb@redhat.com>
+
+ * ia64-tdep.c (ia64_frameless_function_invocation): Implement.
+ * config/ia64/linux.mh (NATDEPFILES): Use thread-db.o and lin-lwp.o
+ for thread support instead of linux-thread.o and lin-thread.o.
+ * config/ia64/nm-linux.h (PREPARE_TO_PROCEED, GET_THREAD_SIGNALS,
+ ATTACH_LWP): Define to use the following lin-lwp.c functions...
+ (lin_lwp_prepare_to_proceed, lin_thread_get_thread_signals,
+ lin_lwp_attach_lwp): Declare.
+
2001-02-20 Andrew Cagney <ac131313@redhat.com>
* mips-tdep.c (do_fp_register_row, do_fp_register_row): Fix printf
diff --git a/gdb/config/ia64/linux.mh b/gdb/config/ia64/linux.mh
index 5f10b09..8e27f97 100644
--- a/gdb/config/ia64/linux.mh
+++ b/gdb/config/ia64/linux.mh
@@ -5,7 +5,7 @@ XDEPFILES=
NAT_FILE= nm-linux.h
NATDEPFILES= infptrace.o inftarg.o fork-child.o corelow.o \
- core-aout.o core-regset.o ia64-linux-nat.o linux-thread.o lin-thread.o
+ core-aout.o core-regset.o ia64-linux-nat.o thread-db.o lin-lwp.o
LOADLIBES = -ldl -rdynamic
diff --git a/gdb/config/ia64/nm-linux.h b/gdb/config/ia64/nm-linux.h
index 4422d1d..579d305 100644
--- a/gdb/config/ia64/nm-linux.h
+++ b/gdb/config/ia64/nm-linux.h
@@ -75,4 +75,20 @@ extern int ia64_linux_insert_watchpoint (int pid, CORE_ADDR addr,
ia64_linux_remove_watchpoint (inferior_pid, addr, len)
extern int ia64_linux_remove_watchpoint (int pid, CORE_ADDR addr, int len);
+/* FIXME: kettenis/2000-09-03: This should be moved to ../nm-linux.h
+ once we have converted all Linux targets to use the new threads
+ stuff (without the #undef of course). */
+
+extern int lin_lwp_prepare_to_proceed (void);
+#undef PREPARE_TO_PROCEED
+#define PREPARE_TO_PROCEED(select_it) lin_lwp_prepare_to_proceed ()
+
+extern void lin_lwp_attach_lwp (int pid, int verbose);
+#define ATTACH_LWP(pid, verbose) lin_lwp_attach_lwp ((pid), (verbose))
+
+#include <signal.h>
+
+extern void lin_thread_get_thread_signals (sigset_t *mask);
+#define GET_THREAD_SIGNALS(mask) lin_thread_get_thread_signals (mask)
+
#endif /* #ifndef NM_LINUX_H */
diff --git a/gdb/ia64-tdep.c b/gdb/ia64-tdep.c
index 0ace093..e68c5fb 100644
--- a/gdb/ia64-tdep.c
+++ b/gdb/ia64-tdep.c
@@ -1341,8 +1341,8 @@ ia64_store_struct_return (CORE_ADDR addr, CORE_ADDR sp)
int
ia64_frameless_function_invocation (struct frame_info *frame)
{
- /* FIXME: Implement */
- return 0;
+ FRAME_INIT_SAVED_REGS (frame);
+ return (frame->extra_info->mem_stack_frame_size == 0);
}
CORE_ADDR