diff options
-rw-r--r-- | ChangeLog | 25 | ||||
-rw-r--r-- | Makeconfig | 2 | ||||
-rw-r--r-- | Versions.def | 3 | ||||
-rw-r--r-- | db/Makefile | 68 | ||||
-rw-r--r-- | db/Versions | 2 | ||||
-rw-r--r-- | db/btree/bt_open.c | 8 | ||||
-rw-r--r-- | db/btree/bt_put.c | 3 | ||||
-rw-r--r-- | db/btree/bt_split.c | 4 | ||||
-rw-r--r-- | db/hash/hash.c | 2 | ||||
-rw-r--r-- | db/hash/hash_bigkey.c | 5 | ||||
-rw-r--r-- | db/recno/rec_close.c | 3 | ||||
-rw-r--r-- | include/db.h | 6 | ||||
-rw-r--r-- | scripts/versions.awk | 4 | ||||
-rw-r--r-- | shlib-versions | 4 |
14 files changed, 91 insertions, 48 deletions
@@ -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 diff --git a/Makeconfig b/Makeconfig index 0b7b0384ed..18773ff4f7 100644 --- a/Makeconfig +++ b/Makeconfig @@ -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 \ diff --git a/Versions.def b/Versions.def index 233119bf14..598c571aec 100644 --- a/Versions.def +++ b/Versions.def @@ -64,3 +64,6 @@ librt { libutil { GLIBC_2.0 } +libdb1 { + GLIBC_2.0 +} diff --git a/db/Makefile b/db/Makefile index 32a637f0bf..039a77e961 100644 --- a/db/Makefile +++ b/db/Makefile @@ -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 diff --git a/db/Versions b/db/Versions index 65c1ae7586..479604ee5f 100644 --- a/db/Versions +++ b/db/Versions @@ -1,4 +1,4 @@ -libdb { +libdb1 { GLIBC_2.0 { # the real DB entry point. dbopen; __dbopen; diff --git a/db/btree/bt_open.c b/db/btree/bt_open.c index 1396f3a255..8c2f48ebf5 100644 --- a/db/btree/bt_open.c +++ b/db/btree/bt_open.c @@ -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; diff --git a/db/btree/bt_put.c b/db/btree/bt_put.c index e6241152f3..15309c66e2 100644 --- a/db/btree/bt_put.c +++ b/db/btree/bt_put.c @@ -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); diff --git a/db/btree/bt_split.c b/db/btree/bt_split.c index 4484219ae2..4119ccbf79 100644 --- a/db/btree/bt_split.c +++ b/db/btree/bt_split.c @@ -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; } diff --git a/db/hash/hash.c b/db/hash/hash.c index 4ccb992bb7..99592eac51 100644 --- a/db/hash/hash.c +++ b/db/hash/hash.c @@ -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); diff --git a/db/hash/hash_bigkey.c b/db/hash/hash_bigkey.c index d80ebedb07..94c64083f5 100644 --- a/db/hash/hash_bigkey.c +++ b/db/hash/hash_bigkey.c @@ -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);; diff --git a/db/recno/rec_close.c b/db/recno/rec_close.c index 977493fe5b..8a3c4d77d6 100644 --- a/db/recno/rec_close.c +++ b/db/recno/rec_close.c @@ -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; diff --git a/include/db.h b/include/db.h index 64c7348ea6..383cef3831 100644 --- a/include/db.h +++ b/include/db.h @@ -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 diff --git a/scripts/versions.awk b/scripts/versions.awk index d6571fd039..f90248201b 100644 --- a/scripts/versions.awk +++ b/scripts/versions.awk @@ -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"; diff --git a/shlib-versions b/shlib-versions index 188e9ea3dc..6530d396b3 100644 --- a/shlib-versions +++ b/shlib-versions @@ -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 |