https://sourceware.org/bugzilla/show_bug.cgi?id=18703

--- Comment #1 from Cary Coutant <ccoutant at gmail dot com> ---
You're looking at the linker symbol table with nm. (And nm does not show
versioning information from the .gnu.version* sections.)

When I build this with gold, readelf -Vs shows:

Symbol table '.dynsym' contains 13 entries:
   Num:    Value          Size Type    Bind   Vis      Ndx Name
     0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND 
     1: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND __gmon_start__
     2: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND
_ITM_deregisterTMCloneTab
     3: 0000000000000000     0 FUNC    WEAK   DEFAULT  UND
__cxa_finalize@GLIBC_2.2.5 (3)
     4: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND
_ITM_registerTMCloneTable
     5: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _Jv_RegisterClasses
     6: 00000000000006f5    11 FUNC    GLOBAL DEFAULT   12 foo@@VERS_1.1
     7: 0000000000002018     0 NOTYPE  GLOBAL DEFAULT  ABS _edata
     8: 0000000000002019     0 NOTYPE  GLOBAL DEFAULT  ABS _end
     9: 00000000000005c0     0 FUNC    GLOBAL DEFAULT   10 _init
    10: 0000000000002018     0 NOTYPE  GLOBAL DEFAULT  ABS __bss_start
    11: 0000000000000700     0 FUNC    GLOBAL DEFAULT   13 _fini
    12: 0000000000000000     0 OBJECT  GLOBAL DEFAULT  ABS VERS_1.1

...

Version symbols section '.gnu.version' contains 13 entries:
 Addr: 0000000000000458  Offset: 0x000458  Link: 2 (.dynsym)
  000:   0 (*local*)       0 (*local*)       0 (*local*)       3 (GLIBC_2.2.5)
  004:   0 (*local*)       0 (*local*)       2 (VERS_1.1)      1 (*global*)   
  008:   1 (*global*)      1 (*global*)      1 (*global*)      1 (*global*)   
  00c:   2 (VERS_1.1)   

Version definition section '.gnu.version_d' contains 2 entries:
  Addr: 0x0000000000000474  Offset: 0x000474  Link: 3 (.dynstr)  000000: Rev: 1
 Flags: BASE   Index: 1  Cnt: 1  Name: ver1.so
  0x001c: Rev: 1  Flags: none  Index: 2  Cnt: 1  Name: VERS_1.1

Version needs section '.gnu.version_r' contains 1 entries:
 Addr: 0x00000000000004ac  Offset: 0x0004ac  Link: 3 (.dynstr)
  000000: Version: 1  File: libc.so.6  Cnt: 1
  0x0010:   Name: GLIBC_2.2.5  Flags: none  Version: 3

I think this is working as intended, although comparing with Gnu ld output, I
see that gold defines it as a default version ("@@") where Gnu ld does not. I'm
not sure what the logic ought to be for that. Without the __asm__ in the .c
file, Gnu ld also makes it a default version.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to