As the last of the shared GCC runtime libraries, libgnat.so and libgnarl.so lack symbol versioning support and a defined ABI. Currently, they use libgnat-4.5.so and libgnarl-4.5.so SONAMEs, what libtool calls release versioning. If the libgnat/libgnarl ABI is really that fluent that it changes from release to release, there's obviously no point in defining one, but given the Ada Reference Manual, I cannot really believe this, but assume that this is just being cautious.
If one would want to go forward with defining an ABI, one could start with the list of global symbols, as I've done in the libffi and libobjc cases, and remove anything that is an implementation detail. Since I barely know any Ada, or Ada mangling, I cannot do this on my own, but would proceed with guidance from the Ada maintainers if deemed worthwhile. In fact, I'd expect that it would be possible to mechanically generate a list of public interfaces to start from from the *.ads files, adding in some global functions from the runtime. Suggestions, advice, discouragement :-) Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University