Enable new thread support for Linux/IA-64.
authorKevin Buettner <kevinb@redhat.com>
Wed, 21 Feb 2001 05:20:35 +0000 (05:20 +0000)
committerKevin Buettner <kevinb@redhat.com>
Wed, 21 Feb 2001 05:20:35 +0000 (05:20 +0000)
gdb/ChangeLog
gdb/config/ia64/linux.mh
gdb/config/ia64/nm-linux.h
gdb/ia64-tdep.c

index 5c2f674..379e177 100644 (file)
@@ -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
index 5f10b09..8e27f97 100644 (file)
@@ -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
 
index 4422d1d..579d305 100644 (file)
@@ -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 */
index 0ace093..e68c5fb 100644 (file)
@@ -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