https://sourceware.org/bugzilla/show_bug.cgi?id=25295
Bug ID: 25295
Summary: Gas should have way to define symbol version without
exporting its target
Product: binutils
Version: unspecified
Status: NEW
Severity: normal
Priority: P2
Component: gas
Assignee: unassigned at sourceware dot org
Reporter: hubicka at gcc dot gnu.org
Target Milestone: ---
GCC now support symver attribute. However in order to make
.symver sym, name@nodename
to work, sym needs to be declared as .globl (already .hidden break things).
In order to produce symbol version one thus need to export also SYM and if that
is not part of DSO API the mapfile needs to hide it. This is in conflict with
-fvisiblity=hidden and other GCC features.
For
.symver sym, name@@nodename
we can produce the following:
.type foo_v2, @function
foo_v2:
.LFB1:
.cfi_startproc
movl $2, %eax
ret
.cfi_endproc
.LFE1:
.size foo_v2, .-foo_v2
.globl .LSYMVER0
.set .LSYMVER0,foo_v2
.symver .LSYMVER0, foo@@@VERS_2
which seems to have the intdeded behaviour of only exporitng foo@@@VERS_2 from
the .o file, but there seems to be no way to to this for foo@VERS_2.
Also it is ugly to require additional symbol.
--
You are receiving this mail because:
You are on the CC list for the bug.