This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
[patch] Compute name for xstormy16 global relocs
- From: Nick Clifton <nickc at redhat dot com>
- To: binutils at sources dot redhat dot com
- Date: Mon, 18 Oct 2004 09:12:08 +0100
- Subject: [patch] Compute name for xstormy16 global relocs
Hi Guys,
I am applying the patch below to fix another small problem with the
xstormy16 port. The problem was that for relocs against global
symbols the name of the symbol was not being computed. So any error
messages involving these relocs appeared to be against an anonymous
symbol.
Cheers
Nick
bfd/ChangeLog
2004-10-18 Nick Clifton <nickc@redhat.com>
* elf32-xstormy16.c (xstormy16_elf_relocate_section): Compute
'name' for relocs against both local and global symbols.
Index: elf32-xstormy16.c
===================================================================
RCS file: /cvs/src/src/bfd/elf32-xstormy16.c,v
retrieving revision 1.28
diff -c -3 -p -r1.28 elf32-xstormy16.c
*** elf32-xstormy16.c 29 Jun 2004 13:46:32 -0000 1.28
--- elf32-xstormy16.c 18 Oct 2004 08:02:46 -0000
*************** xstormy16_elf_relocate_section (output_b
*** 840,849 ****
sym = local_syms + r_symndx;
sec = local_sections [r_symndx];
relocation = _bfd_elf_rela_local_sym (output_bfd, sym, &sec, rel);
-
- name = bfd_elf_string_from_elf_section
- (input_bfd, symtab_hdr->sh_link, sym->st_name);
- name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
}
else
{
--- 840,845 ----
*************** xstormy16_elf_relocate_section (output_b
*** 855,860 ****
--- 851,866 ----
unresolved_reloc, warned);
}
+ if (h != NULL)
+ name = h->root.root.string;
+ else
+ {
+ name = (bfd_elf_string_from_elf_section
+ (input_bfd, symtab_hdr->sh_link, sym->st_name));
+ if (name == NULL || *name == '\0')
+ name = bfd_section_name (input_bfd, sec);
+ }
+
switch (ELF32_R_TYPE (rel->r_info))
{
case R_XSTORMY16_24: