Skip to content

Commit 199ea99

Browse files
committed
+
1 parent 03c0370 commit 199ea99

File tree

15 files changed

+427
-508
lines changed

15 files changed

+427
-508
lines changed

CMakeLists.txt

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -684,6 +684,24 @@ if(MDBX_BUILD_SHARED_LIBRARY)
684684
else()
685685
set_property(TARGET mdbx PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
686686
endif()
687+
else()
688+
include(CheckLinkerFlag)
689+
check_linker_flag(C "LINKER:-z,combreloc" HAVE_LINKER_COMBRELOC)
690+
check_linker_flag(C "LINKER:--gc-sections" HAVE_LINKER_GC_SECTIONS)
691+
check_linker_flag(C "LINKER:-z,relro" HAVE_LINKER_Z_RELRO)
692+
check_linker_flag(C "LINKER:-O1" HAVE_LINKER_O1)
693+
if(HAVE_LINKER_COMBRELOC)
694+
target_link_options(mdbx PRIVATE "LINKER:-z,combreloc")
695+
endif()
696+
if(HAVE_LINKER_GC_SECTIONS)
697+
target_link_options(mdbx PRIVATE "LINKER:--gc-sections")
698+
endif()
699+
if(HAVE_LINKER_Z_RELRO)
700+
target_link_options(mdbx PRIVATE "LINKER:-z,relro")
701+
endif()
702+
if(HAVE_LINKER_O1)
703+
target_link_options(mdbx PRIVATE "LINKER:-O1")
704+
endif()
687705
endif()
688706
if(CC_HAS_VISIBILITY AND (LTO_ENABLED OR INTERPROCEDURAL_OPTIMIZATION))
689707
set_target_properties(mdbx PROPERTIES LINK_FLAGS "-fvisibility=hidden")

GNUmakefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -348,11 +348,11 @@ mdbx-static.o: config-gnumake.h mdbx.c mdbx.h $(lastword $(MAKEFILE_LIST)) LICEN
348348
@echo ' CC $@'
349349
$(QUIET)$(CC) $(CFLAGS) $(MDBX_BUILD_OPTIONS) '-DMDBX_CONFIG_H="config-gnumake.h"' -ULIBMDBX_EXPORTS -c mdbx.c -o $@
350350

351-
mdbx++-dylib.o: config-gnumake.h mdbx.c++ mdbx.h mdbx.h++ $(lastword $(MAKEFILE_LIST)) LICENSE NOTICE COPYRIGHT
351+
mdbx++-dylib.o: config-gnumake.h mdbx.c++ $(HEADERS) $(lastword $(MAKEFILE_LIST)) LICENSE NOTICE COPYRIGHT
352352
@echo ' CC $@'
353353
$(QUIET)$(CXX) $(CXXFLAGS) $(MDBX_BUILD_OPTIONS) '-DMDBX_CONFIG_H="config-gnumake.h"' -DLIBMDBX_EXPORTS=1 -c mdbx.c++ -o $@
354354

355-
mdbx++-static.o: config-gnumake.h mdbx.c++ mdbx.h mdbx.h++ $(lastword $(MAKEFILE_LIST)) LICENSE NOTICE COPYRIGHT
355+
mdbx++-static.o: config-gnumake.h mdbx.c++ $(HEADERS) $(lastword $(MAKEFILE_LIST)) LICENSE NOTICE COPYRIGHT
356356
@echo ' CC $@'
357357
$(QUIET)$(CXX) $(CXXFLAGS) $(MDBX_BUILD_OPTIONS) '-DMDBX_CONFIG_H="config-gnumake.h"' -ULIBMDBX_EXPORTS -c mdbx.c++ -o $@
358358

VERSION.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{ "git_describe": "v0.14.1-256-g6e4093ad", "git_timestamp": "2026-01-07T15:15:51+03:00", "git_tree": "62e44b0432d3caeb13be585a6e41c2243e35fcaf", "git_commit": "6e4093ad3749c0d46f3585ef38c3a7260e5b2dd8", "semver": "0.14.1.256" }
1+
{ "git_describe": "v0.14.1-264-g969bcd96", "git_timestamp": "2026-01-09T16:54:33+03:00", "git_tree": "f7ef345256fff61b5ed5f9b85768711e47f1e173", "git_commit": "969bcd969758df849eb4453b2d022bca545adf8f", "semver": "0.14.1.264" }

cmake/compiler.cmake

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -968,9 +968,6 @@ macro(setup_compile_flags)
968968

969969
if(CMAKE_COMPILER_IS_GNUCC AND LTO_ENABLED)
970970
add_compile_flags("C;CXX" ${GCC_LTO_CFLAGS})
971-
set(EXE_LINKER_FLAGS "${EXE_LINKER_FLAGS} ${GCC_LTO_CFLAGS} -fverbose-asm -fwhole-program")
972-
set(SHARED_LINKER_FLAGS "${SHARED_LINKER_FLAGS} ${GCC_LTO_CFLAGS} -fverbose-asm")
973-
set(MODULE_LINKER_FLAGS "${MODULE_LINKER_FLAGS} ${GCC_LTO_CFLAGS} -fverbose-asm")
974971
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5)
975972
# Pass the same optimization flags to the linker
976973
set(compile_flags "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE_UPPERCASE}}")

mdbx.c

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
#define xMDBX_ALLOY 1 /* alloyed build */
66

7-
#define MDBX_BUILD_SOURCERY 3d0786aca27f270572b5c0bfe28f74832e60f52ff9ca5510d3449b4e443d594b_v0_14_1_256_g6e4093ad
7+
#define MDBX_BUILD_SOURCERY d576188875dd0d162f204a2362504e7e6ec4c3e9bea82b719ae9c6c666b29d47_v0_14_1_264_g969bcd96
88

99
#define LIBMDBX_INTERNALS
1010
#define MDBX_DEPRECATED
@@ -1214,24 +1214,7 @@ typedef struct osal_mmap {
12141214

12151215
#define MDBX_HAVE_PWRITEV 0
12161216

1217-
MDBX_INTERNAL int osal_ntstatus2errcode(NTSTATUS status);
1218-
1219-
static inline int osal_waitstatus2errcode(DWORD result) {
1220-
switch (result) {
1221-
case WAIT_OBJECT_0:
1222-
return MDBX_SUCCESS;
1223-
case WAIT_FAILED:
1224-
return (int)GetLastError();
1225-
case WAIT_ABANDONED:
1226-
return ERROR_ABANDONED_WAIT_0;
1227-
case WAIT_IO_COMPLETION:
1228-
return ERROR_USER_APC;
1229-
case WAIT_TIMEOUT:
1230-
return ERROR_TIMEOUT;
1231-
default:
1232-
return osal_ntstatus2errcode(result);
1233-
}
1234-
}
1217+
MDBX_INTERNAL int osal_waitstatus2errcode(DWORD result);
12351218

12361219
#elif defined(__ANDROID_API__)
12371220

@@ -28991,7 +28974,7 @@ __hot struct node_search_result node_search(MDBX_cursor *mc, const MDBX_val *key
2899128974
#endif
2899228975

2899328976
/* Map a result from an NTAPI call to WIN32 error code. */
28994-
MDBX_INTERNAL int osal_ntstatus2errcode(NTSTATUS status) {
28977+
static int osal_ntstatus2errcode(NTSTATUS status) {
2899528978
DWORD dummy;
2899628979
OVERLAPPED ov;
2899728980
memset(&ov, 0, sizeof(ov));
@@ -29001,6 +28984,23 @@ MDBX_INTERNAL int osal_ntstatus2errcode(NTSTATUS status) {
2900128984
return GetOverlappedResult(nullptr, &ov, &dummy, FALSE) ? MDBX_SUCCESS : (int)GetLastError();
2900228985
}
2900328986

28987+
MDBX_INTERNAL int osal_waitstatus2errcode(DWORD result) {
28988+
switch (result) {
28989+
case WAIT_OBJECT_0:
28990+
return MDBX_SUCCESS;
28991+
case WAIT_FAILED:
28992+
return (int)GetLastError();
28993+
case WAIT_ABANDONED:
28994+
return ERROR_ABANDONED_WAIT_0;
28995+
case WAIT_IO_COMPLETION:
28996+
return ERROR_USER_APC;
28997+
case WAIT_TIMEOUT:
28998+
return ERROR_TIMEOUT;
28999+
default:
29000+
return osal_ntstatus2errcode(result);
29001+
}
29002+
}
29003+
2900429004
/* We use native NT APIs to setup the memory map, so that we can
2900529005
* let the DB file grow incrementally instead of always preallocating
2900629006
* the full size. These APIs are defined in <wdm.h> and <ntifs.h>
@@ -40428,10 +40428,10 @@ __dll_export
4042840428
0,
4042940429
14,
4043040430
1,
40431-
256,
40431+
264,
4043240432
"", /* pre-release suffix of SemVer
40433-
0.14.1.256 */
40434-
{"2026-01-07T15:15:51+03:00", "62e44b0432d3caeb13be585a6e41c2243e35fcaf", "6e4093ad3749c0d46f3585ef38c3a7260e5b2dd8", "v0.14.1-256-g6e4093ad"},
40433+
0.14.1.264 */
40434+
{"2026-01-09T16:54:33+03:00", "f7ef345256fff61b5ed5f9b85768711e47f1e173", "969bcd969758df849eb4453b2d022bca545adf8f", "v0.14.1-264-g969bcd96"},
4043540435
sourcery};
4043640436

4043740437
__dll_export

mdbx.c++

Lines changed: 6 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
/// \author Леонид Юрьев aka Leonid Yuriev <leo@yuriev.ru> \date 2015-2026
33
/* clang-format off */
44

5-
#define MDBX_BUILD_SOURCERY 3d0786aca27f270572b5c0bfe28f74832e60f52ff9ca5510d3449b4e443d594b_v0_14_1_256_g6e4093ad
5+
#define MDBX_BUILD_SOURCERY d576188875dd0d162f204a2362504e7e6ec4c3e9bea82b719ae9c6c666b29d47_v0_14_1_264_g969bcd96
66

77
#define LIBMDBX_INTERNALS
88
#define MDBX_DEPRECATED
@@ -1212,24 +1212,7 @@ typedef struct osal_mmap {
12121212

12131213
#define MDBX_HAVE_PWRITEV 0
12141214

1215-
MDBX_INTERNAL int osal_ntstatus2errcode(NTSTATUS status);
1216-
1217-
static inline int osal_waitstatus2errcode(DWORD result) {
1218-
switch (result) {
1219-
case WAIT_OBJECT_0:
1220-
return MDBX_SUCCESS;
1221-
case WAIT_FAILED:
1222-
return (int)GetLastError();
1223-
case WAIT_ABANDONED:
1224-
return ERROR_ABANDONED_WAIT_0;
1225-
case WAIT_IO_COMPLETION:
1226-
return ERROR_USER_APC;
1227-
case WAIT_TIMEOUT:
1228-
return ERROR_TIMEOUT;
1229-
default:
1230-
return osal_ntstatus2errcode(result);
1231-
}
1232-
}
1215+
MDBX_INTERNAL int osal_waitstatus2errcode(DWORD result);
12331216

12341217
#elif defined(__ANDROID_API__)
12351218

@@ -8310,11 +8293,11 @@ bool from_base64::is_erroneous() const noexcept {
83108293
#pragma warning(disable : 4251)
83118294
#endif /* MSVC */
83128295

8313-
MDBX_INSTALL_API_TEMPLATE(LIBMDBX_API_TYPE, buffer<legacy_allocator>);
8296+
MDBX_INSTALL_API_TEMPLATE(LIBMDBX_API_TYPE, buffer<legacy_allocator, default_capacity_policy>);
83148297

8315-
#if defined(__cpp_lib_memory_resource) && __cpp_lib_memory_resource >= 201603L && _GLIBCXX_USE_CXX11_ABI
8316-
MDBX_INSTALL_API_TEMPLATE(LIBMDBX_API_TYPE, buffer<polymorphic_allocator>);
8317-
#endif /* __cpp_lib_memory_resource >= 201603L */
8298+
#if MDBX_CXX_HAS_POLYMORPHIC_ALLOCATOR
8299+
MDBX_INSTALL_API_TEMPLATE(LIBMDBX_API_TYPE, buffer<polymorphic_allocator, default_capacity_policy>);
8300+
#endif /* MDBX_CXX_HAS_POLYMORPHIC_ALLOCATOR */
83188301

83198302
#if defined(_MSC_VER)
83208303
#pragma warning(pop)

mdbx.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,12 @@ typedef mode_t mdbx_mode_t;
191191
#pragma warning(pop)
192192
#endif
193193

194+
#define MDBX_AMALGAMATED_SOURCE 1
195+
// > dist-cutoff-begin
196+
#undef MDBX_AMALGAMATED_SOURCE
197+
#define MDBX_AMALGAMATED_SOURCE 0
198+
// < dist-cutoff-end
199+
194200
/** end of c_api @}
195201
*
196202
* \defgroup api_macros Common Macros
@@ -368,7 +374,7 @@ typedef mode_t mdbx_mode_t;
368374
#else
369375
#define __dll_export
370376
#endif
371-
#elif defined(__GNUC__) || __has_attribute(__visibility__)
377+
#elif defined(__GNUC__) || defined(__clang__) || __has_attribute(__visibility__)
372378
#define __dll_export __attribute__((__visibility__("default")))
373379
#else
374380
#define __dll_export

0 commit comments

Comments
 (0)