Hi,

I am going through the different eu-readelf command line options. One of them is eu-readelf -s  which output various symbols in an elf file.

Some of symbol names are printed in this way "_dl_starting_up@GLIBC_PRIVATE (21)" (taken from "eu-readelf -s libc.so.6")
Whatever I understood, above mentioned symbol is versioned (@ symbol).
Since, symbol versioning is done for resolving symbols why we are using (21) here?

I checked eu-readelf -V option too which contains version related information in   .gnu.version_r section, After doing some google got this link, http://refspecs.linuxbase.org/LSB_3.1.1/LSB-Core-generic/LSB-Core-generic/symversion.html

I tried to link them together and understood upto some extent. I also checked readelf.c source code of elfutils and was able to relate how that (N) is getting printed with some of symbols but couldn't understand the significance of why it has been added ?

Can somebody please help me in understanding this part.

Thanks