diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2017-01-10 13:31:59 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2017-01-10 13:31:59 -0800 |
commit | fff53daefb7838b5718422c87946330e4a8288ce (patch) | |
tree | 5f78be197c91e52a9cb9aa373c37ece6d77a1527 /ld/ChangeLog | |
parent | 5edad15d7c1e6a2409102b3426b444d6ea98bdfc (diff) | |
download | gdb-fff53daefb7838b5718422c87946330e4a8288ce.zip gdb-fff53daefb7838b5718422c87946330e4a8288ce.tar.gz gdb-fff53daefb7838b5718422c87946330e4a8288ce.tar.bz2 |
i386/x86-64: Add unwind info for .plt.got section
When there are both PLT and GOT references to the same function symbol,
linker combines GOTPLT and GOT slots into a single GOT slot and create
an entry in .plt.got section for PLT access via the GOT slot. This
patch adds unwind info for .plt.got section.
bfd/
PR ld/20830
* elf32-i386.c (elf_i386_eh_frame_plt_got): New.
(PLT_GOT_FDE_LENGTH): Likewise.
(elf_i386_plt_layout): Add eh_frame_plt_got and
eh_frame_plt_got_size.
(elf_i386_plt): Updated.
(elf_i386_link_hash_table): Add plt_got_eh_frame.
(elf_i386_check_relocs): Create .eh_frame section for .plt.got.
(elf_i386_size_dynamic_sections): Allocate and initialize
.eh_frame section for .plt.got.
(elf_i386_finish_dynamic_sections): Adjust .eh_frame section for
.plt.got.
(elf_i386_nacl_plt): Add FIXME for eh_frame_plt_got and
eh_frame_plt_got_size.
* elf64-x86-64.c (elf_x86_64_eh_frame_plt_got): New.
(PLT_GOT_FDE_LENGTH): Likewise.
(elf_x86_64_backend_data): Add eh_frame_plt_got and
eh_frame_plt_got_size.
(elf_x86_64_arch_bed): Updated.
(elf_x86_64_bnd_arch_bed): Add FIXME for eh_frame_plt_got and
eh_frame_plt_got_size.
(elf_x86_64_nacl_arch_bed): Likewise.
(elf_x86_64_link_hash_table): Add plt_got_eh_frame.
(elf_x86_64_check_relocs): Create .eh_frame section for .plt.got.
(elf_x86_64_size_dynamic_sections): Allocate and initialize
.eh_frame section for .plt.got.
(elf_x86_64_finish_dynamic_sections): Adjust .eh_frame section
for .plt.got.
ld/
PR ld/20830
* testsuite/ld-i386/i386.exp: Run pr20830.
* testsuite/ld-x86-64/x86-64.exp: Likewise.
* testsuite/ld-i386/pr20830.d: New file.
* testsuite/ld-i386/pr20830.s: Likewise.
* testsuite/ld-x86-64/pr20830.d: Likewise.
* testsuite/ld-x86-64/pr20830.s: Likewise.
Diffstat (limited to 'ld/ChangeLog')
-rw-r--r-- | ld/ChangeLog | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index ef2c466..57d7387 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,5 +1,15 @@ 2017-01-10 H.J. Lu <hongjiu.lu@intel.com> + PR ld/20830 + * testsuite/ld-i386/i386.exp: Run pr20830. + * testsuite/ld-x86-64/x86-64.exp: Likewise. + * testsuite/ld-i386/pr20830.d: New file. + * testsuite/ld-i386/pr20830.s: Likewise. + * testsuite/ld-x86-64/pr20830.d: Likewise. + * testsuite/ld-x86-64/pr20830.s: Likewise. + +2017-01-10 H.J. Lu <hongjiu.lu@intel.com> + * testsuite/ld-i386/i386.exp: Pass -Wl,-R,tmpdir and -Wl,--as-needed to $CC. * testsuite/ld-i386/tls.exp: Likewise. |