aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf-m10300.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2007-12-31 11:29:31 +0000
committerNick Clifton <nickc@redhat.com>2007-12-31 11:29:31 +0000
commit281153f387316e092d3c8fb35a1898728d524665 (patch)
treeaa8a65e78b8d8af185436133cba6b9d09be328fc /bfd/elf-m10300.c
parente9e9cead3f03155dd8a2ae851c35066cb3ebfec6 (diff)
downloadgdb-281153f387316e092d3c8fb35a1898728d524665.zip
gdb-281153f387316e092d3c8fb35a1898728d524665.tar.gz
gdb-281153f387316e092d3c8fb35a1898728d524665.tar.bz2
* elf-m10300.c (mn10300_elf_relax_section): Use _bfd_merged_section_offset
to compute the offset of a symbol in a merged section.
Diffstat (limited to 'bfd/elf-m10300.c')
-rw-r--r--bfd/elf-m10300.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/bfd/elf-m10300.c b/bfd/elf-m10300.c
index af2fff3..61ce3e1 100644
--- a/bfd/elf-m10300.c
+++ b/bfd/elf-m10300.c
@@ -2813,12 +2813,11 @@ mn10300_elf_relax_section (bfd *abfd,
&& ELF_ST_TYPE (isym->st_info) == STT_SECTION
&& sym_sec->sec_info_type == ELF_INFO_TYPE_MERGE)
{
- bfd_vma saved_addend;
-
- saved_addend = irel->r_addend;
- symval = _bfd_elf_rela_local_sym (abfd, isym, & sym_sec, irel);
- symval += irel->r_addend;
- irel->r_addend = saved_addend;
+ symval = isym->st_value + irel->r_addend;
+ symval = _bfd_merged_section_offset (abfd, & sym_sec,
+ elf_section_data (sym_sec)->sec_info,
+ symval);
+ symval += sym_sec->output_section->vma + sym_sec->output_offset - irel->r_addend;
}
else
symval = (isym->st_value