aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--db/Makefile15
2 files changed, 17 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index d0d34a8..6dd86f5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
1998-10-16 Ulrich Drepper <drepper@cygnus.com>
+ * db/Makefile: Add rule to generate shared object with the soname
+ from glibc 2.0.
+
* sysdeps/unix/opendir.c: Use O_DIRECTORY if available. If not
available double check to verify it's a directory.
diff --git a/db/Makefile b/db/Makefile
index 4df6f88..f8626e1 100644
--- a/db/Makefile
+++ b/db/Makefile
@@ -50,10 +50,23 @@ CFLAGS-hash_func.c := -Wno-unused
# The db code outsmarts the compiler frequently.
override CFLAGS += -Wno-uninitialized
+# We are in an ugly situation here. The library is called libdb1 but the
+# SONAME for compatibility reasons should be libdb. Therefore we duplicate
+# shared library generating rule here.
+
# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
# This ensures they will load libc.so for needed symbols if loaded by
# a statically-linked program that hasn't already loaded it.
-$(objpfx)libdb1.so: $(common-objpfx)libc.so
+$(objpfx)libdb1.so: $(objpfx)libdb1_pic.a $(+preinit) $(+postinit) $(+interp) \
+ $(common-objpfx)libc.so
+ $(LINK.o) -shared -o $@ $(sysdep-LDFLAGS) $(config-LDFLAGS) \
+ -B$(csu-objpfx) $(load-map-file) \
+ -Wl,-soname=lib$(libprefix)db.so$($(@F)-version) \
+ $(LDFLAGS.so) $(LDFLAGS-$(@F:lib%.so=%).so) \
+ -L$(subst :, -L,$(rpath-link)) -Wl,-rpath-link=$(rpath-link)\
+ -Wl,--whole-archive \
+ $(filter-out $(map-file) $(+preinit) $(+postinit),$^) \
+ $(no-whole-archive) $(LDLIBS-$(@F:lib%.so=%).so)
#subdir_install: $(inst_libdir)/libndbm.a
#$(inst_libdir)/libndbm.a: $(inst_libdir)/libdb1.a $(+force)