Re: [rfc] Clarify shared library warning

Daniel Jacobowitz
2006-10-17T20:53:34Z

On Fri, Oct 13, 2006 at 11:18:28AM -0400, Daniel Jacobowitz wrote:
> Does anyone dislike this version? If not, I will commit it, and
> someone can expand on it in the manual if necessary (probably with a
> reference to solib-absolute-prefix).
>
> warning: .dynamic section for "/lib/libc.so.6" is not at the expected
> address (wrong library or version mismatch?)

I've checked in this patch; feel free to improve it by further patches
:-)

--
Daniel Jacobowitz
CodeSourcery

2006-10-17 Daniel Jacobowitz <dan@codesourcery.com>

* solib-svr4.c (LM_ADDR_CHECK): Suggest shared library mismatch.

Index: solib-svr4.c
===================================================================
RCS file: /cvs/src/src/gdb/solib-svr4.c,v
retrieving revision 1.58
diff -u -p -r1.58 solib-svr4.c
--- solib-svr4.c 18 May 2006 20:38:56 -0000 1.58
+++ solib-svr4.c 17 Oct 2006 20:51:56 -0000
@@ -187,9 +187,6 @@ LM_ADDR_CHECK (struct so_list *so, bfd *

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 *
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);
}