I have two very similar .so files. Using readelf --syms --wide on them I receive...
... for the first:
631: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __cxa_guard_acquire@CXXABI_1.3 (18)
666: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __cxa_pure_virtual@CXXABI_1.3 (18)
... for the second:
671: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __cxa_guard_acquire@CXXABI_1.3 (21)
706: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __cxa_pure_virtual@CXXABI_1.3 (21)
What does the (18) and (21) mean, respectively?
It's the value of
.vd_versionfrom corresponding version definition (ElfXX_Verdefinelf.h). For example:Note that
GLIBC_2.2.5hasVersion: 3andGLIBC_2.17hasVersion: 5.