------- 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 bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils