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
        never used.

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
POPT Library                                 
Developer Communication List             

Reply via email to