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/

Reply via email to