[PATCH] as: Replace the removed symbol with the versioned symbol

H.J. Lu hjl.tools@gmail.com
Wed Aug 11 13:03:34 GMT 2021


On Tue, Aug 10, 2021 at 2:56 PM Fangrui Song <i@maskray.me> wrote:
>
> On 2021-08-01, H.J. Lu via Binutils wrote:
> >When a symbol removed by .symver is used in relocation and there is one
> >and only one versioned symbol, don't remove the symbol.  Instead, mark
> >it to be removed and replace the removed symbol used in relocation with
> >the versioned symbol before generating relocation.
>
> Thanks for the patch.
> The behavior looks good.
>
> .symver foo, foo@v1, remove
> .globl foo
> foo:
>    call foo   # R_X86_64_PLT32 foo@v1
>
>
>
> I think this can be extended to non-remove one-@ as well.
> The unadorned symbol and relocations referencing it just add complexity
> to linker internals.
>
> .symver foo, foo@v1

This usage is perfectly fine and quite normal.

-- 
H.J.


More information about the Binutils mailing list