* configure.in: Test for struct lwp in <sys/lwp.h>
authorNathan J. Williams <nathanw@wasabisystems.com>
Sat, 7 Aug 2004 21:52:15 +0000 (21:52 +0000)
committerNathan J. Williams <nathanw@wasabisystems.com>
Sat, 7 Aug 2004 21:52:15 +0000 (21:52 +0000)
        * bsd-kvm.c (bsd_kvm_proc_cmd): If HAVE_STRUCT_LWP is defined, use
        the offset of l_addr in struct lwp.

gdb/ChangeLog
gdb/bsd-kvm.c
gdb/configure.in

index a19c0a707908a34e7df35f352fbda93420f7fef4..b20391a9feebbc16a4a7a88ae4c4e5b1629ed3e4 100644 (file)
@@ -1,3 +1,9 @@
+2004-08-07  Nathan J. Williams  <nathanw@wasabisystems.com>
+
+       * configure.in: Test for struct lwp in <sys/lwp.h>.
+       * bsd-kvm.c (bsd_kvm_proc_cmd): If HAVE_STRUCT_LWP is defined, use
+       the offset of l_addr in struct lwp.
+
 2004-08-07  Nathan J. Williams  <nathanw@wasabisystems.com>
 
        * bsd-kvm.c: Include "gdbcore.h"
index 45ce561951642d72f143fcbca0c698d8ae9e60a3..083bc92c2977d8cca58cf5e54d356eba7989ddff 100644 (file)
@@ -230,7 +230,11 @@ bsd_kvm_proc_cmd (char *arg, int fromtty)
     error ("No kernel memory image.");
 
   addr = parse_and_eval_address (arg);
+#ifdef HAVE_STRUCT_LWP
+  addr += offsetof (struct lwp, l_addr);
+#else
   addr += offsetof (struct proc, p_addr);
+#endif
 
   if (kvm_read (core_kd, addr, &bsd_kvm_paddr, sizeof bsd_kvm_paddr) == -1)
     error ("%s", kvm_geterr (core_kd));
index 2a2714ba098de6d327c04e73ba31326cd9052925..6eac7612f8c967eccbe380b65a7426430e340313 100644 (file)
@@ -553,6 +553,16 @@ if test $gdb_cv_struct_thread_td_pcb = yes; then
             [Define to 1 if your system has td_pcb in struct thread.])
 fi
 
+# See if <sys/lwp.h> defines `struct lwp`.
+AC_CACHE_CHECK([for struct lwp], gdb_cv_struct_lwp,
+[AC_TRY_COMPILE([#include <sys/param.h>
+#include <sys/lwp.h>], [struct lwp l;],
+gdb_cv_struct_lwp=yes, gdb_cv_struct_lwp=no)])
+if test $gdb_cv_struct_lwp = yes; then
+  AC_DEFINE(HAVE_STRUCT_LWP, 1,
+            [Define to 1 if your system has struct lwp.])
+fi
+
 # See if <machine/reg.h> degines `struct reg'.
 AC_CACHE_CHECK([for struct reg in machine/reg.h], gdb_cv_struct_reg,
 [AC_TRY_COMPILE([#include <sys/types.h>