[PATCH] Mark _PROCEDURE_LINKAGE_TABLE_ as code instead of data

Alan Modra amodra@gmail.com
Tue Feb 18 12:01:02 GMT 2025


On Mon, Feb 17, 2025 at 03:11:36PM +0800, Yu-Cheng Liang wrote:
> Because .plt won't be disassembled properly as follows if
> _PROCEDURE_LINKAGE_TABLE_ is set to STT_OBJECT.

It disassembles OK for riscv64 .so files.  So your claim isn't 100%
true.  You might like to investigate why.  I think there is a much
simpler fix for riscv than changing _PROCEDURE_LINKAGE_TABLE_ for
every target.

> Actual Result:
> Disassembly of section .plt:
> 
> 0000000000010630 <_PROCEDURE_LINKAGE_TABLE_>:
>    10630:       97 23 00 00 33 03 c3 41 03 be 03 9d 13 03 43 fd
> .#..3..A......C.
>    10640:       93 82 03 9d 13 53 13 00 83 b2 82 00 67 00 0e 00
> .....S......g...
> 
> -------------------------------------------------------------------------------------
> Expected Result:
> Disassembly of section .plt:
> 
> 0000000000010630 <_PROCEDURE_LINKAGE_TABLE_>:
>    10630:   00002397                auipc   t2,0x2
>    10634:   41c30333                sub     t1,t1,t3
>    10638:   9d03be03                ld      t3,-1584(t2) # 0x19d0 <.text+0x19d0>
>    1063c:   fd430313                addi    t1,t1,-44
>    10640:   9d038293                addi    t0,t2,-1584
>    10644:   00135313                srli    t1,t1,0x1
>    10648:   0082b283                ld      t0,8(t0)
>    1064c:   000e0067                jr      t3
> 
> Yu-Cheng
> 
> On Mon, Feb 10, 2025 at 6:14 PM Alan Modra <amodra@gmail.com> wrote:
> >
> > On Mon, Feb 10, 2025 at 04:17:45PM +0800, Yu-Cheng Liang wrote:
> > > The .plt section should be treated as code instead of data.
> >
> > Why do you think _PROCEDURE_LINKAGE_TABLE_ should be STT_FUNC?
> >
> > --
> > Alan Modra

-- 
Alan Modra


More information about the Binutils mailing list