This is the mail archive of the
mailing list for the binutils project.
Re: [PATCH 2/2] bfd/elfnn-aarch64.c: Handle static links with ifunc correctly.
- From: Marcus Shawcroft <marcus dot shawcroft at arm dot com>
- To: binutils at sourceware dot org, "gingold at adacore dot com" <gingold at adacore dot com>
- Date: Tue, 26 Nov 2013 11:06:58 +0000
- Subject: Re: [PATCH 2/2] bfd/elfnn-aarch64.c: Handle static links with ifunc correctly.
- Authentication-results: sourceware.org; auth=none
- References: <529461B1 dot 8080200 at linaro dot org> <CAFqB+PzzRq43d+oEdx14JJcVA=Oqy0-SEaMkSEGoywmtD40iGg at mail dot gmail dot com> <CANu=DmiXfZgi6T45HPueCsoxARhgFFKtV1B4DJ25OORs1SiW5w at mail dot gmail dot com>
On 26/11/13 10:39, Will Newton wrote:
On 26 November 2013 10:34, Marcus Shawcroft <firstname.lastname@example.org> wrote:
On 26 November 2013 08:54, Will Newton <email@example.com> 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;
+ 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 ?