mirror of
https://github.com/isar/libmdbx.git
synced 2025-08-19 19:39:26 +08:00
mdbx: enabling older Linux kernels starting from 3.16
This commit is contained in:
@@ -208,10 +208,19 @@ __cold int mdbx_env_create(MDBX_env **penv) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if defined(__linux__) || defined(__gnu_linux__)
|
#if defined(__linux__) || defined(__gnu_linux__)
|
||||||
if (unlikely(globals.linux_kernel_version < 0x04000000)) {
|
if (unlikely(globals.linux_kernel_version < 0x03100000)) {
|
||||||
/* 2022-09-01: Прошло уже более двух лет после окончания какой-либо
|
/* 2025-08-05: Ядро 3.16 выпущено 11 лет назад и было самым долго поддерживаемым из 3.x до июля 2020.
|
||||||
* поддержки самого "долгоиграющего" ядра 3.16.85 ветки 3.x */
|
* Три года назад (в 2022) здесь была заблокирована работа на ядрах меньше 4.x, как устаревших и для которых
|
||||||
ERROR("too old linux kernel %u.%u.%u.%u, the >= 4.0.0 is required", globals.linux_kernel_version >> 24,
|
* крайне затруднительно обеспечить какое-либо тестирование. Теперь же я решил изменить решение и разрешить
|
||||||
|
* работу на старых ядрах начиная с 3.16, логика тут такая:
|
||||||
|
* - поведение старых ядер уже точно не будет меняться,
|
||||||
|
* а в текущем коде libmdbx есть всё необходимое для работы начиная с 3.16;
|
||||||
|
* - есть широко-используемые проекты (Isar), которым требуется поддержка старых ядер;
|
||||||
|
* - сейчас тестирование для 4.x также затруднено, как и для 3.16, уже не приносит какого-либо облегчения
|
||||||
|
* с тестированием и мне приходится полагаться на гарантии совместимости API ядра и glibc/musl;
|
||||||
|
* - использование возможностей из новых ядер всё равно требует проверок/ветвлений;
|
||||||
|
* = поэтому сейчас нет причин отказываться от работы на 3.16 поддерживая ядра 4.0 */
|
||||||
|
ERROR("too old linux kernel %u.%u.%u.%u, the >= 3.16 is required", globals.linux_kernel_version >> 24,
|
||||||
(globals.linux_kernel_version >> 16) & 255, (globals.linux_kernel_version >> 8) & 255,
|
(globals.linux_kernel_version >> 16) & 255, (globals.linux_kernel_version >> 8) & 255,
|
||||||
globals.linux_kernel_version & 255);
|
globals.linux_kernel_version & 255);
|
||||||
return LOG_IFERR(MDBX_INCOMPATIBLE);
|
return LOG_IFERR(MDBX_INCOMPATIBLE);
|
||||||
|
Reference in New Issue
Block a user