mirror of
git://sourceware.org/git/glibc.git
synced 2025-01-12 12:07:12 +08:00
Update.
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.
This commit is contained in:
parent
1cd9c90dc9
commit
24fd4cc451
25
ChangeLog
25
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
|
||||
|
@ -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 \
|
||||
|
@ -64,3 +64,6 @@ librt {
|
||||
libutil {
|
||||
GLIBC_2.0
|
||||
}
|
||||
libdb1 {
|
||||
GLIBC_2.0
|
||||
}
|
||||
|
66
db/Makefile
66
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
|
||||
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
|
||||
|
||||
headers := db.h mpool.h ndbm.h
|
||||
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)
|
||||
|
||||
others := makedb
|
||||
install-bin := makedb
|
||||
include ../Makeconfig
|
||||
|
||||
install-others := $(inst_slibdir)/libdb.so$(libdb1.so-version) \
|
||||
$(db1-headers:%=$(inst_includedir)/db1/%)
|
||||
|
||||
$(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
|
||||
$(objpfx)libdb1.so: $(common-objpfx)libc.so
|
||||
|
||||
subdir_install: $(inst_libdir)/libndbm.a
|
||||
$(inst_libdir)/libndbm.a: $(inst_libdir)/libdb.a $(+force)
|
||||
$(make-link)
|
||||
|
||||
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
|
||||
|
@ -1,4 +1,4 @@
|
||||
libdb {
|
||||
libdb1 {
|
||||
GLIBC_2.0 {
|
||||
# the real DB entry point.
|
||||
dbopen; __dbopen;
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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);;
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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";
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user