From 33c6a8fcd6414ad15f98e7c826386a56302f1bb6 Mon Sep 17 00:00:00 2001 From: Julian Brown Date: Fri, 10 Jul 2009 14:57:00 +0000 Subject: [PATCH] * elf32-arm.c (arm_build_one_stub): Use the hash entry of the symbol a stub entry is derived from, not the entry for the stub itself, in call to elf32_arm_final_link_relocate. --- bfd/ChangeLog | 6 ++++++ bfd/elf32-arm.c | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 3495161..2fed91d 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2009-07-10 Julian Brown + + * elf32-arm.c (arm_build_one_stub): Use the hash entry of the + symbol a stub entry is derived from, not the entry for the stub + itself, in call to elf32_arm_final_link_relocate. + 2009-07-10 H.J. Lu * elf.c (_bfd_elf_get_synthetic_symtab): Remove leading zeros diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index 2d53304..bb45587 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -3549,6 +3549,9 @@ arm_build_one_stub (struct bfd_hash_entry *gen_entry, branch. */ points_to = sym_value; + /* There may be unintended consequences if this is not true. */ + BFD_ASSERT (stub_entry->h == NULL); + /* Note: _bfd_final_link_relocate doesn't handle these relocations properly. We should probably use this function unconditionally, rather than only for certain relocations listed in the enclosing @@ -3557,7 +3560,7 @@ arm_build_one_stub (struct bfd_hash_entry *gen_entry, (template[stub_reloc_idx[i]].r_type), stub_bfd, info->output_bfd, stub_sec, stub_sec->contents, &rel, points_to, info, stub_entry->target_section, "", sym_flags, - (struct elf_link_hash_entry *) stub_entry, &unresolved_reloc, + (struct elf_link_hash_entry *) stub_entry->h, &unresolved_reloc, &error_message); } else -- 2.7.4