aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog6
-rw-r--r--bfd/arc-got.h24
2 files changed, 17 insertions, 13 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 63daac4..ab92c6c 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2016-07-22 Cupertino Miranda <cmiranda@synopsys.com>
+
+ * arc-got.h (relocate_fix_got_relocs_for_got_info): Handle the
+ case where there's no elf_link_hash_entry while processing
+ GOT_NORMAL got entries.
+
2016-07-21 H.J. Lu <hongjiu.lu@intel.com>
* version.m4 (BFD_VERSION): Set to 2.27.51.
diff --git a/bfd/arc-got.h b/bfd/arc-got.h
index 00deb01..7c3cfd9 100644
--- a/bfd/arc-got.h
+++ b/bfd/arc-got.h
@@ -369,12 +369,21 @@ relocate_fix_got_relocs_for_got_info (struct got_entry ** list_p,
= reloc_data->sym_section->output_section->vma
+ reloc_data->sym_section->output_offset;
- if (h->root.type != bfd_link_hash_undefweak)
+ if (h != NULL
+ && h->root.type == bfd_link_hash_undefweak)
+ ARC_DEBUG ("arc_info: PATCHED: NOT_PATCHED "
+ "@ %#08lx for sym %s in got offset %#lx "
+ "(is undefweak)\n",
+ (long) (htab->sgot->output_section->vma
+ + htab->sgot->output_offset
+ + entry->offset),
+ symbol_name,
+ (long) entry->offset);
+ else
{
bfd_put_32 (output_bfd,
reloc_data->sym_value + sec_vma,
htab->sgot->contents + entry->offset);
-
ARC_DEBUG ("arc_info: PATCHED: %#08lx "
"@ %#08lx for sym %s in got offset %#lx\n",
(long) (reloc_data->sym_value + sec_vma),
@@ -383,17 +392,6 @@ relocate_fix_got_relocs_for_got_info (struct got_entry ** list_p,
symbol_name,
(long) entry->offset);
}
- else
- {
- ARC_DEBUG ("arc_info: PATCHED: NOT_PATCHED "
- "@ %#08lx for sym %s in got offset %#lx "
- "(is undefweak)\n",
- (long) (htab->sgot->output_section->vma
- + htab->sgot->output_offset
- + entry->offset),
- symbol_name,
- (long) entry->offset);
- }
}
break;
default: