This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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"



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]