[PATCH 2/2] bfd/elfnn-aarch64.c: Handle static links with ifunc correctly.
Marcus Shawcroft
marcus.shawcroft@arm.com
Tue Nov 26 11:51:00 GMT 2013
On 26/11/13 10:39, Will Newton wrote:
> On 26 November 2013 10:34, Marcus Shawcroft <marcus.shawcroft@gmail.com> wrote:
>> On 26 November 2013 08:54, Will Newton <will.newton@linaro.org> wrote:
>>
>>> - if (info->shared && SYMBOL_REFERENCES_LOCAL (info, h))
>>> + if (h->def_regular
>>> + && h->type == STT_GNU_IFUNC)
>>> + {
>>> + if (info->shared)
>>> + {
>>> + /* Generate R_AARCH64_GLOB_DAT. */
>>> + goto do_glob_dat;
>>> + }
>>> + else
>>> + {
>>> + asection *plt;
>>> +
>>> + if (!h->pointer_equality_needed)
>>> + abort ();
>>
>> Is abort() the best option here, can't we spit out a diagnostic and return?
>
> I believe it is really an assert as _bfd_elf_allocate_ifunc_dyn_relocs
> ensures this condition does not occur. The code is copied from
> i386/x86_64 for better or worse - I am never quite sure whether it is
> better to be the same or different in these cases. ;-)
If you are confident it is an assert then I'm happy to leave the code
the same as the donor. In which case this is OK for trunk.
I'd like to see these two IFUNC patches in 2.24, Tristan ?
Cheers
/Marcus
More information about the Binutils
mailing list