* elf32-m68k.c (elf_m68k_adjust_dynamic_symbol): Use
SYMBOL_CALLS_LOCAL and check for undefweak symbols with non-default visibility.
This commit is contained in:
parent
66aa377dce
commit
9dfe873851
2 changed files with 13 additions and 14 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2004-11-07 Andreas Schwab <schwab@suse.de>
|
||||||
|
|
||||||
|
* elf32-m68k.c (elf_m68k_adjust_dynamic_symbol): Use
|
||||||
|
SYMBOL_CALLS_LOCAL and check for undefweak symbols with
|
||||||
|
non-default visibility.
|
||||||
|
|
||||||
2004-11-01 Mark Mitchell <mark@codesourcery.com>
|
2004-11-01 Mark Mitchell <mark@codesourcery.com>
|
||||||
|
|
||||||
* elf32-arm.c (elf32_arm_symbian_begin_write_processing): Clear
|
* elf32-arm.c (elf32_arm_symbian_begin_write_processing): Clear
|
||||||
|
|
|
@ -936,9 +936,10 @@ elf_m68k_adjust_dynamic_symbol (info, h)
|
||||||
if (h->type == STT_FUNC
|
if (h->type == STT_FUNC
|
||||||
|| h->needs_plt)
|
|| h->needs_plt)
|
||||||
{
|
{
|
||||||
if (! info->shared
|
if ((h->plt.refcount <= 0
|
||||||
&& !h->def_dynamic
|
|| SYMBOL_CALLS_LOCAL (info, h)
|
||||||
&& !h->ref_dynamic
|
|| (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
|
||||||
|
&& h->root.type == bfd_link_hash_undefweak))
|
||||||
/* We must always create the plt entry if it was referenced
|
/* We must always create the plt entry if it was referenced
|
||||||
by a PLTxxO relocation. In this case we already recorded
|
by a PLTxxO relocation. In this case we already recorded
|
||||||
it as a dynamic symbol. */
|
it as a dynamic symbol. */
|
||||||
|
@ -946,19 +947,11 @@ elf_m68k_adjust_dynamic_symbol (info, h)
|
||||||
{
|
{
|
||||||
/* This case can occur if we saw a PLTxx reloc in an input
|
/* This case can occur if we saw a PLTxx reloc in an input
|
||||||
file, but the symbol was never referred to by a dynamic
|
file, but the symbol was never referred to by a dynamic
|
||||||
object. In such a case, we don't actually need to build
|
object, or if all references were garbage collected. In
|
||||||
a procedure linkage table, and we can just do a PCxx
|
such a case, we don't actually need to build a procedure
|
||||||
reloc instead. */
|
linkage table, and we can just do a PCxx reloc instead. */
|
||||||
BFD_ASSERT (h->needs_plt);
|
|
||||||
h->plt.offset = (bfd_vma) -1;
|
h->plt.offset = (bfd_vma) -1;
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* GC may have rendered this entry unused. */
|
|
||||||
if (h->plt.refcount <= 0)
|
|
||||||
{
|
|
||||||
h->needs_plt = 0;
|
h->needs_plt = 0;
|
||||||
h->plt.offset = (bfd_vma) -1;
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue