Hi,
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?
The other thing I wanted to confirm was,
- 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?
So could I infer that
- `Version symbol' entries are greater than 1 if and only if the
concerned library(or DSO) uses symbol versioning.
- 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?
Thank you.
--
Regards
- Prasad