2019-09-09 13:40:24 +03:00
|
|
|
/* This is CMake-template for libmdbx's config.h
|
|
|
|
******************************************************************************/
|
|
|
|
|
|
|
|
/* *INDENT-OFF* */
|
2019-09-05 11:57:52 +03:00
|
|
|
/* clang-format off */
|
|
|
|
|
2019-08-31 17:13:02 +03:00
|
|
|
#cmakedefine LTO_ENABLED
|
2023-11-02 16:54:32 +03:00
|
|
|
#cmakedefine ENABLE_MEMCHECK
|
2019-08-31 17:13:02 +03:00
|
|
|
#cmakedefine ENABLE_GPROF
|
|
|
|
#cmakedefine ENABLE_GCOV
|
|
|
|
#cmakedefine ENABLE_ASAN
|
2021-01-20 23:36:13 +03:00
|
|
|
#cmakedefine ENABLE_UBSAN
|
2021-04-30 02:01:22 +03:00
|
|
|
#cmakedefine01 MDBX_FORCE_ASSERTIONS
|
2019-08-31 17:13:02 +03:00
|
|
|
|
2019-09-03 02:24:19 +03:00
|
|
|
/* Common */
|
|
|
|
#cmakedefine01 MDBX_TXN_CHECKOWNER
|
2020-07-22 14:53:15 +03:00
|
|
|
#cmakedefine MDBX_ENV_CHECKPID_AUTO
|
|
|
|
#ifndef MDBX_ENV_CHECKPID_AUTO
|
|
|
|
#cmakedefine01 MDBX_ENV_CHECKPID
|
2019-12-04 23:05:49 +03:00
|
|
|
#endif
|
|
|
|
#cmakedefine MDBX_LOCKING_AUTO
|
|
|
|
#ifndef MDBX_LOCKING_AUTO
|
|
|
|
#cmakedefine MDBX_LOCKING @MDBX_LOCKING@
|
|
|
|
#endif
|
|
|
|
#cmakedefine MDBX_TRUST_RTC_AUTO
|
|
|
|
#ifndef MDBX_TRUST_RTC_AUTO
|
|
|
|
#cmakedefine01 MDBX_TRUST_RTC
|
|
|
|
#endif
|
2022-06-30 21:38:32 +03:00
|
|
|
#cmakedefine01 MDBX_DISABLE_VALIDATION
|
2022-10-10 15:52:58 +03:00
|
|
|
#cmakedefine01 MDBX_AVOID_MSYNC
|
2022-11-10 15:09:42 +03:00
|
|
|
#cmakedefine01 MDBX_ENABLE_REFUND
|
|
|
|
#cmakedefine01 MDBX_ENABLE_MADVISE
|
|
|
|
#cmakedefine01 MDBX_ENABLE_BIGFOOT
|
|
|
|
#cmakedefine01 MDBX_ENABLE_PGOP_STAT
|
|
|
|
#cmakedefine01 MDBX_ENABLE_PROFGC
|
mdbx: переработка инициализации, проверки и импорта dbi-хендлов в транзакциях.
Ранее инициализация в транзакциях структур данных, связанных с
dbi-хендлами и subDb, выполнялась непосредственно при запуске
транзакций. Что в сценариях с большим кол-вом dbi-дексприторов (например
libfpta) порождало заметные накладные расходы, которые расли линейно от
общего кол-ва открытых subDb, а не от реально используемых в транзакции.
При использовании одной-двух сотен хендлов, при старте каждой транзакции
могли копироваться и/или обнуляться десятки килобайт. Теперь этот
недостаток устранен.
Изменена схема инициализации, валидации и импорта хендлов открытых после
старта транзакции:
1) Инициализация теперь выполняется отложенна, а при старте транзации
обнуляется только массив с однобайтовыми статустами dbi-хендлов.
При этом доступнва опция сборки `MDBX_ENABLE_DBI_SPARSE`, при активации
которой используется битовая карты, что снижает объем инициализации
при старте транзакции в 8 раз (CHAR_BIT).
2) Переработана валидация dbi-хендлов на входах API, с уменьшением кол-ва
проверок и ветвлений до теоретического минимума.
3) Переработ импорт dbi-хендов открытых после старта транзакци, теперь
при этом не захватывается мьютекс.
2023-11-05 22:10:29 +03:00
|
|
|
#cmakedefine01 MDBX_ENABLE_DBI_SPARSE
|
2023-11-04 23:45:29 +03:00
|
|
|
#cmakedefine01 MDBX_ENABLE_DBI_LOCKFREE
|
2019-09-03 02:24:19 +03:00
|
|
|
|
|
|
|
/* Windows */
|
2021-04-29 20:09:16 +03:00
|
|
|
#cmakedefine01 MDBX_WITHOUT_MSVC_CRT
|
2019-09-03 02:24:19 +03:00
|
|
|
|
2020-04-15 17:09:37 +03:00
|
|
|
/* MacOS & iOS */
|
2019-09-03 02:24:19 +03:00
|
|
|
#cmakedefine01 MDBX_OSX_SPEED_INSTEADOF_DURABILITY
|
|
|
|
|
|
|
|
/* POSIX */
|
2019-10-06 14:59:53 +03:00
|
|
|
#cmakedefine01 MDBX_DISABLE_GNU_SOURCE
|
2019-09-03 02:24:19 +03:00
|
|
|
#cmakedefine MDBX_USE_OFDLOCKS_AUTO
|
2019-12-04 23:05:49 +03:00
|
|
|
#ifndef MDBX_USE_OFDLOCKS_AUTO
|
|
|
|
#cmakedefine01 MDBX_USE_OFDLOCKS
|
2019-09-03 02:24:19 +03:00
|
|
|
#endif
|
2019-09-05 11:57:52 +03:00
|
|
|
|
|
|
|
/* Build Info */
|
2020-09-28 23:47:37 +03:00
|
|
|
#ifndef MDBX_BUILD_TIMESTAMP
|
2019-09-05 11:57:52 +03:00
|
|
|
#cmakedefine MDBX_BUILD_TIMESTAMP "@MDBX_BUILD_TIMESTAMP@"
|
2020-09-28 23:47:37 +03:00
|
|
|
#endif
|
|
|
|
#ifndef MDBX_BUILD_TARGET
|
2019-09-05 11:57:52 +03:00
|
|
|
#cmakedefine MDBX_BUILD_TARGET "@MDBX_BUILD_TARGET@"
|
2020-09-28 23:47:37 +03:00
|
|
|
#endif
|
|
|
|
#ifndef MDBX_BUILD_TYPE
|
2020-04-15 17:09:37 +03:00
|
|
|
#cmakedefine MDBX_BUILD_TYPE "@MDBX_BUILD_TYPE@"
|
2020-09-28 23:47:37 +03:00
|
|
|
#endif
|
|
|
|
#ifndef MDBX_BUILD_COMPILER
|
2019-09-05 11:57:52 +03:00
|
|
|
#cmakedefine MDBX_BUILD_COMPILER "@MDBX_BUILD_COMPILER@"
|
2020-09-28 23:47:37 +03:00
|
|
|
#endif
|
|
|
|
#ifndef MDBX_BUILD_FLAGS
|
2019-09-05 11:57:52 +03:00
|
|
|
#cmakedefine MDBX_BUILD_FLAGS "@MDBX_BUILD_FLAGS@"
|
2020-09-28 23:47:37 +03:00
|
|
|
#endif
|
2019-09-05 11:57:52 +03:00
|
|
|
#cmakedefine MDBX_BUILD_SOURCERY @MDBX_BUILD_SOURCERY@
|
|
|
|
|
|
|
|
/* *INDENT-ON* */
|
|
|
|
/* clang-format on */
|