aboutsummaryrefslogtreecommitdiff
path: root/gdb/gdbserver
diff options
context:
space:
mode:
authorDoug Evans <dje@google.com>2009-12-21 20:52:53 +0000
committerDoug Evans <dje@google.com>2009-12-21 20:52:53 +0000
commit10e86dd77848e00024b5de420c18e13db9a103c9 (patch)
tree79c8754517a0feb8a9824169a0b5927e1f232d3e /gdb/gdbserver
parent4ee62156d969867d3d3ffedf656a74643f77279e (diff)
downloadgdb-10e86dd77848e00024b5de420c18e13db9a103c9.zip
gdb-10e86dd77848e00024b5de420c18e13db9a103c9.tar.gz
gdb-10e86dd77848e00024b5de420c18e13db9a103c9.tar.bz2
* 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.
Diffstat (limited to 'gdb/gdbserver')
-rw-r--r--gdb/gdbserver/ChangeLog6
-rw-r--r--gdb/gdbserver/config.in3
-rwxr-xr-xgdb/gdbserver/configure15
-rw-r--r--gdb/gdbserver/configure.ac11
-rw-r--r--gdb/gdbserver/thread-db.c6
5 files changed, 40 insertions, 1 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index 0222594..6cd1b79 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -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>
diff --git a/gdb/gdbserver/config.in b/gdb/gdbserver/config.in
index 7c89966..2096cfa 100644
--- a/gdb/gdbserver/config.in
+++ b/gdb/gdbserver/config.in
@@ -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
diff --git a/gdb/gdbserver/configure b/gdb/gdbserver/configure
index 93aeb78..47bd81a 100755
--- a/gdb/gdbserver/configure
+++ b/gdb/gdbserver/configure
@@ -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; }
diff --git a/gdb/gdbserver/configure.ac b/gdb/gdbserver/configure.ac
index 215387d..6fea695 100644
--- a/gdb/gdbserver/configure.ac
+++ b/gdb/gdbserver/configure.ac
@@ -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([
diff --git a/gdb/gdbserver/thread-db.c b/gdb/gdbserver/thread-db.c
index f273082..e169a50 100644
--- a/gdb/gdbserver/thread-db.c
+++ b/gdb/gdbserver/thread-db.c
@@ -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;