bug-binutils
[Top][All Lists]
Advanced

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

[Bug ld/32296] New: sframe: wrong SFrame info for pltN and .plt.sec for


From: indu.bhagat at oracle dot com
Subject: [Bug ld/32296] New: sframe: wrong SFrame info for pltN and .plt.sec for -z ibtplt
Date: Mon, 21 Oct 2024 22:03:09 +0000

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

            Bug ID: 32296
           Summary: sframe: wrong SFrame info for pltN and .plt.sec for -z
                    ibtplt
           Product: binutils
           Version: 2.43
            Status: NEW
          Severity: normal
          Priority: P2
         Component: ld
          Assignee: unassigned at sourceware dot org
          Reporter: indu.bhagat at oracle dot com
  Target Milestone: ---

$ cat foo.s 
        .text
        .p2align 4
        .globl  bar
        .type   bar, @function
bar:
        .cfi_startproc
        subq    $8, %rsp
        .cfi_def_cfa_offset 16
        call    bar@PLT
        addq    $8, %rsp
        .cfi_def_cfa_offset 8
        ret
        .cfi_endproc
        .size   bar, .-bar
        .section        .note.GNU-stack,"",@progbits

$ cat bar.s 
        .text
        .p2align 4
        .globl  foo
        .type   foo, @function
foo:
        .cfi_startproc
        call bar@PLT
        xorl    %eax, %eax
        ret
        .p2align 4,,10
        .p2align 3
        .cfi_endproc
        .size   foo, .-foo
        .section        .note.GNU-stack,"",@progbits

$ as --gsframe -o foo.o foo.s

$ as --gsframe -o bar.o bar.s

$ ld -shared -z ibtplt -o pltsec.so foo.o bar.o

$ objdump -d pltsec.so 
 ...
Disassembly of section .plt:

0000000000001000 <.plt>:
    1000:       ff 35 ea 2f 00 00       push   0x2fea(%rip)        # 3ff0
<_GLOBAL_OFFSET_TABLE_+0x8>
    1006:       ff 25 ec 2f 00 00       jmp    *0x2fec(%rip)        # 3ff8
<_GLOBAL_OFFSET_TABLE_+0x10>
    100c:       0f 1f 40 00             nopl   0x0(%rax)
    1010:       f3 0f 1e fa             endbr64
    1014:       68 00 00 00 00          push   $0x0
    1019:       e9 e2 ff ff ff          jmp    1000 <bar@plt-0x20>
    101e:       66 90                   xchg   %ax,%ax

Disassembly of section .plt.sec:

0000000000001020 <bar@plt>:
    1020:       f3 0f 1e fa             endbr64
    1024:       ff 25 d6 2f 00 00       jmp    *0x2fd6(%rip)        # 4000
<bar+0x2fd0>
    102a:       66 0f 1f 44 00 00       nopw   0x0(%rax,%rax,1)

$ objdump --sframe pltsec.so
    func idx [0]: pc = 0x1000, size = 16 bytes
    STARTPC         CFA       FP        RA           
    0000000000001000  sp+16     u         f            
    0000000000001006  sp+24     u         f            

    func idx [1]: pc = 0x1010, size = 16 bytes
    STARTPC[m]      CFA       FP        RA           
    0000000000000000  sp+8      u         f            
    000000000000000b  sp+16     u         f            

    func idx [2]: pc = 0x1020, size = 16 bytes
    STARTPC         CFA       FP        RA           
    0000000000001020  sp+16     u         f            
    0000000000001026  sp+24     u         f

-- 
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]