* elf32-arm.c (bfd_elf32_arm_process_before_allocation): Correct
check for PLT usage.
This commit is contained in:
parent
3110dbc9c3
commit
74b08499dd
|
@ -1,3 +1,8 @@
|
||||||
|
2006-11-01 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
* elf32-arm.c (bfd_elf32_arm_process_before_allocation): Correct
|
||||||
|
check for PLT usage.
|
||||||
|
|
||||||
2006-11-01 Daniel Jacobowitz <dan@codesourcery.com>
|
2006-11-01 Daniel Jacobowitz <dan@codesourcery.com>
|
||||||
|
|
||||||
* elfxx-mips.c (mips_elf_merge_gots): Always use maxcnt.
|
* elfxx-mips.c (mips_elf_merge_gots): Always use maxcnt.
|
||||||
|
|
|
@ -2934,9 +2934,19 @@ bfd_elf32_arm_process_before_allocation (bfd *abfd,
|
||||||
if (h == NULL)
|
if (h == NULL)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* If the call will go through a PLT entry then we do not need
|
/* If the call will go through a PLT entry then we do not
|
||||||
glue. */
|
need glue. We have to do a fairly complicated check
|
||||||
if (globals->splt != NULL && h->plt.offset != (bfd_vma) -1)
|
here, since we don't determine this finally (by setting
|
||||||
|
plt.offset) until later; this test should be kept in sync
|
||||||
|
with elf32_arm_adjust_dynamic_symbol. */
|
||||||
|
if (globals->splt != NULL
|
||||||
|
&& h->plt.refcount > 0
|
||||||
|
&& (h->type == STT_FUNC
|
||||||
|
|| h->type == STT_ARM_TFUNC
|
||||||
|
|| h->needs_plt)
|
||||||
|
&& !SYMBOL_CALLS_LOCAL (link_info, h)
|
||||||
|
&& !(ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
|
||||||
|
&& h->root.type == bfd_link_hash_undefweak))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
switch (r_type)
|
switch (r_type)
|
||||||
|
|
Loading…
Reference in New Issue