Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/external/gpl3/binutils/dist/bfd Deal with GNU IFUNCs properly.



details:   https://anonhg.NetBSD.org/src/rev/0f222eea1042
branches:  trunk
changeset: 807092:0f222eea1042
user:      matt <matt%NetBSD.org@localhost>
date:      Sat Mar 28 07:51:20 2015 +0000

description:
Deal with GNU IFUNCs properly.

diffstat:

 external/gpl3/binutils/dist/bfd/elfnn-riscv.c |  3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diffs (20 lines):

diff -r bd432114e89d -r 0f222eea1042 external/gpl3/binutils/dist/bfd/elfnn-riscv.c
--- a/external/gpl3/binutils/dist/bfd/elfnn-riscv.c     Sat Mar 28 07:07:54 2015 +0000
+++ b/external/gpl3/binutils/dist/bfd/elfnn-riscv.c     Sat Mar 28 07:51:20 2015 +0000
@@ -860,6 +860,7 @@
   /* Make sure we know what is going on here.  */
   BFD_ASSERT (dynobj != NULL
              && (h->needs_plt
+                 || h->type == STT_GNU_IFUNC
                  || h->u.weakdef != NULL
                  || (h->def_dynamic
                      && h->ref_regular
@@ -868,7 +869,7 @@
   /* If this is a function, put it in the procedure linkage table.  We
      will fill in the contents of the procedure linkage table later
      (although we could actually do it here).  */
-  if (h->type == STT_FUNC || h->needs_plt)
+  if (h->type == STT_FUNC || h->type == STT_GNU_IFUNC || h->needs_plt)
     {
       if (h->plt.refcount <= 0
          || SYMBOL_CALLS_LOCAL (info, h)



Home | Main Index | Thread Index | Old Index