Re: Building and using shared libraries using gccgo
On Tue, Feb 5, 2013 at 7:14 AM, Michael Stapelberg wrote:
> Assuming we ship Go libraries compiled as shared libraries, where do we
> get the SONAME from? There is no mechanism for Go libraries to declare
> an ABI break. Inventing one and asking all upstream projects to adopt it
> seems unlikely to succeed. Ignoring SONAMEs altogether could make
> software break on the user’s installation. Then again, the same could
> happen to every interpreted language, e.g. Perl.
Could it be automatically created based on some sort of hash of the
exported symbols and their argument lists?
If not, based on your discussions with upstream I would say that the
culture of the Go development community is incompatible with shared
libraries. So your choices are:
Convince Go upstream to add an officially-supported and encouraged
shared library mechanism that includes ABI mechanisms.
Invent some automatic, Debian-specific method for ABI stuff. Like
Provides: go-foo-abi-<hash> and put that info in shlibs.
Use static libraries, Built-Using and frequent binNMUs.