[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug gas/25295] New: Gas should have way to define symbol version withou
From: |
hubicka at gcc dot gnu.org |
Subject: |
[Bug gas/25295] New: Gas should have way to define symbol version without exporting its target |
Date: |
Thu, 19 Dec 2019 09:48:38 +0000 |
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.
- [Bug gas/25295] New: Gas should have way to define symbol version without exporting its target,
hubicka at gcc dot gnu.org <=