summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog4
-rw-r--r--gdb/solib-svr4.c10
2 files changed, 11 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index aac9f6720d3..ae313c29ab1 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,9 @@
2006-10-17 Daniel Jacobowitz <dan@codesourcery.com>
+ * solib-svr4.c (LM_ADDR_CHECK): Suggest shared library mismatch.
+
+2006-10-17 Daniel Jacobowitz <dan@codesourcery.com>
+
* Makefile.in (symtab.o): Update.
* symtab.h (matching_bfd_section): New prototype.
* symtab.c (matching_bfd_section): New.
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
index 89fd81a4d05..9637db92dc3 100644
--- a/gdb/solib-svr4.c
+++ b/gdb/solib-svr4.c
@@ -187,9 +187,6 @@ LM_ADDR_CHECK (struct so_list *so, bfd *abfd)
if (dynaddr + l_addr != l_dynaddr)
{
- warning (_(".dynamic section for \"%s\" "
- "is not at the expected address"), so->so_name);
-
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
{
Elf_Internal_Ehdr *ehdr = elf_tdata (abfd)->elf_header;
@@ -218,9 +215,16 @@ LM_ADDR_CHECK (struct so_list *so, bfd *abfd)
if ((l_addr & align) == 0 && ((dynaddr - l_dynaddr) & align) == 0)
{
l_addr = l_dynaddr - dynaddr;
+
+ warning (_(".dynamic section for \"%s\" "
+ "is not at the expected address"), so->so_name);
warning (_("difference appears to be caused by prelink, "
"adjusting expectations"));
}
+ else
+ warning (_(".dynamic section for \"%s\" "
+ "is not at the expected address "
+ "(wrong library or version mismatch?)"), so->so_name);
}
set_addr: