aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog8
-rw-r--r--bfd/elfxx-mips.c6
2 files changed, 11 insertions, 3 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index c81c96a..d450599 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,13 @@
2012-12-03 Maciej W. Rozycki <macro@codesourcery.com>
+ PR ld/10629
+ * elfxx-mips.c (mips_elf_link_hash_table): Update comment for
+ use_rld_obj_head.
+ (_bfd_mips_elf_create_dynamic_sections): Always create a
+ .rld_map section if no __rld_obj_head symbol has been seen.
+
+2012-12-03 Maciej W. Rozycki <macro@codesourcery.com>
+
* elf32-mips.c (mips_elf32_object_p): Return right away when the
ABI is not compatible.
* elfn32-mips.c (mips_elf_n32_object_p): Likewise.
diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
index 168973e..a4aa125 100644
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
@@ -432,8 +432,8 @@ struct mips_elf_link_hash_table
/* The size of the .compact_rel section (if SGI_COMPAT). */
bfd_size_type compact_rel_size;
- /* This flag indicates that the value of DT_MIPS_RLD_MAP dynamic
- entry is set to the address of __rld_obj_head as in IRIX5. */
+ /* This flag indicates that the value of DT_MIPS_RLD_MAP dynamic entry
+ is set to the address of __rld_obj_head as in IRIX5 and IRIX6. */
bfd_boolean use_rld_obj_head;
/* The __rld_map or __rld_obj_head symbol. */
@@ -7293,7 +7293,7 @@ _bfd_mips_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
return FALSE;
htab->sstubs = s;
- if ((IRIX_COMPAT (abfd) == ict_irix5 || IRIX_COMPAT (abfd) == ict_none)
+ if (!mips_elf_hash_table (info)->use_rld_obj_head
&& !info->shared
&& bfd_get_linker_section (abfd, ".rld_map") == NULL)
{