RPM Community Forums

Mailing List Message of <popt-devel>

POPT 2.0: renaming to "popt2" vs. loader maps and ELF versioned symbols

From: Jeff Johnson <n3npq@mac.com>
Date: Thu 17 Jun 2010 - 22:38:52 CEST
Message-id: <3F994A6E-918A-40BA-A622-E888347E04DA@mac.com>
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
Received on Thu Jun 17 22:39:45 2010
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.