lmdb: set SONAME for liblmdb.so
authorMichał Kępień <redacted>
Thu, 2 Apr 2026 14:07:11 +0000 (16:07 +0200)
committerAlexandru Ardelean <redacted>
Fri, 3 Apr 2026 06:38:58 +0000 (09:38 +0300)
The LMDB shared library (liblmdb.so) does not currently have a SONAME
set, which can cause issues when linking against it.  Specifically, when
an object is linked against the library using its absolute path (for
example, in Meson builds), that path (as seen in the build environment)
is stored in the resulting object's DT_NEEDED entry.  This can prevent
the library from being found during runtime linking.  Set the SONAME to
liblmdb.so to ensure proper runtime linking.

Signed-off-by: Michał Kępień <redacted>
libs/lmdb/patches/020-set-soname-for-liblmdb-so.patch [new file with mode: 0644]

diff --git a/libs/lmdb/patches/020-set-soname-for-liblmdb-so.patch b/libs/lmdb/patches/020-set-soname-for-liblmdb-so.patch
new file mode 100644 (file)
index 0000000..51190c7
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/libraries/liblmdb/Makefile
++++ b/libraries/liblmdb/Makefile
+@@ -67,7 +67,7 @@ liblmdb.a:   mdb.o midl.o
+ liblmdb$(SOEXT):      mdb.lo midl.lo
+ #     $(CC) $(LDFLAGS) -pthread -shared -Wl,-Bsymbolic -o $@ mdb.o midl.o $(SOLIBS)
+-      $(CC) $(LDFLAGS) -pthread -shared -o $@ mdb.lo midl.lo $(SOLIBS)
++      $(CC) $(LDFLAGS) -pthread -shared -Wl,-soname,$@ -o $@ mdb.lo midl.lo $(SOLIBS)
+ mdb_stat: mdb_stat.o liblmdb.a
+ mdb_copy: mdb_copy.o liblmdb.a
git clone https://git.99rst.org/PROJECT