aboutsummaryrefslogtreecommitdiff
path: root/ld/ldlex.h
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2020-09-22 22:51:42 +0930
committerAlan Modra <amodra@gmail.com>2020-09-24 07:54:05 +0930
commit294338867c268b6da43327b6cbe70e746bff1a04 (patch)
tree5a92aab3be8a1fcc30d2778739111b09d2146a2c /ld/ldlex.h
parentc94053440e29421dd8846530da73f09c9ede2e0f (diff)
downloadgdb-294338867c268b6da43327b6cbe70e746bff1a04.zip
gdb-294338867c268b6da43327b6cbe70e746bff1a04.tar.gz
gdb-294338867c268b6da43327b6cbe70e746bff1a04.tar.bz2
PR26656, power10 libstdc++.so segfault in __cxxabiv1::__cxa_throw
This adds missing support for a power10 version of the __tls_get_addr call stub implementing DT_PPC64_OPT PPC64_OPT_TLS. Without this, power10 code using __tls_get_addr fails miserably at runtime unless the --no-tls-get-addr-optimize option is given. PR 26656 * elf64-ppc.c (plt_stub_size): Add "odd" param. Use it with size_power10_offset rather than calculating from start of stub. Add size for notoc tls_get_addr_opt stub. (plt_stub_pad): Add "odd" param, pass to plt_stub_size. (build_tls_get_addr_head, build_tls_get_addr_tail): New functions. (build_tls_get_addr_stub): Delete. (ppc_build_one_stub): Use a temp for htab->params->stub_bfd. Emit notoc tls_get_addr_opt stub. Move eh_frame code to suit. Adjust code to use bfd_tls_get_addr_head/tail in place of build_tls_get_addr_stub. (ppc_size_one_stub): Size notoc tls_get_addr_opt stub. Adjust plt_stub_size and plt_stub_pad calls. Correct "odd" when padding stub. Size eh_frame for notoc stub too. Correct lr_restore value. (ppc64_elf_relocate_section): Don't skip over first insn of notoc tls_get_addr_opt stub.
Diffstat (limited to 'ld/ldlex.h')
0 files changed, 0 insertions, 0 deletions