This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] microblaze: Check for indirect and warning symbols


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=b7213666d6035713c3a2786ee418085e07cb3cca

commit b7213666d6035713c3a2786ee418085e07cb3cca
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Oct 17 17:15:02 2017 -0700

    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:
---
 bfd/ChangeLog          | 5 +++++
 bfd/elf32-microblaze.c | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 2373816..c574a9a 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2017-10-17  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-microblaze.c (microblaze_elf_check_relocs): Check for
+	indirect and warning symbols.
+
 2017-10-17  Alan Modra  <amodra@gmail.com>
 
 	PR 22307
diff --git a/bfd/elf32-microblaze.c b/bfd/elf32-microblaze.c
index 1a69b6d..a54044f 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.  */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]