Module Name: src Committed By: matt Date: Sat Mar 28 07:51:20 UTC 2015
Modified Files: src/external/gpl3/binutils/dist/bfd: elfnn-riscv.c Log Message: Deal with GNU IFUNCs properly. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/external/gpl3/binutils/dist/bfd/elfnn-riscv.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/elfnn-riscv.c diff -u src/external/gpl3/binutils/dist/bfd/elfnn-riscv.c:1.1 src/external/gpl3/binutils/dist/bfd/elfnn-riscv.c:1.2 --- src/external/gpl3/binutils/dist/bfd/elfnn-riscv.c:1.1 Fri Mar 27 06:34:31 2015 +++ src/external/gpl3/binutils/dist/bfd/elfnn-riscv.c Sat Mar 28 07:51:20 2015 @@ -860,6 +860,7 @@ riscv_elf_adjust_dynamic_symbol (struct /* 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 @@ riscv_elf_adjust_dynamic_symbol (struct /* 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)