This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 2/2] bfd/elfnn-aarch64.c: Handle static links with ifunc correctly.


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]