------- Additional Comments From hjl dot tools at gmail dot com 2009-07-31
02:50 -------
(In reply to comment #20)
>
> Comment #3 says the only difference between good and bad binaries was a
> .rela.plt relocation. That would seem to indicate that the relocation is
> being
> written once with the "good" symbol, then overwritten with the "bad" one,
> when,
> as you claim, elf_backend_finish_dynamic_symbol is being called unexpectedly.
> But that means you must have other bugs, since the "bad" symbol must have
> plt.offset != -1, which indicates it has a plt entry at the same location as
> the
> "good" symbol!
>
This patch:
Index: elf-ifunc.c
===================================================================
--- elf-ifunc.c (revision 6507)
+++ elf-ifunc.c (working copy)
@@ -193,6 +193,7 @@ _bfd_elf_allocate_ifunc_dyn_relocs (stru
|| h->got.refcount > 0)
abort ();
h->got.offset = (bfd_vma) -1;
+ h->plt.offset = (bfd_vma) -1;
*head = NULL;
return TRUE;
}
seems to work. I will test it with glibc build.
--
http://sourceware.org/bugzilla/show_bug.cgi?id=10433
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
_______________________________________________
bug-binutils mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-binutils