86 Commits

Author SHA1 Message Date
Леонид Юрьев (Leonid Yuriev)
3a0b857e1d mdbx-cmake: используем -flto=auto для GCC >= 11.4
При сборке посредством GCC >= 11.4 больше не возникает предупреждений:
  lto-wrapper: warning: using serial compilation of # LTRANS jobs
  lto-wrapper: note: see the ‘-flto’ option documentation for more information

Однако, использование auto-режима не является оптимальным решением, так
как при параллельной сборке посредством make или ninja, каждая уже
запущенная ветвь компиляции породит потоки ещё для каждого ядра ЦПУ.

Таким образом реальная нагрузка может расти квадратично, т.е. чем больше
у вас ядер -- тем хуже и при 96 ядрах может работать 9216 потоков сборки.

Тем не менее, использование `job-server` в CMake пока не возможно, а при
сборке libmdbx не так много работы чтобы чтобы обрушить систему нагрузкой.
2025-01-27 21:30:01 +03:00
Леонид Юрьев (Leonid Yuriev)
9d7495fa09 mdbx-cmake: расслабление условий для использования LTO с CLANG на Linux. 2025-01-27 20:41:44 +03:00
Леонид Юрьев (Leonid Yuriev)
c8f6d90e18 mdbx-cmake: расширение поиска LLVMgold.so в относительных lib-директориях. 2025-01-27 20:32:02 +03:00
Леонид Юрьев (Leonid Yuriev)
56d1dbef45 mdbx: обновление года в ©. 2025-01-15 19:36:07 +03:00
Леонид Юрьев (Leonid Yuriev)
513518ca5e mdbx-cmake: синхронизация утилит между проектами. 2024-12-12 13:06:44 +03:00
Леонид Юрьев (Leonid Yuriev)
f2dc60aa53 mdbx-cmake: новые настройки cmake-format (косметика). 2024-12-12 11:20:34 +03:00
Леонид Юрьев (Leonid Yuriev)
3c4d019d00 mdbx-cmake: явное ракрытие переменных в if-условиях для обхода бага-фичи CMake. 2024-12-11 21:04:00 +03:00
Леонид Юрьев (Leonid Yuriev)
4c5be88038 mdbx-cmake: исправление semver_provide() для случая символических ссылок в путях. 2024-11-28 14:54:55 +03:00
Леонид Юрьев (Leonid Yuriev)
9daff17c82 mdbx: поддержка Semantic Versioning.
Было `MAJOR.MINOR.RELEASE.REVISION`
Теперь `MAJOR.MINOR.PATCH[.TWEAK][-PRERELEASE][+BUILDMETADATA]`

https://semver.org/

 - вместо квартета `MAJOR.MINOR.RELEASE.REVISION`
   триплет c опцинальным четвертым членом `MAJOR.MINOR.PATCH[.TWEAK]`

 - `TWEAK` не входит в тег git, а формируется автоматически и
   соответствует кол-ву коммитов после тега git и опускается если 0.

 - Поле `PRERELEASE` опционально и переносится в версию из тега git.

 - Поле `BUILDMETADATA` опционально, не входит в тег git, а
   добавляется во время сборки если задана опцией `MDBX_BUILD_METADATA`.
2024-11-24 20:46:21 +03:00
Леонид Юрьев (Leonid Yuriev)
a2984c604d mdbx-cmake: переформатирование cmake-скриптов. 2024-11-13 15:05:26 +03:00
Леонид Юрьев (Leonid Yuriev)
ab4bf2d7f0 mdbx-cmake: экспорт/импорт информации о версии в VERSION.json 2024-11-13 15:05:26 +03:00
Леонид Юрьев (Leonid Yuriev)
9b9d6c6d65 mdbx-cmake: очистка условий включения стандартов C и C++. 2024-11-10 20:17:44 +03:00
Леонид Юрьев (Leonid Yuriev)
8571eac81b mdbx-cmake: корректировка пробы OpenMP. 2024-10-28 08:55:37 +03:00
Леонид Юрьев (Leonid Yuriev)
d2b74e4da5 mdbx-cmake: включение стандарта C23. 2024-10-10 06:15:17 +03:00
Леонид Юрьев (Leonid Yuriev)
3de3d425a1 mdbx: изменение лицензии и реструктуризация исходного кода. 2024-06-19 14:18:18 +03:00
Леонид Юрьев (Leonid Yuriev)
5fc3965f5b
mdbx: вливание ветки master в devel. 2024-03-21 01:54:20 +03:00
Леонид Юрьев (Leonid Yuriev)
aea40fb79f
mdbx: выпуск 0.12.10 "СЭМ"
Поддерживающий выпуск с исправлением обнаруженных ошибок и устранением недочетов
в память Героя России гвардии майора Дмитрия Семёнова с позывным "СЭМ".

Значимые исправления и доработки:
---------------------------------

 - Устранение унаследованной от LMDB ошибки приводящей к повреждению БД при использовании `MDBX_DUPFIXED`.

 - Исправление ложной ошибки `MDBX_CORRUPTED (-30796)` в сценарии работы
   в режиме `MDBX_DUPFIXED` и нечетной длинной мульти-значений.

 - Исправление недочета корректировки сопутствующих курсоров при разделении страницы
   по сценарию добавления пустой страницы слева.

 - Доработка `rebalance()` ради уменьшения WAF.

 - Исправление assert-проверки внутри `check_txn()` для случая завершенных транзакций в режиме `MDBX_NO_TLS`.
   Последствий ошибки, кроме срабатывания assert-проверки в отладочных сборках, нет.

 - Устранение ошибки при открытии БД на файловой системе только-для-чтения.

 - Удалены излишне строгие проверки в утилите `mdbx_chk`, которые
   приводили к ложно-позитивным ошибкам при проверке БД после серии
   последних доработок.

Более подробная информация в [ChangeLog](https://libmdbx.dqdkfa.ru/md__change_log.html).

git diff' stat: 19 commits, 57 files changed, 751 insertions(+), 331 deletions(-)
Signed-off-by: Леонид Юрьев (Leonid Yuriev) <leo@yuriev.ru>
2024-03-13 14:57:38 +03:00
Леонид Юрьев (Leonid Yuriev)
0916d24321 mdbx: использование опции ENABLE_MEMCHECK вместо ENABLE_VALGRIND и MDBX_USE_VALGRIND. 2023-11-11 12:29:13 +03:00
Леонид Юрьев (Leonid Yuriev)
4fd21d2f7b mdbx-cmake: незначительное уточнение пробника для std::filesystem. 2023-05-14 01:06:52 +03:00
Leonid Yuriev
6d74b10db1 mdbx: поддержка ASAN (Address Sanitizer) при сборке посредством MSVC. 2023-02-28 00:50:30 +03:00
Леонид Юрьев (Leonid Yuriev)
c01f025bfa mdbx: обновление года на 2023. 2023-01-16 16:32:02 +03:00
Леонид Юрьев (Leonid Yuriev)
623ab21707 mdbx-cmake: совместимость с CMake 3.0.2 для CI на старых системах. 2022-11-07 23:37:27 +03:00
Леонид Юрьев (Leonid Yuriev)
cd616447da mdbx-cmake: set X86_32/X86_64/ARM/MIPS for Windows and Android. 2022-10-22 11:08:06 +03:00
Леонид Юрьев (Leonid Yuriev)
638d71a0c0 mdbx-cmake: sync/update modules. 2022-06-08 16:36:45 +03:00
Леонид Юрьев (Leonid Yuriev)
f6db64bea1 mdbx-cmake: add /bigobj for MSVC. 2022-06-02 20:35:40 +03:00
Леонид Юрьев (Leonid Yuriev)
7260db2e74 mdbx-cmake: sync/refine cmake policy. 2022-06-02 20:35:35 +03:00
Леонид Юрьев (Leonid Yuriev)
cb14ea9e67 mdbx-cmake: explicit error message from probe for no-support of std::filesystem. 2022-05-13 14:05:03 +03:00
Леонид Юрьев (Leonid Yuriev)
42f1abd7e9 mdbx-cmake: fix/refine --allow-multiple-definition as workaround for std::filesystem and LCC < 1.25.23 2022-04-22 23:03:58 +03:00
Леонид Юрьев (Leonid Yuriev)
fb4bd6158f mdbx-cmake: fix extra message space (cosmetics). 2022-04-22 21:35:05 +03:00
Леонид Юрьев (Leonid Yuriev)
a878b47343 mdbx-cmake: refine fetch_version macro for no-git-tags case (sync cmake modules). 2022-04-22 21:32:38 +03:00
Леонид Юрьев (Leonid Yuriev)
7770cae4b5 mdbx-cmake: provide CMAKE_HOST_ARCH and CMAKE_HOST_CAN_RUN_EXECUTABLES_BUILT_FOR_TARGET. 2022-04-22 17:45:28 +03:00
Леонид Юрьев (Leonid Yuriev)
039ebe1f14 mdbx-cmake: rework forming of MDBX_SYSTEM_ARCH identity. 2022-04-22 17:30:11 +03:00
Леонид Юрьев (Leonid Yuriev)
b1101fc33e mdbx-cmake: fix detection of Clang's LTO availability for Android. 2022-04-21 22:11:57 +03:00
Леонид Юрьев (Leonid Yuriev)
51d66494fd mdbx-cmake: add -Wno-lto-type-mismatch to avoid false-positive warnings from GCC < 9.x 2022-04-21 15:40:53 +03:00
Леонид Юрьев (Leonid Yuriev)
5ebcb90620 mdbx-cmake: rework linking detection for std::filesystem. 2022-04-07 21:57:49 +03:00
Леонид Юрьев (Leonid Yuriev)
437cd0d3d7 mdbx-cmake: minor refine version detection of Elbrus LCC compiler. 2022-04-06 12:43:58 +03:00
Леонид Юрьев (Leonid Yuriev)
f054ceeab8 mdbx-cmake: add linking with stdc++fs for LCC < 1.26 2022-04-06 12:43:58 +03:00
Leonid Yuriev
92cb0cc0db mdbx-cmake: forcing /INCREMENTAL:NO while using LTO/Interprocedutal optimization. 2022-03-28 23:57:24 +03:00
Leonid Yuriev
cf32f4cdb3 mdbx-cmake: removing /W3 when adding /W4 to avoid stupid MSVC warnings. 2022-03-28 23:57:24 +03:00
Leonid Yuriev
57978b0f7f mdbx-cmake: add remove_flag and remove_compile_flag macros. 2022-03-28 23:57:24 +03:00
Леонид Юрьев (Leonid Yuriev)
ec0379ad93 mdbx-cmake: add missed "--match=v[0-9]*" to git describe. 2022-03-28 09:16:15 +03:00
Леонид Юрьев (Leonid Yuriev)
18290489b2 mdbx-cmake: don't use -fno-semantic-interposition for CLANG. 2022-02-02 19:22:50 +03:00
Леонид Юрьев (Leonid Yuriev)
ac02490c97 mdbx-cmake: sync the compiler.cmake module with other projects. 2022-02-02 16:50:49 +03:00
Leonid Yuriev
79e1cc3bbc mdbx: add workaround for old MSVC and/or old Windows SDK.
Resolves https://github.com/erthink/libmdbx/issues/265.

Change-Id: I295b5d9d5ecd670ccf258791bf87379a3ca17f21
2022-02-01 13:28:59 +03:00
Leonid Yuriev
207124e7fb mdbx: use -fno-semantic-interposition. 2022-01-25 18:19:56 +03:00
Leonid Yuriev
c588af6aca mdbx: update Copyright year.
Change-Id: Ib3e4c0ac94882c4b2a1e167dd98e6e26dbdf48a4
2022-01-17 11:06:14 +03:00
Leonid Yuriev
489f7a3136 mdbx-cmake: add workaround for LTO on Android (https://reviews.llvm.org/D79919). 2022-01-05 17:47:45 +03:00
Леонид Юрьев (Leonid Yuriev)
3e3560753b mdbx-cmake: minor fix detecting Elbrus/LCC. 2021-12-09 15:52:12 +03:00
Leonid Yuriev
5d4d02617d mdbx-cmake: fix search GCC tools for LTO. 2021-08-05 02:26:36 +03:00
Leonid Yuriev
327b283136 mdbx-cmake: fix/reorder dirs list for search CLANG tools for LTO. 2021-08-05 02:26:36 +03:00