Description
Bugzilla Link | 37724 |
Version | trunk |
OS | Linux |
Attachments | foo executable |
CC | @jh7370 |
Extended Description
The output of readobj --version-info for the attached file is the following:
File: foo
Format: ELF64-x86-64
Arch: x86_64
AddressSize: 64bit
LoadName:
Version symbols {
Section Name: .gnu.version (130)
Address: 0x408
Offset: 0x408
Link: 4
Symbols [
Symbol {
Version: 0
Name: @
}
Symbol {
Version: 2
Name: __libc_start_main@GLIBC_2.2.5
}
Symbol {
Version: 2
Name: __cxa_finalize@GLIBC_2.2.5
}
Symbol {
Version: 0
Name: _ITM_registerTMCloneTable@
}
Symbol {
Version: 0
Name: _ITM_deregisterTMCloneTable@
}
Symbol {
Version: 0
Name: gmon_start@
}
Symbol {
Version: 1
Name: foo@
}
Symbol {
Version: 1
Name: FOO@
}
]
}
SHT_GNU_verdef {
Definition {
Version: 1
Flags: 0x0
Index: 1
Hash: 19263
Name: FOO
}
}
SHT_GNU_verneed {
Dependency {
Version: 1
Count: 1
FileName: libc.so.6
Entry {
Hash: 157882997
Flags: 0x0
Index: 2
Name: GLIBC_2.2.5
}
}
}
It's rather unconventional that SHT_GNU_verdef doesn't contain a definition with Flags: Base, but that can happen thanks to GNU gold doing weird things. Anyways, the point is, symbols foo and FOO should appear as foo@@foo and FOO@@foo, not foo@ and FOO@.