Module Name: src
Committed By: matt
Date: Tue Aug 26 17:03:51 UTC 2014
Modified Files:
src/external/gpl3/binutils/dist/bfd: elf32-m68k.c elf32-sh.c
elf32-vax.c
Log Message:
Allow STT_GNU_IFUNC to be dynamic symbols
To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/external/gpl3/binutils/dist/bfd/elf32-m68k.c \
src/external/gpl3/binutils/dist/bfd/elf32-sh.c
cvs rdiff -u -r1.9 -r1.10 src/external/gpl3/binutils/dist/bfd/elf32-vax.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/gpl3/binutils/dist/bfd/elf32-m68k.c
diff -u src/external/gpl3/binutils/dist/bfd/elf32-m68k.c:1.4 src/external/gpl3/binutils/dist/bfd/elf32-m68k.c:1.5
--- src/external/gpl3/binutils/dist/bfd/elf32-m68k.c:1.4 Sun Sep 29 14:03:29 2013
+++ src/external/gpl3/binutils/dist/bfd/elf32-m68k.c Tue Aug 26 17:03:51 2014
@@ -3104,6 +3104,7 @@ elf_m68k_adjust_dynamic_symbol (struct b
/* 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 @@ elf_m68k_adjust_dynamic_symbol (struct b
/* 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
Index: src/external/gpl3/binutils/dist/bfd/elf32-sh.c
diff -u src/external/gpl3/binutils/dist/bfd/elf32-sh.c:1.4 src/external/gpl3/binutils/dist/bfd/elf32-sh.c:1.5
--- src/external/gpl3/binutils/dist/bfd/elf32-sh.c:1.4 Sun Sep 29 14:03:29 2013
+++ src/external/gpl3/binutils/dist/bfd/elf32-sh.c Tue Aug 26 17:03:51 2014
@@ -2808,6 +2808,7 @@ sh_elf_adjust_dynamic_symbol (struct bfd
/* 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 @@ sh_elf_adjust_dynamic_symbol (struct bfd
/* 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
Index: src/external/gpl3/binutils/dist/bfd/elf32-vax.c
diff -u src/external/gpl3/binutils/dist/bfd/elf32-vax.c:1.9 src/external/gpl3/binutils/dist/bfd/elf32-vax.c:1.10
--- src/external/gpl3/binutils/dist/bfd/elf32-vax.c:1.9 Thu Oct 3 12:06:04 2013
+++ src/external/gpl3/binutils/dist/bfd/elf32-vax.c Tue Aug 26 17:03:51 2014
@@ -946,6 +946,7 @@ elf_vax_adjust_dynamic_symbol (info, h)
/* 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 @@ elf_vax_adjust_dynamic_symbol (info, h)
/* 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