http://sourceware.org/bugzilla/show_bug.cgi?id=12366

--- Comment #3 from H.J. Lu <hjl.tools at gmail dot com> 2011-01-07 02:06:39 
UTC ---
(In reply to comment #0)
> Created attachment 5181 [details]
> Shell script to reproduce bug
> 
> The x86 and x86_64 IFUNC code assumes that check_relocs can rely on 
> def_regular
> being set for all regular definitions.  That's not true, because def_regular 
> is
> set by the same pass that calls check_relocs, and doesn't therefore take into
> account regular definitions in later objects.

We handle relocations against local STT_GNU_IFUNC symbols by
faking a STT_GNU_IFUNC symbol. def_regular is true for
those symbols.

My fix in _bfd_elf_allocate_ifunc_dyn_relocs handles
the case where a symbol is marked with regular reference,
but not non-GOT reference.  It may happen if we didn't
see STT_GNU_IFUNC symbol when checking relocations.

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to