* elf32-ppc.c (allocate_dynrelocs): Create dynsym for undef weak
symbols used in PIE relocs.
This commit is contained in:
parent
e866a2571a
commit
a876ecf9be
@ -1,3 +1,8 @@
|
|||||||
|
2004-02-20 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* elf32-ppc.c (allocate_dynrelocs): Create dynsym for undef weak
|
||||||
|
symbols used in PIE relocs.
|
||||||
|
|
||||||
2004-02-19 Jakub Jelinek <jakub@redhat.com>
|
2004-02-19 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
* elf32-sparc.c (elf32_sparc_finish_dynamic_sections): Clear
|
* elf32-sparc.c (elf32_sparc_finish_dynamic_sections): Clear
|
||||||
|
@ -3189,6 +3189,18 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
|
|||||||
if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
|
if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
|
||||||
&& h->root.type == bfd_link_hash_undefweak)
|
&& h->root.type == bfd_link_hash_undefweak)
|
||||||
eh->dyn_relocs = NULL;
|
eh->dyn_relocs = NULL;
|
||||||
|
|
||||||
|
/* Make sure undefined weak symbols are output as a dynamic symbol
|
||||||
|
in PIEs. */
|
||||||
|
if (info->pie
|
||||||
|
&& eh->dyn_relocs != NULL
|
||||||
|
&& h->dynindx == -1
|
||||||
|
&& h->root.type == bfd_link_hash_undefweak
|
||||||
|
&& (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
|
||||||
|
{
|
||||||
|
if (! bfd_elf32_link_record_dynamic_symbol (info, h))
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (ELIMINATE_COPY_RELOCS)
|
else if (ELIMINATE_COPY_RELOCS)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user