* config.in: Regenerate.
* configure: Regenerate.
* thread-db.c (dladdr_to_soname): Only define ifdef HAVE_DLADDR.
(try_thread_db_load): Update.
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>
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
+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; }
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.
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([
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. */
return NULL;
}
+#endif
+
static int
try_thread_db_load (const char *library)
{
return 0;
}
+#ifdef HAVE_DLADDR
if (debug_threads && strchr (library, '/') == NULL)
{
void *td_init;
library, libpath);
}
}
+#endif
if (try_thread_db_load_1 (handle))
return 1;