mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 03:51:15 +08:00
* elf32-arm.h (elf32_arm_final_link_relocate): Check that we created
the .plt section. (elf32_arm_check_relocs): Don't increment the PLT refcount for relocs which would not use the PLT.
This commit is contained in:
parent
0885b73e8a
commit
c84cd8eead
@ -1,3 +1,10 @@
|
||||
2004-01-13 Daniel Jacobowitz <drow@mvista.com>
|
||||
|
||||
* elf32-arm.h (elf32_arm_final_link_relocate): Check that we created
|
||||
the .plt section.
|
||||
(elf32_arm_check_relocs): Don't increment the PLT refcount for
|
||||
relocs which would not use the PLT.
|
||||
|
||||
2004-01-13 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* elf64-ppc.c (ppc64_elf_check_relocs): Ignore !SEC_ALLOC relocs.
|
||||
|
@ -1317,9 +1317,12 @@ elf32_arm_final_link_relocate (howto, input_bfd, output_bfd,
|
||||
branches in this object should go to it. */
|
||||
if ((r_type != R_ARM_ABS32 && r_type != R_ARM_REL32)
|
||||
&& h != NULL
|
||||
&& splt != NULL
|
||||
&& h->plt.offset != (bfd_vma) -1)
|
||||
{
|
||||
BFD_ASSERT (splt != NULL);
|
||||
/* If we've created a .plt section, and assigned a PLT entry to
|
||||
this function, it should not be known to bind locally. If
|
||||
it were, we would have cleared the PLT entry. */
|
||||
BFD_ASSERT (!SYMBOL_CALLS_LOCAL (info, h));
|
||||
|
||||
value = (splt->output_section->vma
|
||||
@ -2937,12 +2940,15 @@ elf32_arm_check_relocs (abfd, info, sec, relocs)
|
||||
h->elf_link_hash_flags |= ELF_LINK_NON_GOT_REF;
|
||||
|
||||
/* We may need a .plt entry if the function this reloc
|
||||
refers to is in a different object. */
|
||||
refers to is in a different object. We can't tell for
|
||||
sure yet, because something later might force the
|
||||
symbol local. */
|
||||
if (ELF32_R_TYPE (rel->r_info) == R_ARM_PC24
|
||||
|| ELF32_R_TYPE (rel->r_info) == R_ARM_PLT32)
|
||||
h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT;
|
||||
|
||||
h->plt.refcount += 1;
|
||||
{
|
||||
h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT;
|
||||
h->plt.refcount += 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* If we are creating a shared library, and this is a reloc
|
||||
|
Loading…
Reference in New Issue
Block a user