Move vendor patches into files/.

Fix WITH_DEBUG build, reported by Edward Sanford.
This commit is contained in:
Matthias Andree 2010-10-09 13:54:56 +00:00
parent a2388ee3d6
commit f08cbd6639
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=262683
6 changed files with 132 additions and 18 deletions

View file

@ -15,29 +15,14 @@ PKGNAMESUFFIX?=
DISTNAME= db-4.4.20
DIST_SUBDIR= bdb
PATCH_SITES= http://www.oracle.com/technology/products/berkeley-db/db/update/4.4.20/
PATCHFILES= patch.4.4.20.1 patch.4.4.20.2 patch.4.4.20.3 patch.4.4.20.4
PATCH_DIST_STRIP= -d ..
# * patch.4.4.20.1: -----------------------------------------------------------
# Fix a bug that could cause a trap during recovery if multiple operations that
# could remove the same extent were recovered. [#14061]
# * patch.4.4.20.2: -----------------------------------------------------------
# Fix a bug that could cause traps or hangs if the DB_TXN->set_name function is
# used in a multithreaded application. [#14033]
# * patch.4.4.20.3: -----------------------------------------------------------
# Fix a bug where cursor lookups on secondary databases with off-page
# duplicates could fail. [#14240]
# * patch.4.4.20.4: -----------------------------------------------------------
# Fix a bug where cache buffer retrieval could race with a checkpoint
# call, potentially causing database environment recovery to fail. [#14657]
MAINTAINER= mandree@FreeBSD.org
COMMENT= The Berkeley DB package, revision 4.4
WRKSRC= ${WRKDIR}/${DISTNAME}/build_unix
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
GNU_CONFIGURE= yes
DEBUG_FLAGS= -g -O1 # need -O1 for inline assembly
CONFIGURE_SCRIPT= ../dist/configure
LIBTOOLFILES= ${CONFIGURE_SCRIPT}
BDBVER= ${PORTVERSION:R:R}

View file

@ -1,6 +1,6 @@
--- ../dist/configure.orig Wed Dec 5 13:14:02 2001
+++ ../dist/configure Wed Dec 5 13:24:01 2001
@@ -20867,8 +20867,8 @@
@@ -21657,8 +21657,8 @@
MAKEFILE_CC="\$(LIBTOOL) --mode=compile ${MAKEFILE_CC}"
-MAKEFILE_SOLINK="\$(LIBTOOL) --mode=link ${MAKEFILE_CCLINK} -avoid-version"

View file

@ -0,0 +1,27 @@
*** ../qam/qam_files.c.orig 2005-10-20 11:57:12.000000000 -0700
--- ../qam/qam_files.c 2006-01-27 13:38:38.000000000 -0800
***************
*** 411,416 ****
--- 411,422 ----
DB_APP_DATA, buf, 0, NULL, &real_name)) != 0)
goto err;
#endif
+
+ mpf = array->mpfarray[offset].mpf;
+ /* This extent my already be marked for delete and closed. */
+ if (mpf == NULL)
+ goto err;
+
/*
* The log must be flushed before the file is deleted. We depend on
* the log record of the last delete to recreate the file if we crash.
***************
*** 418,424 ****
if (LOGGING_ON(dbenv) && (ret = __log_flush(dbenv, NULL)) != 0)
goto err;
- mpf = array->mpfarray[offset].mpf;
(void)__memp_set_flags(mpf, DB_MPOOL_UNLINK, 1);
/* Someone could be real slow, let them close it down. */
if (array->mpfarray[offset].pinref != 0)
--- 424,429 ----

View file

@ -0,0 +1,29 @@
*** ../txn/txn.c.orig Tue Nov 1 06:50:03 2005
--- ../txn/txn.c Tue Jan 31 15:05:13 2006
***************
*** 1049,1060 ****
--- 1049,1062 ----
return (ret);
memcpy(txn->name, name, len);
+ TXN_SYSTEM_LOCK(dbenv);
if (td->name != INVALID_ROFF) {
__db_shalloc_free(
&mgr->reginfo, R_ADDR(&mgr->reginfo, td->name));
td->name = INVALID_ROFF;
}
if ((ret = __db_shalloc(&mgr->reginfo, len, 0, &p)) != 0) {
+ TXN_SYSTEM_UNLOCK(dbenv);
__db_err(dbenv,
"Unable to allocate memory for transaction name");
***************
*** 1063,1068 ****
--- 1065,1071 ----
return (ret);
}
+ TXN_SYSTEM_UNLOCK(dbenv);
td->name = R_OFFSET(&mgr->reginfo, p);
memcpy(p, name, len);

View file

@ -0,0 +1,49 @@
*** ../db/db_cam.c.orig 2006-01-11 03:19:21.000000000 +1100
--- ../db/db_cam.c 2006-03-01 13:59:01.000000000 +1100
***************
*** 579,589 ****
flags == DB_NEXT || flags == DB_NEXT_DUP || flags == DB_PREV)) {
if (tmp_rmw && (ret = dbc_arg->c_am_writelock(dbc_arg)) != 0)
return (ret);
! if ((ret = __db_c_idup(cp->opd, &opd, DB_POSITION)) != 0)
return (ret);
! switch (ret =
! opd->c_am_get(opd, key, data, flags, NULL)) {
case 0:
goto done;
case DB_NOTFOUND:
--- 579,590 ----
flags == DB_NEXT || flags == DB_NEXT_DUP || flags == DB_PREV)) {
if (tmp_rmw && (ret = dbc_arg->c_am_writelock(dbc_arg)) != 0)
return (ret);
! if (F_ISSET(dbc_arg, DBC_TRANSIENT))
! opd = cp->opd;
! else if ((ret = __db_c_idup(cp->opd, &opd, DB_POSITION)) != 0)
return (ret);
! switch (ret = opd->c_am_get(opd, key, data, flags, NULL)) {
case 0:
goto done;
case DB_NOTFOUND:
***************
*** 596,607 ****
--- 597,614 ----
if ((ret = __db_c_close(opd)) != 0)
goto err;
opd = NULL;
+ if (F_ISSET(dbc_arg, DBC_TRANSIENT))
+ cp->opd = NULL;
break;
}
goto err;
default:
goto err;
}
+ } else if (cp->opd != NULL && F_ISSET(dbc_arg, DBC_TRANSIENT)) {
+ if ((ret = __db_c_close(cp->opd)) != 0)
+ goto err;
+ cp->opd = NULL;
}
/*

View file

@ -0,0 +1,24 @@
*** ../mp/mp_fget.c.orig 2005-10-12 10:53:36.000000000 -0700
--- ../mp/mp_fget.c 2006-05-30 20:48:10.000000000 -0700
***************
*** 587,594 ****
*/
if (state != SECOND_MISS && bhp->ref == 1) {
bhp->priority = UINT32_MAX;
! SH_TAILQ_REMOVE(&hp->hash_bucket, bhp, hq, __bh);
! SH_TAILQ_INSERT_TAIL(&hp->hash_bucket, bhp, hq);
hp->hash_priority =
SH_TAILQ_FIRSTP(&hp->hash_bucket, __bh)->priority;
}
--- 587,597 ----
*/
if (state != SECOND_MISS && bhp->ref == 1) {
bhp->priority = UINT32_MAX;
! if (SH_TAILQ_FIRST(&hp->hash_bucket, __bh) !=
! SH_TAILQ_LAST(&hp->hash_bucket, hq, __bh)) {
! SH_TAILQ_REMOVE(&hp->hash_bucket, bhp, hq, __bh);
! SH_TAILQ_INSERT_TAIL(&hp->hash_bucket, bhp, hq);
! }
hp->hash_priority =
SH_TAILQ_FIRSTP(&hp->hash_bucket, __bh)->priority;
}