From: H.J. Lu Date: Wed, 18 Oct 2017 00:15:02 +0000 (-0700) Subject: microblaze: Check for indirect and warning symbols X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=b7213666d6035713c3a2786ee418085e07cb3cca;p=deliverable%2Fbinutils-gdb.git microblaze: Check for indirect and warning symbols Relocations against indirect and warning symbols should be applied to real symbols. * elf32-microblaze.c (microblaze_elf_check_relocs): Check for indirect and warning symbols. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 2373816806..c574a9abc6 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2017-10-17 H.J. Lu + + * elf32-microblaze.c (microblaze_elf_check_relocs): Check for + indirect and warning symbols. + 2017-10-17 Alan Modra PR 22307 diff --git a/bfd/elf32-microblaze.c b/bfd/elf32-microblaze.c index 1a69b6da72..a54044fdb3 100644 --- a/bfd/elf32-microblaze.c +++ b/bfd/elf32-microblaze.c @@ -2307,6 +2307,9 @@ microblaze_elf_check_relocs (bfd * abfd, else { h = sym_hashes [r_symndx - symtab_hdr->sh_info]; + while (h->root.type == bfd_link_hash_indirect + || h->root.type == bfd_link_hash_warning) + h = (struct elf_link_hash_entry *) h->root.u.i.link; /* PR15323, ref flags aren't set for references in the same object. */