--- /dev/null
+--- /dev/null
++++ b/lib/berkeley-db-1.xx/include/berkeley-db/cdefs.h
+@@ -0,0 +1,122 @@
++/*
++ * Copyright (c) 1991, 1993
++ * The Regents of the University of California. All rights reserved.
++ *
++ * This code is derived from software contributed to Berkeley by
++ * Berkeley Software Design, Inc.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * 1. Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ * 2. Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in the
++ * documentation and/or other materials provided with the distribution.
++ * 3. All advertising materials mentioning features or use of this software
++ * must display the following acknowledgement:
++ * This product includes software developed by the University of
++ * California, Berkeley and its contributors.
++ * 4. Neither the name of the University nor the names of its contributors
++ * may be used to endorse or promote products derived from this software
++ * without specific prior written permission.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++ * SUCH DAMAGE.
++ *
++ * @(#)cdefs.h 8.7 (Berkeley) 1/21/94
++ */
++
++#ifndef _CDEFS_H_
++#define _CDEFS_H_
++
++#if defined(__cplusplus)
++#define __BEGIN_DECLS extern "C" {
++#define __END_DECLS };
++#else
++#define __BEGIN_DECLS
++#define __END_DECLS
++#endif
++
++/*
++ * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
++ * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
++ * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
++ * in between its arguments. __CONCAT can also concatenate double-quoted
++ * strings produced by the __STRING macro, but this only works with ANSI C.
++ */
++#if defined(__STDC__) || defined(__cplusplus)
++#define __P(protos) protos /* full-blown ANSI C */
++#define __CONCAT(x,y) x ## y
++#define __STRING(x) #x
++
++#define __const const /* define reserved names to standard */
++#define __signed signed
++#define __volatile volatile
++#if defined(__cplusplus)
++#define __inline inline /* convert to C++ keyword */
++#else
++#ifndef __GNUC__
++#define __inline /* delete GCC keyword */
++#endif /* !__GNUC__ */
++#endif /* !__cplusplus */
++
++#else /* !(__STDC__ || __cplusplus) */
++#define __P(protos) () /* traditional C preprocessor */
++#define __CONCAT(x,y) x/**/y
++#define __STRING(x) "x"
++
++#ifndef __GNUC__
++#define __const /* delete pseudo-ANSI C keywords */
++#define __inline
++#define __signed
++#define __volatile
++/*
++ * In non-ANSI C environments, new programs will want ANSI-only C keywords
++ * deleted from the program and old programs will want them left alone.
++ * When using a compiler other than gcc, programs using the ANSI C keywords
++ * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
++ * When using "gcc -traditional", we assume that this is the intent; if
++ * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
++ */
++#ifndef NO_ANSI_KEYWORDS
++#define const /* delete ANSI C keywords */
++#define inline
++#define signed
++#define volatile
++#endif
++#endif /* !__GNUC__ */
++#endif /* !(__STDC__ || __cplusplus) */
++
++/*
++ * GCC1 and some versions of GCC2 declare dead (non-returning) and
++ * pure (no side effects) functions using "volatile" and "const";
++ * unfortunately, these then cause warnings under "-ansi -pedantic".
++ * GCC2 uses a new, peculiar __attribute__((attrs)) style. All of
++ * these work for GNU C++ (modulo a slight glitch in the C++ grammar
++ * in the distribution version of 2.5.5).
++ */
++#if !defined(__GNUC__) || __GNUC__ < 2 || __GNUC_MINOR__ < 5
++#define __attribute__(x) /* delete __attribute__ if non-gcc or gcc1 */
++#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
++#define __dead __volatile
++#define __pure __const
++#endif
++#endif
++
++/* Delete pseudo-keywords wherever they are not available or needed. */
++#ifndef __dead
++#define __dead
++#define __pure
++#endif
++
++#endif /* !_CDEFS_H_ */
+--- a/lib/berkeley-db-1.xx/include/berkeley-db/db.h
++++ b/lib/berkeley-db-1.xx/include/berkeley-db/db.h
+@@ -34,7 +34,7 @@
+ #define _DB_H_
+
+ #include <sys/types.h>
+-#include <sys/cdefs.h>
++#include "cdefs.h"
+
+ #include <limits.h>
+
--- /dev/null
+--- a/lib/berkeley-db-1.xx/btree/bt_split.c
++++ b/lib/berkeley-db-1.xx/btree/bt_split.c
+@@ -91,7 +91,7 @@ __bt_split(t, sp, key, data, flags, ilen
+ PAGE *h, *l, *r, *lchild, *rchild;
+ indx_t nxtindex;
+ u_int16_t skip;
+- u_int32_t n, nbytes, nksize = 0;
++ u_int32_t n, nbytes = 0, nksize = 0;
+ int parentsplit;
+ char *dest;
+ pgno_t pg_tmp;
+@@ -626,8 +626,8 @@ bt_psplit(t, h, l, r, pskip, ilen)
+ PAGE *rval;
+ void *src = NULL;
+ indx_t full, half, nxt, off, skip, top, used;
+- u_int32_t nbytes;
+- int bigkeycnt, isbigkey;
++ u_int32_t nbytes = 0;
++ int bigkeycnt, isbigkey = 0;
+
+ /*
+ * Split the data to the left and right pages. Leave the skip index