bug-binutils
[Top][All Lists]
Advanced

[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.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]