mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-11-23 20:19:49 +00:00
* elf32-ppc.c (allocate_dynrelocs): Ignore dyn_relocs when
!dynamic_sections_created. Don't make symbols with got references dynamic if !dynamic_sections_created. * elf64-ppc.c (allocate_dynrelocs): Likewise. Alloc dynamic relocs on undefined symbols. (ppc64_elf_relocate_section): Allow dynamic relocs on undefined symbols.
This commit is contained in:
parent
db0bc2846c
commit
b099ab9fcd
@ -1,3 +1,13 @@
|
|||||||
|
2008-08-12 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
* elf32-ppc.c (allocate_dynrelocs): Ignore dyn_relocs when
|
||||||
|
!dynamic_sections_created. Don't make symbols with got
|
||||||
|
references dynamic if !dynamic_sections_created.
|
||||||
|
* elf64-ppc.c (allocate_dynrelocs): Likewise. Alloc dynamic
|
||||||
|
relocs on undefined symbols.
|
||||||
|
(ppc64_elf_relocate_section): Allow dynamic relocs on
|
||||||
|
undefined symbols.
|
||||||
|
|
||||||
2008-08-11 Alan Modra <amodra@bigpond.net.au>
|
2008-08-11 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
* elf64-ppc.c (toc_adjusting_stub_needed): Any call via the plt
|
* elf64-ppc.c (toc_adjusting_stub_needed): Any call via the plt
|
||||||
|
@ -4993,7 +4993,8 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
|
|||||||
{
|
{
|
||||||
/* Make sure this symbol is output as a dynamic symbol. */
|
/* Make sure this symbol is output as a dynamic symbol. */
|
||||||
if (eh->elf.dynindx == -1
|
if (eh->elf.dynindx == -1
|
||||||
&& !eh->elf.forced_local)
|
&& !eh->elf.forced_local
|
||||||
|
&& htab->elf.dynamic_sections_created)
|
||||||
{
|
{
|
||||||
if (!bfd_elf_link_record_dynamic_symbol (info, &eh->elf))
|
if (!bfd_elf_link_record_dynamic_symbol (info, &eh->elf))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@ -5041,7 +5042,8 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
|
|||||||
else
|
else
|
||||||
eh->elf.got.offset = (bfd_vma) -1;
|
eh->elf.got.offset = (bfd_vma) -1;
|
||||||
|
|
||||||
if (eh->dyn_relocs == NULL)
|
if (eh->dyn_relocs == NULL
|
||||||
|
|| !htab->elf.dynamic_sections_created)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
/* In the shared -Bsymbolic case, discard space allocated for
|
/* In the shared -Bsymbolic case, discard space allocated for
|
||||||
|
@ -7891,7 +7891,8 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
|
|||||||
Undefined weak syms won't yet be marked as dynamic,
|
Undefined weak syms won't yet be marked as dynamic,
|
||||||
nor will all TLS symbols. */
|
nor will all TLS symbols. */
|
||||||
if (h->dynindx == -1
|
if (h->dynindx == -1
|
||||||
&& !h->forced_local)
|
&& !h->forced_local
|
||||||
|
&& htab->elf.dynamic_sections_created)
|
||||||
{
|
{
|
||||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@ -7925,7 +7926,8 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
|
|||||||
else
|
else
|
||||||
gent->got.offset = (bfd_vma) -1;
|
gent->got.offset = (bfd_vma) -1;
|
||||||
|
|
||||||
if (eh->dyn_relocs == NULL)
|
if (eh->dyn_relocs == NULL
|
||||||
|
|| !htab->elf.dynamic_sections_created)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
/* In the shared -Bsymbolic case, discard space allocated for
|
/* In the shared -Bsymbolic case, discard space allocated for
|
||||||
@ -7982,7 +7984,6 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
|
|||||||
dynamic. */
|
dynamic. */
|
||||||
|
|
||||||
if (!h->non_got_ref
|
if (!h->non_got_ref
|
||||||
&& h->def_dynamic
|
|
||||||
&& !h->def_regular)
|
&& !h->def_regular)
|
||||||
{
|
{
|
||||||
/* Make sure this symbol is output as a dynamic symbol.
|
/* Make sure this symbol is output as a dynamic symbol.
|
||||||
@ -11251,7 +11252,6 @@ ppc64_elf_relocate_section (bfd *output_bfd,
|
|||||||
&& h != NULL
|
&& h != NULL
|
||||||
&& h->elf.dynindx != -1
|
&& h->elf.dynindx != -1
|
||||||
&& !h->elf.non_got_ref
|
&& !h->elf.non_got_ref
|
||||||
&& h->elf.def_dynamic
|
|
||||||
&& !h->elf.def_regular))
|
&& !h->elf.def_regular))
|
||||||
{
|
{
|
||||||
Elf_Internal_Rela outrel;
|
Elf_Internal_Rela outrel;
|
||||||
|
Loading…
Reference in New Issue
Block a user