early-access version 2853

This commit is contained in:
pineappleEA
2022-07-23 03:01:36 +02:00
parent 1f2b5081b5
commit 1f111bb69c
8955 changed files with 418777 additions and 999 deletions

View File

@@ -0,0 +1,278 @@
cmake_minimum_required(VERSION 3.8)
project(berkeleydb C CXX)
option(INSTALL_HEADERS "Install header files" ON)
add_definitions(
-DWIN32
-D_WINDOWS
-D_CRT_SECURE_NO_DEPRECATE
-D_CRT_NONSTDC_NO_DEPRECATE
-D_LIB
-DUNICODE
-D_UNICODE
)
if (BUILD_SHARED_LIBS)
add_definitions(
-DDB_CREATE_DLL
-D_USRDLL
)
else()
add_definitions(
-D_LIB
)
endif()
add_library(libdb48
btree/bt_compact.c
btree/bt_compare.c
btree/bt_compress.c
btree/bt_conv.c
btree/bt_curadj.c
btree/bt_cursor.c
btree/bt_delete.c
btree/bt_method.c
btree/bt_open.c
btree/bt_put.c
btree/bt_rec.c
btree/bt_reclaim.c
btree/bt_recno.c
btree/bt_rsearch.c
btree/bt_search.c
btree/bt_split.c
btree/bt_stat.c
btree/bt_upgrade.c
btree/bt_verify.c
btree/btree_auto.c
db/crdel_auto.c
db/crdel_rec.c
common/crypto_stub.c
cxx/cxx_db.cpp
cxx/cxx_dbc.cpp
cxx/cxx_dbt.cpp
cxx/cxx_env.cpp
cxx/cxx_except.cpp
cxx/cxx_lock.cpp
cxx/cxx_logc.cpp
cxx/cxx_mpool.cpp
cxx/cxx_multi.cpp
cxx/cxx_seq.cpp
cxx/cxx_txn.cpp
db/db.c
db/db_am.c
db/db_auto.c
common/db_byteorder.c
db/db_cam.c
db/db_cds.c
db/db_conv.c
db/db_dispatch.c
db/db_dup.c
common/db_err.c
common/db_getlong.c
common/db_idspace.c
common/db_compint.c
db/db_iface.c
db/db_join.c
common/db_log2.c
db/db_meta.c
db/db_method.c
db/db_open.c
db/db_overflow.c
db/db_ovfl_vrfy.c
db/db_pr.c
db/db_rec.c
db/db_reclaim.c
db/db_remove.c
db/db_rename.c
db/db_ret.c
db/db_setid.c
db/db_setlsn.c
common/db_shash.c
db/db_sort_multiple.c
db/db_stati.c
db/db_truncate.c
db/db_upg.c
db/db_upg_opd.c
db/db_vrfy.c
db/db_vrfyutil.c
db/partition.c
dbm/dbm.c
dbreg/dbreg.c
dbreg/dbreg_auto.c
dbreg/dbreg_rec.c
dbreg/dbreg_stat.c
dbreg/dbreg_util.c
common/dbt.c
env/env_alloc.c
env/env_config.c
env/env_failchk.c
env/env_file.c
env/env_globals.c
env/env_method.c
env/env_name.c
env/env_open.c
env/env_recover.c
env/env_region.c
env/env_register.c
env/env_sig.c
env/env_stat.c
fileops/fileops_auto.c
fileops/fop_basic.c
fileops/fop_rec.c
fileops/fop_util.c
hash/hash.c
hash/hash_auto.c
hash/hash_conv.c
hash/hash_dup.c
hash/hash_func.c
hash/hash_meta.c
hash/hash_method.c
hash/hash_open.c
hash/hash_page.c
hash/hash_rec.c
hash/hash_reclaim.c
hash/hash_stat.c
hash/hash_upgrade.c
hash/hash_verify.c
hmac/hmac.c
hsearch/hsearch.c
build_windows/libdb.def
lock/lock.c
lock/lock_deadlock.c
lock/lock_failchk.c
lock/lock_id.c
lock/lock_list.c
lock/lock_method.c
lock/lock_region.c
lock/lock_stat.c
lock/lock_timer.c
lock/lock_util.c
log/log.c
log/log_archive.c
log/log_compare.c
log/log_debug.c
log/log_get.c
log/log_method.c
log/log_put.c
log/log_stat.c
common/mkpath.c
mp/mp_alloc.c
mp/mp_bh.c
mp/mp_fget.c
mp/mp_fmethod.c
mp/mp_fopen.c
mp/mp_fput.c
mp/mp_fset.c
mp/mp_method.c
mp/mp_mvcc.c
mp/mp_region.c
mp/mp_register.c
mp/mp_resize.c
mp/mp_stat.c
mp/mp_sync.c
mp/mp_trickle.c
mutex/mut_alloc.c
mutex/mut_failchk.c
mutex/mut_method.c
mutex/mut_region.c
mutex/mut_stat.c
mutex/mut_win32.c
common/openflags.c
os/os_abort.c
os/os_addrinfo.c
os_windows/os_abs.c
os/os_alloc.c
os_windows/os_clock.c
os_windows/os_config.c
os_windows/os_cpu.c
os/os_ctime.c
os_windows/os_dir.c
os_windows/os_errno.c
os_windows/os_fid.c
os_windows/os_flock.c
os_windows/os_fsync.c
os_windows/os_getenv.c
os_windows/os_handle.c
os_windows/os_map.c
os_windows/os_mkdir.c
os_windows/os_open.c
os/os_pid.c
os_windows/os_rename.c
os/os_root.c
os/os_rpath.c
os_windows/os_rw.c
os_windows/os_seek.c
os/os_stack.c
os_windows/os_stat.c
os/os_tmpdir.c
os_windows/os_truncate.c
os/os_uid.c
os_windows/os_unlink.c
os_windows/os_yield.c
qam/qam.c
qam/qam_auto.c
qam/qam_conv.c
qam/qam_files.c
qam/qam_method.c
qam/qam_open.c
qam/qam_rec.c
qam/qam_stat.c
qam/qam_upgrade.c
qam/qam_verify.c
rep/rep_auto.c
rep/rep_backup.c
rep/rep_elect.c
rep/rep_lease.c
rep/rep_log.c
rep/rep_method.c
rep/rep_record.c
rep/rep_region.c
rep/rep_stat.c
rep/rep_util.c
rep/rep_verify.c
repmgr/repmgr_auto.c
repmgr/repmgr_elect.c
repmgr/repmgr_method.c
repmgr/repmgr_msg.c
repmgr/repmgr_net.c
repmgr/repmgr_queue.c
repmgr/repmgr_sel.c
repmgr/repmgr_stat.c
repmgr/repmgr_util.c
repmgr/repmgr_windows.c
sequence/seq_stat.c
sequence/sequence.c
hmac/sha1.c
clib/strsep.c
txn/txn.c
txn/txn_auto.c
txn/txn_chkpt.c
txn/txn_failchk.c
txn/txn_method.c
txn/txn_rec.c
txn/txn_recover.c
txn/txn_region.c
txn/txn_stat.c
txn/txn_util.c
common/os_method.c
common/util_cache.c
common/util_log.c
common/util_sig.c
common/zerofill.c
)
include_directories(${CMAKE_CURRENT_SOURCE_DIR} build_windows dbinc)
target_link_libraries(libdb48 PUBLIC ws2_32.lib)
install(TARGETS libdb48
RUNTIME DESTINATION bin
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
)
if(INSTALL_HEADERS)
file(GLOB HEADERS build_windows/*.h)
install(FILES ${HEADERS} DESTINATION include)
endif()

View File

@@ -0,0 +1,123 @@
diff --git a/dbinc/atomic.h b/dbinc/atomic.h
index 0034dcc..2dd5e03 100644
--- a/dbinc/atomic.h
+++ b/dbinc/atomic.h
@@ -70,7 +70,7 @@ typedef struct {
* These have no memory barriers; the caller must include them when necessary.
*/
#define atomic_read(p) ((p)->value)
-#define atomic_init(p, val) ((p)->value = (val))
+#define bdb_atomic_init(p, val) ((p)->value = (val))
#ifdef HAVE_ATOMIC_SUPPORT
@@ -206,7 +206,7 @@ static inline int __atomic_compare_exchange(
#define atomic_dec(env, p) (--(p)->value)
#define atomic_compare_exchange(env, p, oldval, newval) \
(DB_ASSERT(env, atomic_read(p) == (oldval)), \
- atomic_init(p, (newval)), 1)
+ bdb_atomic_init(p, (newval)), 1)
#else
#define atomic_inc(env, p) __atomic_inc(env, p)
#define atomic_dec(env, p) __atomic_dec(env, p)
diff --git a/mp/mp_fget.c b/mp/mp_fget.c
index 5fdee5a..452ef17 100644
--- a/mp/mp_fget.c
+++ b/mp/mp_fget.c
@@ -617,7 +617,7 @@ alloc: /* Allocate a new buffer header and data space. */
/* Initialize enough so we can call __memp_bhfree. */
alloc_bhp->flags = 0;
- atomic_init(&alloc_bhp->ref, 1);
+ bdb_atomic_init(&alloc_bhp->ref, 1);
#ifdef DIAGNOSTIC
if ((uintptr_t)alloc_bhp->buf & (sizeof(size_t) - 1)) {
__db_errx(env,
@@ -911,7 +911,7 @@ alloc: /* Allocate a new buffer header and data space. */
MVCC_MPROTECT(bhp->buf, mfp->stat.st_pagesize,
PROT_READ);
- atomic_init(&alloc_bhp->ref, 1);
+ bdb_atomic_init(&alloc_bhp->ref, 1);
MUTEX_LOCK(env, alloc_bhp->mtx_buf);
alloc_bhp->priority = bhp->priority;
alloc_bhp->pgno = bhp->pgno;
diff --git a/mp/mp_mvcc.c b/mp/mp_mvcc.c
index 34467d2..b604388 100644
--- a/mp/mp_mvcc.c
+++ b/mp/mp_mvcc.c
@@ -276,7 +276,7 @@ __memp_bh_freeze(dbmp, infop, hp, bhp, need_frozenp)
#else
memcpy(frozen_bhp, bhp, SSZA(BH, buf));
#endif
- atomic_init(&frozen_bhp->ref, 0);
+ bdb_atomic_init(&frozen_bhp->ref, 0);
if (mutex != MUTEX_INVALID)
frozen_bhp->mtx_buf = mutex;
else if ((ret = __mutex_alloc(env, MTX_MPOOL_BH,
@@ -428,7 +428,7 @@ __memp_bh_thaw(dbmp, infop, hp, frozen_bhp, alloc_bhp)
#endif
alloc_bhp->mtx_buf = mutex;
MUTEX_LOCK(env, alloc_bhp->mtx_buf);
- atomic_init(&alloc_bhp->ref, 1);
+ bdb_atomic_init(&alloc_bhp->ref, 1);
F_CLR(alloc_bhp, BH_FROZEN);
}
diff --git a/mp/mp_region.c b/mp/mp_region.c
index e6cece9..e3e3382 100644
--- a/mp/mp_region.c
+++ b/mp/mp_region.c
@@ -224,7 +224,7 @@ __memp_init(env, dbmp, reginfo_off, htab_buckets, max_nreg)
MTX_MPOOL_FILE_BUCKET, 0, &htab[i].mtx_hash)) != 0)
return (ret);
SH_TAILQ_INIT(&htab[i].hash_bucket);
- atomic_init(&htab[i].hash_page_dirty, 0);
+ bdb_atomic_init(&htab[i].hash_page_dirty, 0);
}
/*
@@ -269,7 +269,7 @@ __memp_init(env, dbmp, reginfo_off, htab_buckets, max_nreg)
hp->mtx_hash = (mtx_base == MUTEX_INVALID) ? MUTEX_INVALID :
mtx_base + i;
SH_TAILQ_INIT(&hp->hash_bucket);
- atomic_init(&hp->hash_page_dirty, 0);
+ bdb_atomic_init(&hp->hash_page_dirty, 0);
#ifdef HAVE_STATISTICS
hp->hash_io_wait = 0;
hp->hash_frozen = hp->hash_thawed = hp->hash_frozen_freed = 0;
diff --git a/mutex/mut_method.c b/mutex/mut_method.c
index 2588763..56b6723 100644
--- a/mutex/mut_method.c
+++ b/mutex/mut_method.c
@@ -426,7 +426,7 @@ atomic_compare_exchange(env, v, oldval, newval)
MUTEX_LOCK(env, mtx);
ret = atomic_read(v) == oldval;
if (ret)
- atomic_init(v, newval);
+ bdb_atomic_init(v, newval);
MUTEX_UNLOCK(env, mtx);
return (ret);
diff --git a/mutex/mut_tas.c b/mutex/mut_tas.c
index f3922e0..934a654 100644
--- a/mutex/mut_tas.c
+++ b/mutex/mut_tas.c
@@ -46,7 +46,7 @@ __db_tas_mutex_init(env, mutex, flags)
#ifdef HAVE_SHARED_LATCHES
if (F_ISSET(mutexp, DB_MUTEX_SHARED))
- atomic_init(&mutexp->sharecount, 0);
+ bdb_atomic_init(&mutexp->sharecount, 0);
else
#endif
if (MUTEX_INIT(&mutexp->tas)) {
@@ -486,7 +486,7 @@ __db_tas_mutex_unlock(env, mutex)
F_CLR(mutexp, DB_MUTEX_LOCKED);
/* Flush flag update before zeroing count */
MEMBAR_EXIT();
- atomic_init(&mutexp->sharecount, 0);
+ bdb_atomic_init(&mutexp->sharecount, 0);
} else {
DB_ASSERT(env, sharecount > 0);
MEMBAR_EXIT();

View File

@@ -0,0 +1,23 @@
vcpkg_download_distfile(ARCHIVE
URLS "https://download.oracle.com/berkeley-db/db-4.8.30.NC.zip"
FILENAME "db-4.8.30.NC.zip"
SHA512 59c1d2d5a3551f988ab1dc063900572b67ad087537e0d71760de34601f9ebd4d5c070a49b809bec4a599a62417e9a162683ce0f6442deb1a0dadb80764bf6eab
)
vcpkg_extract_source_archive_ex(
OUT_SOURCE_PATH SOURCE_PATH
ARCHIVE ${ARCHIVE}
PATCHES fix-conflict-macro.patch
)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS_DEBUG -DINSTALL_HEADERS=OFF
)
vcpkg_install_cmake()
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)

8
externals/vcpkg/ports/berkeleydb/vcpkg.json vendored Executable file
View File

@@ -0,0 +1,8 @@
{
"name": "berkeleydb",
"version": "4.8.30",
"port-version": 8,
"description": "BDB - A high-performance embedded database for key/value data.",
"homepage": "https://download.oracle.com/",
"supports": "!(uwp | linux | osx)"
}