Uli is the real expert here, so I may be a little off. > I came across a library `libexiv2.so'(www.exiv2.org) which has some hidden > symbols in it. But the `Version symbol' entries for those hidden symbols > are shown as - 1 *global* - by `eu-readelf -sV'. Now if symbol is hidden > > - shouldn't the highest(15'th) bit of the corresponding `Version symbol' > entry be set? And if so, then it could not possibly equate to 1, > right?
I don't know that ST_VISIBILITY bits relate to version sets in this way. > - a binary(say tcpdump) is linked to a library(libpcap) which does not > use Symbol Versioning and does not have `Version definition' section > in it. In such a case, > > $ `eu-readelf -sV tcpdump' > > shows an output wherein, `Version symbol' entries for symbols > defined in libpacp are shown as: 0 *local* . Which means the symbol > is defined in the same object and is not accessible outside of the > same, right? No. These are undefined symbols in tcpdump. The 0 indicates lack of a version binding for the symbol. > - `Version symbol' entries are greater than 1 if and only if the > concerned library(or DSO) uses symbol versioning. I think this is correct. > - And if so, there is no way of knowing if a *local* symbol is defined in > the same object/binary or is resolved from a library while running? SHN_UNDEF symbols always have to be resolved. _______________________________________________ elfutils-devel mailing list [email protected] https://fedorahosted.org/mailman/listinfo/elfutils-devel
