diff options
Diffstat (limited to 'binutils-2.25/bfd')
-rw-r--r-- | binutils-2.25/bfd/ChangeLog | 20 | ||||
-rw-r--r-- | binutils-2.25/bfd/elfxx-mips.c | 13 |
2 files changed, 23 insertions, 10 deletions
diff --git a/binutils-2.25/bfd/ChangeLog b/binutils-2.25/bfd/ChangeLog index f124354..f229d66 100644 --- a/binutils-2.25/bfd/ChangeLog +++ b/binutils-2.25/bfd/ChangeLog @@ -1,3 +1,17 @@ +2015-07-23 Joseph Myers <joseph@codesourcery.com> + + * elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections) + <DT_MIPS_RLD_MAP_REL>: Add target address to host address + difference, not to host pointer. + +2015-06-26 Matthew Fortune <matthew.fortune@imgtec.com> + + * elfxx-mips.c (_bfd_mips_elf_create_dynamic_sections): Use executable + instead of !shared to indicate an application vs shared library. + (_bfd_mips_elf_size_dynamic_sections): Likewise. + (_bfd_mips_elf_finish_dynamic_sections): Handle DT_MIPS_RLD_MAP_REL. + (_bfd_mips_elf_get_target_dtag): Likewise. + 2014-12-25 Thomas Preud'homme <thomas.preudhomme@arm.com> * elf32-arm.c (elf32_arm_merge_eabi_attributes): Handle new @@ -6,12 +20,6 @@ float only when Tag_ABI_VFP_args is 1, using new enum value AEABI_VFP_args_vfp to check that. -2015-07-23 Joseph Myers <joseph@codesourcery.com> - - * elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections) - <DT_MIPS_RLD_MAP_REL>: Add target address to host address - difference, not to host pointer. - 2015-04-01 Tejas Belagod <tejas.belagod@arm.com> Marcus Shawcroft <marcus.shawcroft@arm.com> Jiong Wang <jiong.wang@arm.com> diff --git a/binutils-2.25/bfd/elfxx-mips.c b/binutils-2.25/bfd/elfxx-mips.c index 998549d..02440cd 100644 --- a/binutils-2.25/bfd/elfxx-mips.c +++ b/binutils-2.25/bfd/elfxx-mips.c @@ -9785,7 +9785,7 @@ _bfd_mips_elf_size_dynamic_sections (bfd *output_bfd, return FALSE; if (info->executable - && !MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_RLD_MAP2, 0)) + && !MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_RLD_MAP_REL, 0)) return FALSE; /* The DT_DEBUG entry may be filled in by the dynamic linker and @@ -11496,12 +11496,15 @@ _bfd_mips_elf_finish_dynamic_sections (bfd *output_bfd, break; } s = h->root.u.def.section; + + /* The MIPS_RLD_MAP tag stores the absolute address of the + debug pointer. */ dyn.d_un.d_ptr = (s->output_section->vma + s->output_offset + h->root.u.def.value); } break; - case DT_MIPS_RLD_MAP2: + case DT_MIPS_RLD_MAP_REL: { struct elf_link_hash_entry *h; bfd_vma dt_addr, rld_addr; @@ -11514,6 +11517,8 @@ _bfd_mips_elf_finish_dynamic_sections (bfd *output_bfd, } s = h->root.u.def.section; + /* The MIPS_RLD_MAP_REL tag stores the offset to the debug + pointer, relative to the address of the tag. */ dt_addr = (sdyn->output_section->vma + sdyn->output_offset + (b - sdyn->contents)); rld_addr = (s->output_section->vma + s->output_offset @@ -15446,8 +15451,8 @@ _bfd_mips_elf_get_target_dtag (bfd_vma dtag) return "MIPS_HIPAGENO"; case DT_MIPS_RLD_MAP: return "MIPS_RLD_MAP"; - case DT_MIPS_RLD_MAP2: - return "MIPS_RLD_MAP2"; + case DT_MIPS_RLD_MAP_REL: + return "MIPS_RLD_MAP_REL"; case DT_MIPS_DELTA_CLASS: return "MIPS_DELTA_CLASS"; case DT_MIPS_DELTA_CLASS_NO: |