summaryrefslogtreecommitdiffstats
path: root/binutils-2.25/bfd
diff options
context:
space:
mode:
Diffstat (limited to 'binutils-2.25/bfd')
-rw-r--r--binutils-2.25/bfd/ChangeLog20
-rw-r--r--binutils-2.25/bfd/elfxx-mips.c13
2 files changed, 23 insertions, 10 deletions
diff --git a/binutils-2.25/bfd/ChangeLog b/binutils-2.25/bfd/ChangeLog
index f124354c..f229d666 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 998549da..02440cdd 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: