There's a thread on gcrypt-devel that is directly
relevant to POPT library "compatibility" and symbol handling:
(You will get a "403 Forbidden" for the gcrypt-devel archives, go find a mirror)
And for reference, there's Drepper's deep dark chocolate DSO guidance here:
And gcrypt-devel is unrelated to generating 64bit RSA keypairs using
a RPN calculator in POPT. ;-)
There are (at least) two approaches to adding symbol versioning
and visibility to a DSO library.
1) use a loader map
already implemented in POPT, just "opt-in" and so
2) use GCC __attribute__(("visibility")) voo-doo
Using __attribute__ can be used to do "opt-out" symbol hiding
without the modest overhead of loader maps.
The other (and different) issue is symbol versioning. The connection
to "visibility" is largely because a loader map can also be used
to add symbol versions quite easily.
There's also the distantly related/coupled issue (if I choose to
add ELF symbols to the RPN calculator) of using
dlsym() # in POSIX and should be "portable"
dlvsym() # GNU extensions necessary with versioned symbol lookup
I can/will chase down a "straw-man" implementation using loader maps
and versioned symbols for "compatibility" over the next month
because I _REALLY_ think renaming to "popt2" is just wussiness.
73 de Jeff
Received on Thu Jun 17 22:39:45 2010