mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-27 22:48:57 +08:00
Correct multi-toc tprel relocs
Commit f15d0b545b trimmed some unnecessary TPREL relocs, but missed changing another place where they are allocated. * elf64-ppc.c (ppc_size_one_stub): Fix comment typo. (ppc64_elf_layout_multitoc): Allocate relocs for tprel as we do in size_dynamic_sections.
This commit is contained in:
@ -1,3 +1,9 @@
|
|||||||
|
2018-03-21 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
* elf64-ppc.c (ppc_size_one_stub): Fix comment typo.
|
||||||
|
(ppc64_elf_layout_multitoc): Allocate relocs for tprel as we
|
||||||
|
do in size_dynamic_sections.
|
||||||
|
|
||||||
2018-03-21 Alan Modra <amodra@gmail.com>
|
2018-03-21 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
* elf64-ppc.c (ppc64_elf_relocate_section): Don't access rel[1]
|
* elf64-ppc.c (ppc64_elf_relocate_section): Don't access rel[1]
|
||||||
|
@ -11356,7 +11356,7 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
|
|||||||
|
|
||||||
local_off = PPC64_LOCAL_ENTRY_OFFSET (stub_entry->other);
|
local_off = PPC64_LOCAL_ENTRY_OFFSET (stub_entry->other);
|
||||||
|
|
||||||
/* If the branch offset if too big, use a ppc_stub_plt_branch.
|
/* If the branch offset is too big, use a ppc_stub_plt_branch.
|
||||||
Do the same for -R objects without function descriptors. */
|
Do the same for -R objects without function descriptors. */
|
||||||
if (off + (1 << 25) >= (bfd_vma) (1 << 26) - local_off
|
if (off + (1 << 25) >= (bfd_vma) (1 << 26) - local_off
|
||||||
|| (stub_entry->stub_type == ppc_stub_long_branch_r2off
|
|| (stub_entry->stub_type == ppc_stub_long_branch_r2off
|
||||||
@ -11700,7 +11700,9 @@ ppc64_elf_layout_multitoc (struct bfd_link_info *info)
|
|||||||
htab->elf.irelplt->size += rel_size;
|
htab->elf.irelplt->size += rel_size;
|
||||||
htab->got_reli_size += rel_size;
|
htab->got_reli_size += rel_size;
|
||||||
}
|
}
|
||||||
else if (bfd_link_pic (info))
|
else if (bfd_link_pic (info)
|
||||||
|
&& !((ent->tls_type & TLS_TPREL) != 0
|
||||||
|
&& bfd_link_executable (info)))
|
||||||
{
|
{
|
||||||
asection *srel = ppc64_elf_tdata (ibfd)->relgot;
|
asection *srel = ppc64_elf_tdata (ibfd)->relgot;
|
||||||
srel->size += rel_size;
|
srel->size += rel_size;
|
||||||
|
Reference in New Issue
Block a user