[PATCH] as: Replace the removed symbol with the versioned symbol
Fangrui Song
i@maskray.me
Tue Aug 10 21:56:05 GMT 2021
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
More information about the Binutils
mailing list