lmdb: set SONAME for liblmdb.so

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ń <michal@isc.org>
This commit is contained in:
Michał Kępień
2026-04-02 16:07:11 +02:00
committed by Alexandru Ardelean
parent 7bcdfa4bd5
commit 8aa78ebebf

View File

@@ -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