Sam Dave wrote: > Hello, > > Thanks in advance for some clues on the below: > > 1. > Has there ever been a release of LMDB that adds/removes/changes API?
There have been additions to the API over time. > 2. > On both Debian 10 (with lmdb 0.9.22) and Debian 11 (with lmdb 0.9.24) , under > lib/ I see > > liblmdb.so -> liblmdb.so.0 (symlink) > liblmdb.so.0 -> liblmdb.so.0.0.0 (symlink) > liblmdb.so.0.0.0 (the original file) > > Has this always been at 0.0.0 since the beginning of LMDB? From the point of > view of what the LMDB developers would expect, I mean. (I have no idea which > distros were distributing LMDB in the early days) > 3. > What are your intentions regarding this .so versioning in relation to > adding/removing/changes to the API? > Something like this, perhaps? > https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html > 4. > Another Linux distribution (NixOS 22.11, with lmdb 0.9.29) has *only* this > under lib/: > > liblmdb.so (the original file) > > Does this sound right to you? > What I mean is, when people compile LMDB down to an .so, would you expect > them to normally add a version after the ".so"? (As they apparently did in > Debian) Read the makefile and see. Currently liblmdb compiles down to about 110KB of x86-64 object code as a static library, and 125KB as a shared library. IMO it is a waste of effort to use it as a shared library since it's such a tiny piece of code; it should just be statically linked into every project that uses it. (Also the performance difference between static and dynamic linking is a measurable proportion of liblmdb runtime, so it's just better to build and link it statically.) -- -- Howard Chu CTO, Symas Corp. http://www.symas.com Director, Highland Sun http://highlandsun.com/hyc/ Chief Architect, OpenLDAP http://www.openldap.org/project/