Line 1551... |
Line 1551... |
{
|
{
|
struct extsym_info *einfo = (struct extsym_info *) data;
|
struct extsym_info *einfo = (struct extsym_info *) data;
|
bfd_boolean strip;
|
bfd_boolean strip;
|
asection *sec, *output_section;
|
asection *sec, *output_section;
|
|
|
if (h->root.root.type == bfd_link_hash_warning)
|
|
h = (struct alpha_elf_link_hash_entry *) h->root.root.u.i.link;
|
|
|
|
if (h->root.indx == -2)
|
if (h->root.indx == -2)
|
strip = FALSE;
|
strip = FALSE;
|
else if ((h->root.def_dynamic
|
else if ((h->root.def_dynamic
|
|| h->root.ref_dynamic
|
|| h->root.ref_dynamic
|
|| h->root.root.type == bfd_link_hash_new)
|
|| h->root.root.type == bfd_link_hash_new)
|
Line 2388... |
Line 2385... |
elf64_alpha_calc_got_offsets_for_symbol (struct alpha_elf_link_hash_entry *h,
|
elf64_alpha_calc_got_offsets_for_symbol (struct alpha_elf_link_hash_entry *h,
|
PTR arg ATTRIBUTE_UNUSED)
|
PTR arg ATTRIBUTE_UNUSED)
|
{
|
{
|
struct alpha_elf_got_entry *gotent;
|
struct alpha_elf_got_entry *gotent;
|
|
|
if (h->root.root.type == bfd_link_hash_warning)
|
|
h = (struct alpha_elf_link_hash_entry *) h->root.root.u.i.link;
|
|
|
|
for (gotent = h->got_entries; gotent; gotent = gotent->next)
|
for (gotent = h->got_entries; gotent; gotent = gotent->next)
|
if (gotent->use_count > 0)
|
if (gotent->use_count > 0)
|
{
|
{
|
struct alpha_elf_obj_tdata *td;
|
struct alpha_elf_obj_tdata *td;
|
bfd_size_type *plge;
|
bfd_size_type *plge;
|
Line 2693... |
Line 2687... |
{
|
{
|
bfd_boolean dynamic;
|
bfd_boolean dynamic;
|
struct alpha_elf_reloc_entry *relent;
|
struct alpha_elf_reloc_entry *relent;
|
unsigned long entries;
|
unsigned long entries;
|
|
|
if (h->root.root.type == bfd_link_hash_warning)
|
|
h = (struct alpha_elf_link_hash_entry *) h->root.root.u.i.link;
|
|
|
|
/* If the symbol was defined as a common symbol in a regular object
|
/* If the symbol was defined as a common symbol in a regular object
|
file, and there was no definition in any dynamic object, then the
|
file, and there was no definition in any dynamic object, then the
|
linker will have allocated space for the symbol in a common
|
linker will have allocated space for the symbol in a common
|
section but the ELF_LINK_HASH_DEF_REGULAR flag will not have been
|
section but the ELF_LINK_HASH_DEF_REGULAR flag will not have been
|
set. This is done for dynamic symbols in
|
set. This is done for dynamic symbols in
|
Line 2749... |
Line 2740... |
{
|
{
|
bfd_boolean dynamic;
|
bfd_boolean dynamic;
|
struct alpha_elf_got_entry *gotent;
|
struct alpha_elf_got_entry *gotent;
|
unsigned long entries;
|
unsigned long entries;
|
|
|
if (h->root.root.type == bfd_link_hash_warning)
|
|
h = (struct alpha_elf_link_hash_entry *) h->root.root.u.i.link;
|
|
|
|
/* If we're using a plt for this symbol, then all of its relocations
|
/* If we're using a plt for this symbol, then all of its relocations
|
for its got entries go into .rela.plt. */
|
for its got entries go into .rela.plt. */
|
if (h->root.needs_plt)
|
if (h->root.needs_plt)
|
return TRUE;
|
return TRUE;
|
|
|