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 Allow STT_GNU_IFUNC to be dy...



details:   https://anonhg.NetBSD.org/src/rev/aef7681f1a1c
branches:  trunk
changeset: 331845:aef7681f1a1c
user:      matt <matt%NetBSD.org@localhost>
date:      Tue Aug 26 17:03:51 2014 +0000

description:
Allow STT_GNU_IFUNC to be dynamic symbols

diffstat:

 external/gpl3/binutils/dist/bfd/elf32-m68k.c |  3 ++-
 external/gpl3/binutils/dist/bfd/elf32-sh.c   |  3 ++-
 external/gpl3/binutils/dist/bfd/elf32-vax.c  |  3 ++-
 3 files changed, 6 insertions(+), 3 deletions(-)

diffs (60 lines):

diff -r 832eca1e9b6f -r aef7681f1a1c external/gpl3/binutils/dist/bfd/elf32-m68k.c
--- a/external/gpl3/binutils/dist/bfd/elf32-m68k.c      Tue Aug 26 16:39:49 2014 +0000
+++ b/external/gpl3/binutils/dist/bfd/elf32-m68k.c      Tue Aug 26 17:03:51 2014 +0000
@@ -3104,6 +3104,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
@@ -3112,7 +3113,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,
      when we know the address of the .got section.  */
-  if (h->type == STT_FUNC
+  if ((h->type == STT_FUNC || h->type == STT_GNU_IFUNC)
       || h->needs_plt)
     {
       if ((h->plt.refcount <= 0
diff -r 832eca1e9b6f -r aef7681f1a1c external/gpl3/binutils/dist/bfd/elf32-sh.c
--- a/external/gpl3/binutils/dist/bfd/elf32-sh.c        Tue Aug 26 16:39:49 2014 +0000
+++ b/external/gpl3/binutils/dist/bfd/elf32-sh.c        Tue Aug 26 17:03:51 2014 +0000
@@ -2808,6 +2808,7 @@
   /* Make sure we know what is going on here.  */
   BFD_ASSERT (htab->root.dynobj != NULL
              && (h->needs_plt
+                 || h->type == STT_GNU_IFUNC
                  || h->u.weakdef != NULL
                  || (h->def_dynamic
                      && h->ref_regular
@@ -2816,7 +2817,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,
      when we know the address of the .got section.  */
-  if (h->type == STT_FUNC
+  if ((h->type == STT_FUNC || h->type == STT_GNU_IFUNC)
       || h->needs_plt)
     {
       if (h->plt.refcount <= 0
diff -r 832eca1e9b6f -r aef7681f1a1c external/gpl3/binutils/dist/bfd/elf32-vax.c
--- a/external/gpl3/binutils/dist/bfd/elf32-vax.c       Tue Aug 26 16:39:49 2014 +0000
+++ b/external/gpl3/binutils/dist/bfd/elf32-vax.c       Tue Aug 26 17:03:51 2014 +0000
@@ -946,6 +946,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
@@ -954,7 +955,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,
      when we know the address of the .got section.  */
-  if (h->type == STT_FUNC
+  if ((h->type == STT_FUNC || h->type == STT_GNU_IFUNC)
       || h->needs_plt)
     {
       if (h->plt.refcount <= 0



Home | Main Index | Thread Index | Old Index