summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2004-10-18 08:06:31 +0000
committerNick Clifton <nickc@redhat.com>2004-10-18 08:06:31 +0000
commit3a8a9a792206560960f26ff8dbb6bf01f9ed535b (patch)
treef4f690df1a6881225e36e164cc489550e708b992
parent32c8df419d789a648f71e4799fabcd3f9b79597e (diff)
downloadbinutils-redhat-gdb_6_3-20041019-branchpoint.tar.gz
Compute 'name' for relocs against both local and global symbols.gdb_6_3-20041019-branchpoint
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf32-xstormy16.c14
2 files changed, 15 insertions, 4 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 888c920255..de596386d9 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+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.
+
2004-10-16 Daniel Jacobowitz <dan@debian.org>
* bfd-in2.h: Regenerate.
diff --git a/bfd/elf32-xstormy16.c b/bfd/elf32-xstormy16.c
index e03cc77190..8c96348ac4 100644
--- a/bfd/elf32-xstormy16.c
+++ b/bfd/elf32-xstormy16.c
@@ -840,10 +840,6 @@ xstormy16_elf_relocate_section (output_bfd, info, input_bfd, input_section,
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
{
@@ -855,6 +851,16 @@ xstormy16_elf_relocate_section (output_bfd, info, input_bfd, input_section,
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: