* configure.ac: Check for dladdr.

* config.in: Regenerate.
	* configure: Regenerate.
	* thread-db.c (dladdr_to_soname): Only define ifdef HAVE_DLADDR.
	(try_thread_db_load): Update.
This commit is contained in:
Doug Evans 2009-12-21 20:52:53 +00:00
parent 4ee62156d9
commit 10e86dd778
5 changed files with 40 additions and 1 deletions

View File

@ -1,5 +1,11 @@
2009-12-21 Doug Evans <dje@google.com>
* configure.ac: Check for dladdr.
* config.in: Regenerate.
* configure: Regenerate.
* thread-db.c (dladdr_to_soname): Only define ifdef HAVE_DLADDR.
(try_thread_db_load): Update.
* linux-low.c (my_waitpid): Delete unnecessary prototype.
2009-12-18 Doug Evans <dje@google.com>

View File

@ -15,6 +15,9 @@
don't. */
#undef HAVE_DECL_STRERROR
/* Define to 1 if you have the `dladdr' function. */
#undef HAVE_DLADDR
/* Define if <sys/procfs.h> has elf_fpregset_t. */
#undef HAVE_ELF_FPREGSET_T

View File

@ -3816,6 +3816,21 @@ done
old_LIBS="$LIBS"
LIBS="$LIBS -ldl"
for ac_func in dladdr
do :
ac_fn_c_check_func "$LINENO" "dladdr" "ac_cv_func_dladdr"
if test "x$ac_cv_func_dladdr" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_DLADDR 1
_ACEOF
fi
done
LIBS="$old_LIBS"
have_errno=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno" >&5
$as_echo_n "checking for errno... " >&6; }

View File

@ -1,5 +1,5 @@
dnl Autoconf configure script for GDB server.
dnl Copyright (C) 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008
dnl Copyright (C) 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
dnl Free Software Foundation, Inc.
dnl
dnl This file is part of GDB.
@ -45,6 +45,15 @@ AC_CHECK_HEADERS(sgtty.h termio.h termios.h sys/reg.h string.h dnl
AC_CHECK_FUNCS(pread pwrite pread64)
AC_REPLACE_FUNCS(memmem)
dnl dladdr is glibc-specific. It is used by thread-db.c but only for
dnl debugging messages. It lives in -ldl which is handled below so we don't
dnl use AC_CHECK_LIB (or AC_SEARCH_LIBS) here. Instead we just temporarily
dnl augment LIBS.
old_LIBS="$LIBS"
LIBS="$LIBS -ldl"
AC_CHECK_FUNCS(dladdr)
LIBS="$old_LIBS"
have_errno=no
AC_MSG_CHECKING(for errno)
AC_TRY_LINK([

View File

@ -596,6 +596,8 @@ try_thread_db_load_1 (void *handle)
return 1;
}
#ifdef HAVE_DLADDR
/* Lookup a library in which given symbol resides.
Note: this is looking in the GDBSERVER process, not in the inferior.
Returns library name, or NULL. */
@ -610,6 +612,8 @@ dladdr_to_soname (const void *addr)
return NULL;
}
#endif
static int
try_thread_db_load (const char *library)
{
@ -626,6 +630,7 @@ try_thread_db_load (const char *library)
return 0;
}
#ifdef HAVE_DLADDR
if (debug_threads && strchr (library, '/') == NULL)
{
void *td_init;
@ -640,6 +645,7 @@ try_thread_db_load (const char *library)
library, libpath);
}
}
#endif
if (try_thread_db_load_1 (handle))
return 1;