(elf32_arm_adjust_dynamic_symbol): Update ELF_LINK_HASH_NEEDS_PLT logic.
This commit is contained in:
parent
4f2a7c9e31
commit
9d7404b762
|
@ -1,3 +1,8 @@
|
|||
2002-09-19 Daniel Jacobowitz <drow@mvista.com>
|
||||
|
||||
* elf32-arm.h (elf32_arm_adjust_dynamic_symbol): Update
|
||||
ELF_LINK_HASH_NEEDS_PLT logic.
|
||||
|
||||
2002-09-18 Daniel Jacobowitz <drow@mvista.com>
|
||||
|
||||
* elfcode.h (elf_slurp_reloc_table_from_section): Check
|
||||
|
|
|
@ -2966,16 +2966,22 @@ elf32_arm_adjust_dynamic_symbol (info, h)
|
|||
if (h->type == STT_FUNC
|
||||
|| (h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) != 0)
|
||||
{
|
||||
/* If we link a program (not a DSO), we'll get rid of unnecessary
|
||||
PLT entries; we point to the actual symbols -- even for pic
|
||||
relocs, because a program built with -fpic should have the same
|
||||
result as one built without -fpic, specifically considering weak
|
||||
symbols.
|
||||
FIXME: m68k and i386 differ here, for unclear reasons. */
|
||||
if (! info->shared
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) == 0
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_HASH_REF_DYNAMIC) == 0)
|
||||
&& (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) == 0)
|
||||
{
|
||||
/* This case can occur if we saw a PLT32 reloc in an input
|
||||
file, but the symbol was never referred to by a dynamic
|
||||
object. In such a case, we don't actually need to build
|
||||
a procedure linkage table, and we can just do a PC32
|
||||
reloc instead. */
|
||||
file, but the symbol was not defined by a dynamic object.
|
||||
In such a case, we don't actually need to build a
|
||||
procedure linkage table, and we can just do a PC32 reloc
|
||||
instead. */
|
||||
BFD_ASSERT ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) != 0);
|
||||
h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue