This is the mail archive of the
gdb-patches@sourceware.cygnus.com
mailing list for the GDB project.
[PATCH] Linux/i386 testresults & gdb_proc_service.h patch
- To: gdb-testers at sourceware dot cygnus dot com
- Subject: [PATCH] Linux/i386 testresults & gdb_proc_service.h patch
- From: Mark Kettenis <kettenis at wins dot uva dot nl>
- Date: Wed, 9 Feb 2000 16:22:30 +0100
- CC: gdb-patches at sourceware dot cygnus dot com, msnyder at cygnus dot com
The following are results for:
i586-pc-linux-gnu
# of expected passes 6363
# of unexpected failures 12
# of expected failures 200
Looks like we're in pretty good shape :-)
The pthreads.c test case didn't compile, just like on NetBSD as Andrew
noted. Seems like there is something wrong with dejagnu script.
The relevant data on my system:
gcc 2.8.1,
glibc 2.1.3 (recent CVS version that includes a libthread_db)
linux 2.2.14
The GDB was built using the patches I already sent to gdb-patches. I
also had to fix `gdb_proc_service.h' because this file redefines
lwpid_t, psaddr_t, prgregset_t and prfpregset_t, that are already
defined by <sys/procfs.h> in glibc 2.1.3. I added configure tests for
these types, see the patch below. I also had to fix the definition of
prgregset_t and prfpregset_t in the glibc header file. These should
be:
typedef elf_gregset_t prgregset_t;
typedef elf_fpregset_t prfpregset_t;
Without this change GDB crashes when debugging a multithreaded app.
I already mentioned this to Ulrich Drepper, who has promised to look
into the matter. This should be resolved in the official glibc 2.1.3
release.
Mark
2000-02-09 Mark Kettenis <kettenis@gnu.org>
* configure.in: Check for lwpid_t, psaddr_t, prgregset_t and
fpgregset_t in <sys/procfs.h>.c
* config.in: Add HAVE_LWPID_T, HAVE_PSADDR_T, HAVE_PRGREGSET_T,
HAVE_PRFPREGSET_T.
* gdb_proc_service.h: Only provide typedefs for lwpid_t, psaddr_t,
prgregset_t and prfpregset_t if they are not already present.
Index: gdb/configure.in
===================================================================
RCS file: /cvs/src/src/gdb/configure.in,v
retrieving revision 1.2
diff -u -r1.2 configure.in
--- gdb/configure.in 2000/02/08 16:25:08 1.2
+++ gdb/configure.in 2000/02/09 15:13:30
@@ -170,6 +170,10 @@
BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
+ BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
+ BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
+ BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
+ BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
dnl Check for PIOCSET ioctl entry
Index: gdb/config.in
===================================================================
RCS file: /cvs/src/src/gdb/config.in,v
retrieving revision 1.1.1.12
diff -u -r1.1.1.12 config.in
--- gdb/config.in 2000/01/06 03:06:36 1.1.1.12
+++ gdb/config.in 2000/02/09 15:13:30
@@ -354,3 +354,14 @@
/* Define if <sys/procfs.h> has fpregset_t. */
#undef HAVE_FPREGSET_T
+/* Define if <sys/procfs.h> has prgregset_t. */
+#undef HAVE_PRGREGSET_T
+
+/* Define if <sys/procfs.h> has prfpregset_t. */
+#undef HAVE_PRFPREGSET_T
+
+/* Define if <sys/procfs.h> has lwpid_t. */
+#undef HAVE_LWPID_T
+
+/* Define if <sys/procfs.h> has psaddr_t. */
+#undef HAVE_PSADDR_T
Index: gdb/gdb_proc_service.h
===================================================================
RCS file: /cvs/src/src/gdb/gdb_proc_service.h,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 gdb_proc_service.h
--- gdb/gdb_proc_service.h 1999/12/22 21:45:05 1.1.1.1
+++ gdb/gdb_proc_service.h 2000/02/09 15:13:30
@@ -12,13 +12,22 @@
*/
} ps_err_e;
+#ifndef HAVE_LWPID_T
typedef unsigned int lwpid_t;
+#endif
+
typedef unsigned long paddr_t;
-typedef unsigned long psaddr_t;
+#ifndef HAVE_PSADDR_T
+typedef unsigned long psaddr_t;
+#endif
+#ifndef HAVE_PRGREGSET_T
typedef gregset_t prgregset_t; /* BOGUS BOGUS BOGUS */
-typedef fpregset_t prfpregset_t; /* BOGUS BOGUS BOGUS */
+#endif
+#ifndef HAVE_PRFPREGSET_T
+typedef fpregset_t prfpregset_t; /* BOGUS BOGUS BOGUS */
+#endif
struct ps_prochandle; /* user defined. */