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.