Update.
authorUlrich Drepper <drepper@redhat.com>
Wed, 23 Sep 1998 14:02:16 +0000 (14:02 +0000)
committerUlrich Drepper <drepper@redhat.com>
Wed, 23 Sep 1998 14:02:16 +0000 (14:02 +0000)
1998-09-23 13:52  Ulrich Drepper  <drepper@cygnus.com>

* Makeconfig (all-subdirs): Add db.
* Versions.def: Add definition for libdb1.
* shlib-versions: Add definitions for libdb1.
* db/Makefile (extra-libs): Replace by libdb1.
(libdb-routines): Rename to libdb1-routines.
(headers): Rename to db1-headers.
(distribute): Add $(db1-headers).
(install-others): Define to install symlink libdb.so.NN and the
$(db1-headers).
(CPPFLAGS): Add -USE_LIBDB1
Remove rules to build makedb.
* db/Versions: Rename libdb to libdb1.
* include/db.h: If USE_LIBDB1 is defined include db/db.h.

* scripts/versions.awk: Recognize digits in library names.

* db/btree/bt_open.c: Fix compiler warnings.
* db/btree/bt_put.c: Likewise.
* db/btree/bt_split.c: Likewise.
* db/hash/hash.c: Likewise.
* db/hash/hash_bigkey.c: Likewise.
* db/recno/rec_close.c: Likewise.

14 files changed:
ChangeLog
Makeconfig
Versions.def
db/Makefile
db/Versions
db/btree/bt_open.c
db/btree/bt_put.c
db/btree/bt_split.c
db/hash/hash.c
db/hash/hash_bigkey.c
db/recno/rec_close.c
include/db.h
scripts/versions.awk
shlib-versions

index 378c11c..a20d428 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,28 @@
+1998-09-23 13:52  Ulrich Drepper  <drepper@cygnus.com>
+
+       * Makeconfig (all-subdirs): Add db.
+       * Versions.def: Add definition for libdb1.
+       * shlib-versions: Add definitions for libdb1.
+       * db/Makefile (extra-libs): Replace by libdb1.
+       (libdb-routines): Rename to libdb1-routines.
+       (headers): Rename to db1-headers.
+       (distribute): Add $(db1-headers).
+       (install-others): Define to install symlink libdb.so.NN and the
+       $(db1-headers).
+       (CPPFLAGS): Add -USE_LIBDB1
+       Remove rules to build makedb.
+       * db/Versions: Rename libdb to libdb1.
+       * include/db.h: If USE_LIBDB1 is defined include db/db.h.
+
+       * scripts/versions.awk: Recognize digits in library names.
+
+       * db/btree/bt_open.c: Fix compiler warnings.
+       * db/btree/bt_put.c: Likewise.
+       * db/btree/bt_split.c: Likewise.
+       * db/hash/hash.c: Likewise.
+       * db/hash/hash_bigkey.c: Likewise.
+       * db/recno/rec_close.c: Likewise.
+
 1998-09-22 19:58 -0400  Zack Weinberg  <zack@rabi.phys.columbia.edu>
 
        * posix/execvp.c: Don't give up searching the PATH if execve
index 0b7b038..18773ff 100644 (file)
@@ -748,7 +748,7 @@ sysdep-subdirs := $(subst $(\n), ,$(sysdep-subdirs))
 endif
 
 # These are the subdirectories containing the library source.
-all-subdirs = csu assert ctype db2 locale intl catgets math setjmp signal   \
+all-subdirs = csu assert ctype db db2 locale intl catgets math setjmp signal\
              stdlib stdio-common $(stdio) malloc string wcsmbs time dirent \
              grp pwd posix io termios resource misc socket sysvipc gmon    \
              gnulib iconv iconvdata wctype manual shadow md5-crypt po argp \
index 233119b..598c571 100644 (file)
@@ -64,3 +64,6 @@ librt {
 libutil {
   GLIBC_2.0
 }
+libdb1 {
+  GLIBC_2.0
+}
index 32a637f..039a77e 100644 (file)
@@ -8,30 +8,40 @@ subdir = db
 subdir-dirs = btree db hash mpool recno
 vpath %.c $(subdir-dirs)
 
-extra-libs := libdb
+extra-libs := libdb1
 extra-libs-others := $(extra-libs)
-libdb-routines := bt_close bt_conv bt_debug bt_delete bt_get \
-                 bt_open bt_overflow bt_page bt_put bt_search \
-                 bt_seq bt_split bt_utils \
-                 db \
-                 hash hash_bigkey hash_buf hash_func hash_log2 hash_page \
-                 ndbm \
-                 mpool \
-                 rec_close rec_delete rec_get rec_open rec_put rec_search \
-                 rec_seq rec_utils
-
-headers                := db.h mpool.h ndbm.h
+libdb1-routines := bt_close bt_conv bt_debug bt_delete bt_get \
+                  bt_open bt_overflow bt_page bt_put bt_search \
+                  bt_seq bt_split bt_utils \
+                  db \
+                  hash hash_bigkey hash_buf hash_func hash_log2 hash_page \
+                  ndbm \
+                  mpool \
+                  rec_close rec_delete rec_get rec_open rec_put rec_search \
+                  rec_seq rec_utils
+
+db1-headers    := db.h mpool.h ndbm.h
 distribute     := compat.h                                     \
                   btree/btree.h btree/extern.h                 \
                   hash/extern.h hash/hash.h hash/page.h        \
-                  recno/extern.h recno/recno.h
+                  recno/extern.h recno/recno.h                 \
+                  $(db1-headers)
+
+include ../Makeconfig
+
+install-others := $(inst_slibdir)/libdb.so$(libdb1.so-version) \
+                  $(db1-headers:%=$(inst_includedir)/db1/%)
 
-others         := makedb
-install-bin    := makedb
+$(inst_slibdir)/libdb.so$(libdb1.so-version): $(inst_slibdir)/libdb1-$(version).so $(+force)
+       rm -f $@
+       $(LN_S) $(^F) $@
+
+$(db1-headers:%=$(inst_includedir)/db1/%): $(inst_includedir)/db1/%: % $(+force)
+       $(do-install)
 
 include ../Rules
 
-CPPFLAGS += -D__DBINTERFACE_PRIVATE
+CPPFLAGS += -D__DBINTERFACE_PRIVATE -DUSE_LIBDB1
 
 # This file defines some static functions for alternative hash algorithms
 # that are not actually used.
@@ -40,23 +50,17 @@ CFLAGS-hash_func.c := -Wno-unused
 # The db code outsmarts the compiler frequently.
 override CFLAGS += -Wno-uninitialized
 
-ifeq ($(build-shared),yes)
-$(objpfx)makedb: $(objpfx)libdb.so$(libdb.so-version)
-else
-$(objpfx)makedb: $(objpfx)libdb.a
-endif
-
 # 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)libdb.so: $(common-objpfx)libc.so
-
-subdir_install: $(inst_libdir)/libndbm.a
-$(inst_libdir)/libndbm.a: $(inst_libdir)/libdb.a $(+force)
-       $(make-link)
+$(objpfx)libdb1.so: $(common-objpfx)libc.so
 
-ifeq ($(build-shared),yes)
-subdir_install: $(inst_libdir)/libndbm.so
-$(inst_libdir)/libndbm.so: $(inst_libdir)/libdb.so $(+force)
-       $(make-link)
-endif
+#subdir_install: $(inst_libdir)/libndbm.a
+#$(inst_libdir)/libndbm.a: $(inst_libdir)/libdb1.a $(+force)
+#      $(make-link)
+#
+#ifeq ($(build-shared),yes)
+#subdir_install: $(inst_libdir)/libndbm.so
+#$(inst_libdir)/libndbm.so: $(inst_libdir)/libdb1.so $(+force)
+#      $(make-link)
+#endif
index 65c1ae7..479604e 100644 (file)
@@ -1,4 +1,4 @@
-libdb {
+libdb1 {
   GLIBC_2.0 {
     # the real DB entry point.
     dbopen; __dbopen;
index 1396f3a..8c2f48e 100644 (file)
@@ -125,7 +125,7 @@ __bt_open(fname, flags, mode, openinfo, dflags)
                 */
                if (b.psize &&
                    (b.psize < MINPSIZE || b.psize > MAX_PAGE_OFFSET + 1 ||
-                   b.psize & sizeof(indx_t) - 1))
+                   b.psize & (sizeof(indx_t) - 1)))
                        goto einval;
 
                /* Minimum number of keys per page; absolute minimum is 2. */
@@ -245,7 +245,7 @@ __bt_open(fname, flags, mode, openinfo, dflags)
                if (m.magic != BTREEMAGIC || m.version != BTREEVERSION)
                        goto eftype;
                if (m.psize < MINPSIZE || m.psize > MAX_PAGE_OFFSET + 1 ||
-                   m.psize & sizeof(indx_t) - 1)
+                   m.psize & (sizeof(indx_t) - 1))
                        goto eftype;
                if (m.flags & ~SAVEMETA)
                        goto eftype;
@@ -280,8 +280,8 @@ __bt_open(fname, flags, mode, openinfo, dflags)
        t->bt_psize = b.psize;
 
        /* Set the cache size; must be a multiple of the page size. */
-       if (b.cachesize && b.cachesize & b.psize - 1)
-               b.cachesize += (~b.cachesize & b.psize - 1) + 1;
+       if (b.cachesize && b.cachesize & (b.psize - 1))
+               b.cachesize += (~b.cachesize & (b.psize - 1)) + 1;
        if (b.cachesize < b.psize * MINCACHE)
                b.cachesize = b.psize * MINCACHE;
 
index e624115..15309c6 100644 (file)
@@ -223,7 +223,7 @@ delete:             if (__bt_dleaf(t, key, h, index) == RET_ERROR) {
            t->bt_cursor.pg.pgno == h->pgno && t->bt_cursor.pg.index >= index)
                ++t->bt_cursor.pg.index;
 
-       if (t->bt_order == NOT)
+       if (t->bt_order == NOT) {
                if (h->nextpg == P_INVALID) {
                        if (index == NEXTINDEX(h) - 1) {
                                t->bt_order = FORWARD;
@@ -237,6 +237,7 @@ delete:             if (__bt_dleaf(t, key, h, index) == RET_ERROR) {
                                t->bt_last.pgno = h->pgno;
                        }
                }
+       }
 
        mpool_put(t->bt_mp, h, MPOOL_DIRTY);
 
index 4484219..4119ccb 100644 (file)
@@ -674,8 +674,8 @@ bt_psplit(t, h, l, r, pskip, ilen)
                 * where we decide to try and copy too much onto the left page.
                 * Make sure that doesn't happen.
                 */
-               if (skip <= off &&
-                   used + nbytes + sizeof(indx_t) >= full || nxt == top - 1) {
+               if ((skip <= off && used + nbytes + sizeof(indx_t) >= full)
+                   || nxt == top - 1) {
                        --off;
                        break;
                }
index 4ccb992..99592ea 100644 (file)
@@ -873,7 +873,7 @@ hash_realloc(p_ptr, oldsize, newsize)
 {
        register void *p;
 
-       if (p = malloc(newsize)) {
+       if ((p = malloc(newsize))) {
                memmove(p, *p_ptr, oldsize);
                memset((char *)p + oldsize, 0, newsize - oldsize);
                free(*p_ptr);
index d80ebed..94c6408 100644 (file)
@@ -121,7 +121,7 @@ __big_insert(hashp, bufp, key, val)
                if (!bufp)
                        return (-1);
                n = p[0];
-               if (!key_size)
+               if (!key_size) {
                        if (FREESPACE(p)) {
                                move_bytes = MIN(FREESPACE(p), val_size);
                                off = OFFSET(p) - move_bytes;
@@ -134,6 +134,7 @@ __big_insert(hashp, bufp, key, val)
                                OFFSET(p) = off;
                        } else
                                p[n - 2] = FULL_KEY;
+               }
                p = (u_int16_t *)bufp->page;
                cp = bufp->page;
                bufp->flags |= BUF_MOD;
@@ -590,7 +591,7 @@ __big_split(hashp, op, np, big_keyp, addr, obucket, ret)
                return (-1);
        change = (__call_hash(hashp, key.data, key.size) != obucket);
 
-       if (ret->next_addr = __find_last_page(hashp, &big_keyp)) {
+       if ((ret->next_addr = __find_last_page(hashp, &big_keyp))) {
                if (!(ret->nextp =
                    __get_buf(hashp, ret->next_addr, big_keyp, 0)))
                        return (-1);;
index 977493f..8a3c4d7 100644 (file)
@@ -79,13 +79,14 @@ __rec_close(dbp)
        if (F_ISSET(t, R_MEMMAPPED) && munmap(t->bt_smap, t->bt_msize))
                status = RET_ERROR;
 
-       if (!F_ISSET(t, R_INMEM))
+       if (!F_ISSET(t, R_INMEM)) {
                if (F_ISSET(t, R_CLOSEFP)) {
                        if (fclose(t->bt_rfp))
                                status = RET_ERROR;
                } else
                        if (close(t->bt_rfd))
                                status = RET_ERROR;
+       }
 
        if (__bt_close(dbp) == RET_ERROR)
                status = RET_ERROR;
index 64c7348..383cef3 100644 (file)
@@ -1,9 +1,13 @@
 #ifndef _DB_H_
 
-#include <db2/db.h>
+#ifdef USE_LIBDB1
+# include <db/db.h>
+#else
+# include <db2/db.h>
 
 /* Internal interface for NSS.  */
 int __nss_db_open __P((const char *,
                       DBTYPE, u_int32_t, int, DB_ENV *, DB_INFO *, DB **));
+#endif
 
 #endif
index d6571fd..f902482 100644 (file)
@@ -12,7 +12,7 @@
 BEGIN {
   nlibs=0;
   while (getline < defsfile) {
-    if (/^[a-zA-Z_]+ {/) {
+    if (/^[a-zA-Z0-9_]+ {/) {
       libs[$1] = 1;
       curlib = $1;
       while (getline < defsfile && ! /^}/) {
@@ -38,7 +38,7 @@ BEGIN {
 }
 
 # This matches the beginning of the version information for a new library.
-/^[a-zA-Z_]+/ {
+/^[a-zA-Z0-9_]+/ {
   actlib = $1;
   if (!libs[$1]) {
     printf("no versions defined for %s\n", $1) > "/dev/stderr";
index 188e9ea..6530d39 100644 (file)
@@ -73,6 +73,10 @@ alpha.*-.*-linux.*   libnsl=1.1
 
 # We use libdb.so.3 for the interface in version 2.x of the Berkeley DB code.
 .*-.*-.*               libdb=3
+# This is the Berkeley DB 1.85.  We use the version numbers from glibc 2.0.*
+# for all times.
+alpha-.*-linux.*        libdb1=2.1
+.*-.*-.*                libdb1=2
 
 # This defines the shared library version numbers we will install.
 alpha.*-.*-linux.*     libcrypt=1.1