From 281153f387316e092d3c8fb35a1898728d524665 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 31 Dec 2007 11:29:31 +0000 Subject: [PATCH] * elf-m10300.c (mn10300_elf_relax_section): Use _bfd_merged_section_offset to compute the offset of a symbol in a merged section. --- bfd/ChangeLog | 6 ++++++ bfd/elf-m10300.c | 11 +++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index d12d615..a5567b0 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,11 @@ 2007-12-31 Nick Clifton + * elf-m10300.c (mn10300_elf_relax_section): Use + _bfd_merged_section_offset to compute the offset of a symbol in a + merged section. + +2007-12-31 Nick Clifton + * elf.c (_bfd_elf_find_segment_containing_section): New function: Scan the segment map looking for the segment containing a specified function. 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 -- 2.7.4