Howard Chu hyc@symas.com writes:
Russ Allbery wrote:
It would be very nice if the OpenLDAP libraries supported and used symbol versioning to make this somewhat more robust.
symbol versioning isn't a portable or universal concept.
True, you need Autoconf logic to only use it where available.
The entire issue is outside our scope anyway, since it's a packaging matter.
Hm, well, that's contrary to the stance taken by most other library maintainers. Symbol versioning is generally the responsibility of the maintainer of the library since they're in full possession of information about the expected public ABI. For example, both MIT Kerberos and Heimdal use symbol versioning in their libraries and maintain it as part of the project.
Among other things, maintaining the symbol versioning as part of the OpenLDAP library build process means a consistent ABI across different Linux distributions, whereas treating it as a packaging matter and having distribution packagers introduce symbol versioning independently (which I assume is what you mean by a packaging matter -- maybe I'm confused?) doesn't provide that guarantee.
Symbol versioning is particularly useful for OpenLDAP since the OpenLDAP libraries have regular SONAME changes (one for every major release), which means that having two versions of the library around temporarily during transitions and upgrades is common. It's also very useful given the recommendation to not use the distribution packages, since it lets two different OpenLDAP libraries coexist on the system safely even if (through dynamic loading or plugins) both are loaded into the same process namespace. As more libraries and programs support plugins and dependency chains get longer and more complicated, it's increasingly tricky to avoid that entirely.