* 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.
	* configure: Regenerate.
	* config.in: Likewise.
This commit is contained in:
Thiago Jung Bauermann 2012-04-13 19:56:05 +00:00
parent f0fcbe5174
commit 18f5fd8146
5 changed files with 112 additions and 2 deletions

View File

@ -1,3 +1,11 @@
2012-04-13 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.
* configure: Regenerate.
* config.in: Likewise.
2012-04-13 H.J. Lu <hongjiu.lu@intel.com>
* Makefile.in (clean): Also remove x32.c x32-linux.c

View File

@ -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)
])

View File

@ -113,7 +113,7 @@
/* Define to 1 if the system has the type `long long int'. */
#undef HAVE_LONG_LONG_INT
/* Define if <sys/procfs.h> has lwpid_t. */
/* Define if <thread_db.h> has lwpid_t. */
#undef HAVE_LWPID_T
/* Define to 1 if you have the <malloc.h> header file. */
@ -162,7 +162,7 @@
/* Define to 1 if you have the <proc_service.h> header file. */
#undef HAVE_PROC_SERVICE_H
/* Define if <sys/procfs.h> has psaddr_t. */
/* Define if <thread_db.h> has psaddr_t. */
#undef HAVE_PSADDR_T
/* Define if the target supports PTRACE_GETFPXREGS for extended register

View File

@ -5430,6 +5430,80 @@ $as_echo "$bfd_cv_have_sys_procfs_type_elf_fpregset_t" >&6; }
fi
if test "$bfd_cv_have_sys_procfs_type_lwpid_t" != yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for lwpid_t in thread_db.h" >&5
$as_echo_n "checking for lwpid_t in thread_db.h... " >&6; }
if test "${gdbserver_cv_have_thread_db_type_lwpid_t+set}" = set; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <thread_db.h>
int
main ()
{
lwpid_t avar
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
gdbserver_cv_have_thread_db_type_lwpid_t=yes
else
gdbserver_cv_have_thread_db_type_lwpid_t=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
if test $gdbserver_cv_have_thread_db_type_lwpid_t = yes; then
$as_echo "#define HAVE_LWPID_T 1" >>confdefs.h
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gdbserver_cv_have_thread_db_type_lwpid_t" >&5
$as_echo "$gdbserver_cv_have_thread_db_type_lwpid_t" >&6; }
fi
if test "$bfd_cv_have_sys_procfs_type_psaddr_t" != yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for psaddr_t in thread_db.h" >&5
$as_echo_n "checking for psaddr_t in thread_db.h... " >&6; }
if test "${gdbserver_cv_have_thread_db_type_psaddr_t+set}" = set; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <thread_db.h>
int
main ()
{
psaddr_t avar
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
gdbserver_cv_have_thread_db_type_psaddr_t=yes
else
gdbserver_cv_have_thread_db_type_psaddr_t=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
if test $gdbserver_cv_have_thread_db_type_psaddr_t = yes; then
$as_echo "#define HAVE_PSADDR_T 1" >>confdefs.h
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gdbserver_cv_have_thread_db_type_psaddr_t" >&5
$as_echo "$gdbserver_cv_have_thread_db_type_psaddr_t" >&6; }
fi
old_LIBS="$LIBS"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
$as_echo_n "checking for dlopen in -ldl... " >&6; }

View File

@ -278,6 +278,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"