This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[RFC] Look for lwpid_t and psaddr_t in libthread_db.h.
- From: Thiago Jung Bauermann <thiago dot bauermann at linaro dot org>
- To: gdb-patches ml <gdb-patches at sourceware dot org>
- Date: Mon, 26 Mar 2012 15:42:36 -0300
- Subject: [RFC] Look for lwpid_t and psaddr_t in libthread_db.h.
Hi,
Android's bionic libc defines lwpid_t and psaddr_t in libthread_db.h.
This patch makes gdbserver's configure look for them there.
Ok to commit? It doesn't affect compilation in i386-linux or
armv5tel-linux-gnueabi.
--
[]'s
Thiago Jung Bauermann
Linaro Toolchain Working Group
2012-03-26 Thiago Jung Bauermann <thiago.bauermann@linaro.org>
* acinclude.m4 (GDBSERVER_HAVE_THREAD_DB_TYPE): New macro based
on BFD_HAVE_SYS_PROCFS_TYPE.
* configure.ac: Look for lwpid_t and psaddr_t in libthread_db.h.
diff --git a/gdb/gdbserver/acinclude.m4 b/gdb/gdbserver/acinclude.m4
index 87d0db5..12eb12b 100644
--- a/gdb/gdbserver/acinclude.m4
+++ b/gdb/gdbserver/acinclude.m4
@@ -7,3 +7,21 @@ sinclude(../../config/override.m4)
dnl For ACX_PKGVERSION and ACX_BUGURL.
sinclude(../../config/acx.m4)
+dnl Check for existence of a type $1 in libthread_db.h
+dnl Based on BFD_HAVE_SYS_PROCFS_TYPE in bfd/bfd.m4.
+
+AC_DEFUN([GDBSERVER_HAVE_THREAD_DB_TYPE],
+[AC_MSG_CHECKING([for $1 in thread_db.h])
+ AC_CACHE_VAL(gdbserver_cv_have_thread_db_type_$1,
+ [AC_TRY_COMPILE([
+#include <thread_db.h>],
+ [$1 avar],
+ gdbserver_cv_have_thread_db_type_$1=yes,
+ gdbserver_cv_have_thread_db_type_$1=no
+ )])
+ if test $gdbserver_cv_have_thread_db_type_$1 = yes; then
+ AC_DEFINE([HAVE_]translit($1, [a-z], [A-Z]), 1,
+ [Define if <thread_db.h> has $1.])
+ fi
+ AC_MSG_RESULT($gdbserver_cv_have_thread_db_type_$1)
+])
diff --git a/gdb/gdbserver/configure.ac b/gdb/gdbserver/configure.ac
index d2f22bd..e6e9162 100644
--- a/gdb/gdbserver/configure.ac
+++ b/gdb/gdbserver/configure.ac
@@ -268,6 +268,16 @@ if test "$ac_cv_header_sys_procfs_h" = yes; then
BFD_HAVE_SYS_PROCFS_TYPE(elf_fpregset_t)
fi
+dnl Some systems (e.g., Android) have lwpid_t defined in libthread_db.h.
+if test "$bfd_cv_have_sys_procfs_type_lwpid_t" != yes; then
+ GDBSERVER_HAVE_THREAD_DB_TYPE(lwpid_t)
+fi
+
+dnl Some systems (e.g., Android) have psaddr_t defined in libthread_db.h.
+if test "$bfd_cv_have_sys_procfs_type_psaddr_t" != yes; then
+ GDBSERVER_HAVE_THREAD_DB_TYPE(psaddr_t)
+fi
+
dnl Check for libdl, but do not add it to LIBS as only gdbserver
dnl needs it (and gdbreplay doesn't).
old_LIBS="$LIBS"