bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug ld/21038] Incorrect unwind info for BND PLT


From: cvs-commit at gcc dot gnu.org
Subject: [Bug ld/21038] Incorrect unwind info for BND PLT
Date: Wed, 11 Jan 2017 17:18:18 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=21038

--- Comment #1 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot 
gnu.org> ---
The master branch has been updated by H.J. Lu <address@hidden>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=9e65917652e994b0864b344bfa47014155d93100

commit 9e65917652e994b0864b344bfa47014155d93100
Author: H.J. Lu <address@hidden>
Date:   Wed Jan 11 09:16:44 2017 -0800

    x86-64: Correct unwind info for the BND PLT

    Since the BND PLT has

     230:       68 00 00 00 00          pushq  $0x0
     235:       f2 e9 e5 ff ff ff       bnd jmpq 220 <.plt>
     23b:       0f 1f 44 00 00          nopl   0x0(%rax,%rax,1)

    instead of

     230:       ff 25 e2 0d 20 00       jmpq   *0x200de2(%rip)        # 201018
    <func>
     236:       68 00 00 00 00          pushq  $0x0
     23b:       e9 e0 ff ff ff          jmpq   220 <.plt>

    its unwind info should be

    DW_CFA_def_cfa_expression (DW_OP_breg7 (rsp): 8; DW_OP_breg16 (rip): 0;
    DW_OP_lit15; DW_OP_and; DW_OP_lit5; DW_OP_ge; DW_OP_lit3; DW_OP_shl;
    DW_OP_plus)

    bfd/

        PR ld/21038
        * elf64-x86-64.c (elf_x86_64_eh_frame_bnd_plt): New.
        (elf_x86_64_bnd_arch_bed): Use elf_x86_64_eh_frame_bnd_plt and
        elf_x86_64_eh_frame_plt_got.
        (elf_x86_64_size_dynamic_sections): Get unwind info from
        elf_x86_64_bnd_arch_bed for the BND PLT.

    ld/

        PR ld/21038
        * testsuite/ld-x86-64/pr21038a.d: New file.
        * testsuite/ld-x86-64/pr21038a.s: Likewise.
        * testsuite/ld-x86-64/pr21038b.d: Likewise.
        * testsuite/ld-x86-64/pr21038b.s: Likewise.
        * testsuite/ld-x86-64/x86-64.exp: Run pr21038a and pr21038b.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]