Skip to content

Commit a5ad8ec

Browse files
env.Stat fix (#15)
1 parent 6854625 commit a5ad8ec

17 files changed

Lines changed: 3935 additions & 2452 deletions

mdbx/dist/CMakeLists.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -443,7 +443,7 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin" OR IOS)
443443
endif()
444444
if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
445445
if(MDBX_NTDLL_EXTRA_IMPLIB)
446-
add_mdbx_option(MDBX_AVOID_CRT "Avoid dependence from MSVC CRT and use ntdll.dll instead" OFF)
446+
add_mdbx_option(MDBX_WITHOUT_MSVC_CRT "Avoid dependence from MSVC CRT and use ntdll.dll instead" OFF)
447447
endif()
448448
add_mdbx_option(MDBX_CONFIG_MANUAL_TLS_CALLBACK
449449
"Provide mdbx_dll_handler() for manual initialization" OFF)
@@ -478,7 +478,7 @@ if(CMAKE_CXX_COMPILER_LOADED AND MDBX_CXX_STANDARD GREATER_EQUAL 11 AND MDBX_CXX
478478
if(NOT MDBX_AMALGAMATED_SOURCE)
479479
option(MDBX_ENABLE_TESTS "Build MDBX tests" ${BUILD_TESTING})
480480
endif()
481-
if(NOT MDBX_AVOID_CRT
481+
if(NOT MDBX_WITHOUT_MSVC_CRT
482482
AND NOT (CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8)
483483
AND NOT (CMAKE_COMPILER_IS_CLANG AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4)
484484
AND NOT (MSVC AND MSVC_VERSION LESS 1900))
@@ -562,7 +562,7 @@ macro(libmdbx_setup_libs TARGET MODE)
562562
target_link_libraries(${TARGET} ${MODE} Threads::Threads)
563563
if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
564564
target_link_libraries(${TARGET} ${MODE} ntdll.lib)
565-
if(MDBX_NTDLL_EXTRA_IMPLIB AND MDBX_AVOID_CRT)
565+
if(MDBX_NTDLL_EXTRA_IMPLIB AND MDBX_WITHOUT_MSVC_CRT)
566566
target_link_libraries(${TARGET} ${MODE} ntdll_extra)
567567
endif()
568568
elseif(${CMAKE_SYSTEM_NAME} STREQUAL "SunOS" OR ${CMAKE_SYSTEM_NAME} STREQUAL "Solaris")
@@ -601,7 +601,7 @@ if(MDBX_BUILD_SHARED_LIBRARY)
601601
target_setup_options(mdbx)
602602
libmdbx_setup_libs(mdbx PRIVATE)
603603
if(MSVC)
604-
if(MDBX_NTDLL_EXTRA_IMPLIB AND MDBX_AVOID_CRT)
604+
if(MDBX_NTDLL_EXTRA_IMPLIB AND MDBX_WITHOUT_MSVC_CRT)
605605
set_property(TARGET mdbx PROPERTY LINKER_FLAGS "/NODEFAULTLIB")
606606
else()
607607
set_property(TARGET mdbx PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")

mdbx/dist/ChangeLog.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,12 @@ New features:
3232
- [Ruby bindings](https://rubygems.org/gems/mdbx/) is available now by [Mahlon E. Smith](https://github.com/mahlonsmith).
3333
- Added `MDBX_ENABLE_MADVISE` build option which controls the use of POSIX `madvise()` hints and friends.
3434
- The internal node sizes were refined, resulting in a reduction in large/overflow pages in some use cases and a slight increase in limits for a keys size.
35+
- Support `make options` to list available build options.
36+
- Support `make help` to list available make targets.
37+
38+
Backward compatibility break:
39+
40+
- The `MDBX_AVOID_CRT` build option was renamed to `MDBX_WITHOUT_MSVC_CRT`.
3541

3642
Fixes:
3743

@@ -88,7 +94,7 @@ New features:
8894
Fixes:
8995

9096
- Fixed missing cleanup (null assigned) in the C++ commit/abort (https://github.com/erthink/libmdbx/pull/143).
91-
- Fixed `mdbx_realloc()` for case of nullptr and `MDBX_AVOID_CRT=ON` for Windows.
97+
- Fixed `mdbx_realloc()` for case of nullptr and `MDBX_WITHOUT_MSVC_CRT=ON` for Windows.
9298
- Fixed the possibility to use invalid and renewed (closed & re-opened, dropped & re-created) DBI-handles (https://github.com/erthink/libmdbx/issues/146).
9399
- Fixed 4-byte aligned access to 64-bit integers, including access to the `bootid` meta-page's field (https://github.com/erthink/libmdbx/issues/153).
94100
- Fixed minor/potential memory leak during page flushing and unspilling.
@@ -245,7 +251,7 @@ Deprecated functions and flags:
245251
- Fix missing comma in array of error messages.
246252
- Fix div-by-zero while copy-with-compaction for non-resizable environments.
247253
- Fixes & enhancements for custom-comparators.
248-
- Fix `MDBX_AVOID_CRT` option and missing `ntdll.def`.
254+
- Fix `MDBX_WITHOUT_MSVC_CRT` option and missing `ntdll.def`.
249255
- Fix `mdbx_env_close()` to work correctly called concurrently from several threads.
250256
- Fix null-deref in an ASAN-enabled builds while opening the environment with error and/or read-only.
251257
- Fix AddressSanitizer errors after closing the environment.

mdbx/dist/GNUmakefile

Lines changed: 113 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,11 @@
66
#
77
################################################################################
88
#
9-
# Preprocessor macros (for MDBX_OPTIONS) of interest.
9+
# Use `make options` to list the available libmdbx build options.
1010
#
1111
# Note that the defaults should already be correct for most platforms;
1212
# you should not need to change any of these. Read their descriptions
1313
# in README and source code (see src/options.h) if you do.
14-
# There may be other macros of interest.
1514
#
1615

1716
SHELL := env bash
@@ -30,8 +29,8 @@ INSTALL ?= install
3029
CC ?= gcc
3130
CFLAGS_EXTRA ?=
3231
LD ?= ld
33-
MDBX_OPTIONS ?= -DNDEBUG=1
34-
CFLAGS ?= -O2 -g -Wall -Werror -Wextra -Wpedantic -ffunction-sections -fPIC -fvisibility=hidden -std=gnu11 -pthread -Wno-error=attributes $(CFLAGS_EXTRA)
32+
MDBX_BUILD_OPTIONS ?= -DNDEBUG=1
33+
CFLAGS ?= -std=gnu11 -O2 -g -Wall -Werror -Wextra -Wpedantic -ffunction-sections -fPIC -fvisibility=hidden -pthread -Wno-error=attributes $(CFLAGS_EXTRA)
3534
# -Wno-tautological-compare
3635
CXX ?= g++
3736
# Choosing C++ standard with deferred simple variable expansion trick
@@ -55,63 +54,146 @@ define uname2sosuffix
5554
esac
5655
endef
5756
SO_SUFFIX := $(shell $(uname2sosuffix))
58-
5957
HEADERS := mdbx.h mdbx.h++
6058
LIBRARIES := libmdbx.a libmdbx.$(SO_SUFFIX)
6159
TOOLS := mdbx_stat mdbx_copy mdbx_dump mdbx_load mdbx_chk mdbx_drop
6260
MANPAGES := mdbx_stat.1 mdbx_copy.1 mdbx_dump.1 mdbx_load.1 mdbx_chk.1 mdbx_drop.1
6361

64-
.PHONY: mdbx all install install-strip install-no-strip clean
62+
.PHONY: all help options lib tools clean install uninstall
63+
.PHONY: install-strip install-no-strip strip libmdbx mdbx show-options
64+
65+
ifeq ("$(origin V)", "command line")
66+
MDBX_BUILD_VERBOSE := $(V)
67+
endif
68+
ifndef MDBX_BUILD_VERBOSE
69+
MDBX_BUILD_VERBOSE := 0
70+
endif
6571

66-
all: $(LIBRARIES) $(TOOLS)
72+
ifeq ($(MDBX_BUILD_VERBOSE),1)
73+
QUIET :=
74+
HUSH :=
75+
$(info ## TIP: Use `make V=0` for quiet.)
76+
else
77+
QUIET := @
78+
HUSH := >/dev/null
79+
$(info ## TIP: Use `make V=1` for verbose.)
80+
endif
6781

68-
mdbx: libmdbx.a libmdbx.$(SO_SUFFIX)
82+
all: show-options $(LIBRARIES) $(TOOLS)
83+
84+
help:
85+
@echo " make all - build libraries and tools"
86+
@echo " make help - print this help"
87+
@echo " make options - list build options"
88+
@echo " make lib - build libraries"
89+
@echo " make tools - built tools"
90+
@echo " make clean "
91+
@echo " make install "
92+
@echo " make uninstall "
93+
@echo ""
94+
@echo " make strip - strip debug symbols from binaries"
95+
@echo " make install-no-strip - install explicitly without strip"
96+
@echo " make install-strip - install explicitly with strip"
97+
@echo ""
98+
@echo " make bench - run ioarena-benchmark"
99+
@echo " make bench-couple - run ioarena-benchmark for mdbx and lmdb"
100+
@echo " make bench-triplet - run ioarena-benchmark for mdbx, lmdb, sqlite3"
101+
@echo " make bench-quartet - run ioarena-benchmark for mdbx, lmdb, rocksdb, wiredtiger"
102+
@echo " make bench-clean - remove temp database(s) after benchmark"
103+
104+
show-options:
105+
@echo " MDBX_BUILD_OPTIONS =$(MDBX_BUILD_OPTIONS)"
106+
@echo '## TIP: Use `make options` to listing available build options.'
107+
@echo " CFLAGS =$(CFLAGS)"
108+
@echo " CXXFLAGS =$(CXXFLAGS)"
109+
@echo " LDFLAGS =$(LDFLAGS) $(LIBS) $(EXE_LDFLAGS)"
110+
@echo '## TIP: Use `make help` to listing available targets.'
111+
112+
options:
113+
@echo " INSTALL =$(INSTALL)"
114+
@echo " DESTDIR =$(DESTDIR)"
115+
@echo " prefix =$(prefix)"
116+
@echo " mandir =$(mandir)"
117+
@echo " suffix =$(suffix)"
118+
@echo ""
119+
@echo " CC =$(CC)"
120+
@echo " CFLAGS_EXTRA =$(CFLAGS_EXTRA)"
121+
@echo " CFLAGS =$(CFLAGS)"
122+
@echo " CXX =$(CXX)"
123+
@echo " CXXSTD =$(CXXSTD)"
124+
@echo " CXXFLAGS =$(CXXFLAGS)"
125+
@echo ""
126+
@echo " LD =$(LD)"
127+
@echo " LDFLAGS =$(LDFLAGS)"
128+
@echo " EXE_LDFLAGS =$(EXE_LDFLAGS)"
129+
@echo " LIBS =$(LIBS)"
130+
@echo ""
131+
@echo " MDBX_BUILD_OPTIONS =$(MDBX_BUILD_OPTIONS)"
132+
@echo ""
133+
@echo "## Assortment items for MDBX_BUILD_OPTIONS:"
134+
@echo "## Note that the defaults should already be correct for most platforms;"
135+
@echo "## you should not need to change any of these. Read their descriptions"
136+
@echo "## in README and source code (see mdbx.c) if you do."
137+
@grep -h '#ifndef MDBX_' mdbx.c | grep -v BUILD | uniq | sed 's/#ifndef / /'
138+
139+
lib libmdbx mdbx: libmdbx.a libmdbx.$(SO_SUFFIX)
69140

70141
tools: $(TOOLS)
71142

72143
strip: all
73-
strip libmdbx.$(SO_SUFFIX) $(TOOLS)
144+
@echo ' STRIP libmdbx.$(SO_SUFFIX) $(TOOLS)'
145+
$(TRACE )strip libmdbx.$(SO_SUFFIX) $(TOOLS)
74146

75147
clean:
76-
rm -rf $(TOOLS) mdbx_test @* *.[ao] *.[ls]o *.$(SO_SUFFIX) *.dSYM *~ tmp.db/* \
148+
@echo ' REMOVE ...'
149+
$(QUIET)rm -rf $(TOOLS) mdbx_test @* *.[ao] *.[ls]o *.$(SO_SUFFIX) *.dSYM *~ tmp.db/* \
77150
*.gcov *.log *.err src/*.o test/*.o mdbx_example dist \
78151
config.h src/config.h src/version.c *.tar*
79152

80153
libmdbx.a: mdbx-static.o mdbx++-static.o
81-
$(AR) rs $@ $?
154+
@echo ' AR $@'
155+
$(QUIET)$(AR) rcs $@ $? $(HUSH)
82156

83157
libmdbx.$(SO_SUFFIX): mdbx-dylib.o mdbx++-dylib.o
84-
$(CXX) $(CXXFLAGS) $^ -pthread -shared $(LDFLAGS) $(LIBS) -o $@
158+
@echo ' LD $@'
159+
$(QUIET)$(CXX) $(CXXFLAGS) $^ -pthread -shared $(LDFLAGS) $(LIBS) -o $@
85160

86161

87162
################################################################################
88163
# Amalgamated source code, i.e. distributed after `make dist`
89164
MAN_SRCDIR := man1/
90165

91166
config.h: mdbx.c $(lastword $(MAKEFILE_LIST))
92-
(echo '#define MDBX_BUILD_TIMESTAMP "$(shell date +%Y-%m-%dT%H:%M:%S%z)"' \
167+
@echo ' MAKE $@'
168+
$(QUIET)(echo '#define MDBX_BUILD_TIMESTAMP "$(shell date +%Y-%m-%dT%H:%M:%S%z)"' \
93169
&& echo '#define MDBX_BUILD_FLAGS "$(CXXSTD) $(CFLAGS) $(LDFLAGS) $(LIBS)"' \
94170
&& echo '#define MDBX_BUILD_COMPILER "$(shell (LC_ALL=C $(CC) --version || echo 'Please use GCC or CLANG compatible compiler') | head -1)"' \
95171
&& echo '#define MDBX_BUILD_TARGET "$(shell set -o pipefail; (LC_ALL=C $(CC) -v 2>&1 | grep -i '^Target:' | cut -d ' ' -f 2- || (LC_ALL=C $(CC) --version | grep -qi e2k && echo E2K) || echo 'Please use GCC or CLANG compatible compiler') | head -1)"' \
96172
) > $@
97173

98174
mdbx-dylib.o: config.h mdbx.c mdbx.h $(lastword $(MAKEFILE_LIST))
99-
$(CC) $(CFLAGS) $(MDBX_OPTIONS) '-DMDBX_CONFIG_H="config.h"' -DLIBMDBX_EXPORTS=1 -c mdbx.c -o $@
175+
@echo ' CC $@'
176+
$(QUIET)$(CC) $(CFLAGS) $(MDBX_BUILD_OPTIONS) '-DMDBX_CONFIG_H="config.h"' -DLIBMDBX_EXPORTS=1 -c mdbx.c -o $@
100177

101178
mdbx-static.o: config.h mdbx.c mdbx.h $(lastword $(MAKEFILE_LIST))
102-
$(CC) $(CFLAGS) $(MDBX_OPTIONS) '-DMDBX_CONFIG_H="config.h"' -ULIBMDBX_EXPORTS -c mdbx.c -o $@
179+
@echo ' CC $@'
180+
$(QUIET)$(CC) $(CFLAGS) $(MDBX_BUILD_OPTIONS) '-DMDBX_CONFIG_H="config.h"' -ULIBMDBX_EXPORTS -c mdbx.c -o $@
103181

104182
mdbx++-dylib.o: config.h mdbx.c++ mdbx.h mdbx.h++ $(lastword $(MAKEFILE_LIST))
105-
$(CXX) $(CXXFLAGS) $(MDBX_OPTIONS) '-DMDBX_CONFIG_H="config.h"' -DLIBMDBX_EXPORTS=1 -c mdbx.c++ -o $@
183+
@echo ' CC $@'
184+
$(QUIET)$(CXX) $(CXXFLAGS) $(MDBX_BUILD_OPTIONS) '-DMDBX_CONFIG_H="config.h"' -DLIBMDBX_EXPORTS=1 -c mdbx.c++ -o $@
106185

107186
mdbx++-static.o: config.h mdbx.c++ mdbx.h mdbx.h++ $(lastword $(MAKEFILE_LIST))
108-
$(CXX) $(CXXFLAGS) $(MDBX_OPTIONS) '-DMDBX_CONFIG_H="config.h"' -ULIBMDBX_EXPORTS -c mdbx.c++ -o $@
187+
@echo ' CC $@'
188+
$(QUIET)$(CXX) $(CXXFLAGS) $(MDBX_BUILD_OPTIONS) '-DMDBX_CONFIG_H="config.h"' -ULIBMDBX_EXPORTS -c mdbx.c++ -o $@
109189

110190
mdbx_%: mdbx_%.c libmdbx.a
111-
$(CC) $(CFLAGS) $(MDBX_OPTIONS) '-DMDBX_CONFIG_H="config.h"' $^ $(EXE_LDFLAGS) $(LIBS) -o $@
191+
@echo ' CC+LD $@'
192+
$(QUIET)$(CC) $(CFLAGS) $(MDBX_BUILD_OPTIONS) '-DMDBX_CONFIG_H="config.h"' $^ $(EXE_LDFLAGS) $(LIBS) -o $@
112193

113194

114195
install: $(LIBRARIES) $(TOOLS) $(HEADERS)
196+
@echo ' INSTALLING...'
115197
$(INSTALL) -D -p $(EXE_INSTALL_FLAGS) -t $(DESTDIR)$(prefix)/bin$(suffix) $(TOOLS) && \
116198
$(INSTALL) -D -p $(EXE_INSTALL_FLAGS) -t $(DESTDIR)$(prefix)/lib$(suffix) $(filter-out libmdbx.a,$(LIBRARIES)) && \
117199
$(INSTALL) -D -p -t $(DESTDIR)$(prefix)/lib$(suffix) libmdbx.a && \
@@ -125,7 +207,8 @@ install-no-strip: EXE_INSTALL_FLAGS =
125207
install-no-strip: install
126208

127209
uninstall:
128-
rm -f $(addprefix $(DESTDIR)$(prefix)/bin$(suffix)/,$(TOOLS)) \
210+
@echo ' UNINSTALLING/REMOVE...'
211+
$(QUIET)rm -f $(addprefix $(DESTDIR)$(prefix)/bin$(suffix)/,$(TOOLS)) \
129212
$(addprefix $(DESTDIR)$(prefix)/lib$(suffix)/,$(LIBRARIES)) \
130213
$(addprefix $(DESTDIR)$(prefix)/include/,$(HEADERS)) \
131214
$(addprefix $(DESTDIR)$(mandir)/man1/,$(MANPAGES))
@@ -142,16 +225,18 @@ BENCH_CRUD_MODE ?= nosync
142225

143226
ifneq ($(wildcard $(IOARENA)),)
144227

145-
.PHONY: bench clean-bench re-bench
228+
.PHONY: bench bench-clean bench-couple re-bench bench-quartet bench-triplet
146229

147-
clean-bench:
148-
rm -rf bench-*.txt _ioarena/*
230+
bench-clean:
231+
@echo ' REMOVE bench-*.txt _ioarena/*'
232+
$(QUIET)rm -rf bench-*.txt _ioarena/*
149233

150-
re-bench: clean-bench bench
234+
re-bench: bench-clean bench
151235

152236
define bench-rule
153237
bench-$(1)_$(2).txt: $(3) $(IOARENA) $(lastword $(MAKEFILE_LIST))
154-
LD_LIBRARY_PATH="./:$$$${LD_LIBRARY_PATH}" \
238+
@echo ' RUNNING ioarena for $1/$2...'
239+
$(QUIET)LD_LIBRARY_PATH="./:$$$${LD_LIBRARY_PATH}" \
155240
$(IOARENA) -D $(1) -B crud -m $(BENCH_CRUD_MODE) -n $(2) \
156241
| tee $$@ | grep throughput && \
157242
LD_LIBRARY_PATH="./:$$$${LD_LIBRARY_PATH}" \
@@ -174,17 +259,13 @@ $(eval $(call bench-rule,sqlite3,$(NN)))
174259
$(eval $(call bench-rule,ejdb,$(NN)))
175260
$(eval $(call bench-rule,vedisdb,$(NN)))
176261
$(eval $(call bench-rule,dummy,$(NN)))
177-
178-
$(eval $(call bench-rule,debug,10))
179-
180262
bench: bench-mdbx_$(NN).txt
181-
182-
.PHONY: bench-debug
183-
184-
bench-debug: bench-debug_10.txt
185-
186263
bench-quartet: bench-mdbx_$(NN).txt bench-lmdb_$(NN).txt bench-rocksdb_$(NN).txt bench-wiredtiger_$(NN).txt
187264
bench-triplet: bench-mdbx_$(NN).txt bench-lmdb_$(NN).txt bench-sqlite3_$(NN).txt
188265
bench-couple: bench-mdbx_$(NN).txt bench-lmdb_$(NN).txt
189266

267+
# $(eval $(call bench-rule,debug,10))
268+
# .PHONY: bench-debug
269+
# bench-debug: bench-debug_10.txt
270+
190271
endif

mdbx/dist/Makefile

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
# This is thunk-Makefile for calling GNU Make 3.80 or above
22

3-
all bench bench-quartet build-test check clean clean-bench cross-gcc cross-qemu dist doxygen gcc-analyzer install mdbx memcheck reformat release-assets strip test test-asan test-fault test-leak test-singleprocess test-ubsan test-valgrind tools \
4-
mdbx_test mdbx_chk mdbx_load mdbx_dump mdbx_stat mdbx_drop mdbx_copy:
3+
all help options \
4+
clean install install-no-strip install-strip strip tools uninstall \
5+
bench bench-clean bench-couple bench-quartet bench-triplet re-bench \
6+
lib libmdbx mdbx mdbx_chk mdbx_copy mdbx_drop mdbx_dump mdbx_load mdbx_stat \
7+
check dist memcheck cross-gcc cross-qemu doxygen gcc-analyzer reformat \
8+
release-assets tags test build-test mdbx_test \
9+
test-asan test-fault test-leak test-singleprocess test-ubsan test-valgrind:
510
@CC=$(CC) \
611
CXX=`if test -n "$(CXX)" && which "$(CXX)" > /dev/null; then echo "$(CXX)"; elif test -n "$(CCC)" && which "$(CCC)" > /dev/null; then echo "$(CCC)"; else echo "c++"; fi` \
712
`which gmake || which gnumake || echo 'echo "GNU Make 3.80 or above is required"; exit 2;'` \

mdbx/dist/README.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ _MithrilDB_ is a rightly relevant name.
7373
7474
[![https://t.me/libmdbx](https://raw.githubusercontent.com/wiki/erthink/libmdbx/img/telegram.png)](https://t.me/libmdbx)
7575
[![GithubCI](https://github.com/erthink/libmdbx/workflows/CI/badge.svg)](https://github.com/erthink/libmdbx/actions?query=workflow%3ACI)
76-
[![TravisCI](https://travis-ci.org/erthink/libmdbx.svg?branch=master)](https://travis-ci.org/erthink/libmdbx)
7776
[![AppveyorCI](https://ci.appveyor.com/api/projects/status/ue94mlopn50dqiqg/branch/master?svg=true)](https://ci.appveyor.com/project/leo-yuriev/libmdbx/branch/master)
7877
[![CircleCI](https://circleci.com/gh/erthink/libmdbx/tree/master.svg?style=svg)](https://circleci.com/gh/erthink/libmdbx/tree/master)
7978
[![CirrusCI](https://api.cirrus-ci.com/github/erthink/libmdbx.svg)](https://cirrus-ci.com/github/erthink/libmdbx)
@@ -373,7 +372,9 @@ are completely traditional and have minimal prerequirements like
373372
`build-essential`, i.e. the non-obsolete C/C++ compiler and a
374373
[SDK](https://en.wikipedia.org/wiki/Software_development_kit) for the
375374
target platform. Obviously you need building tools itself, i.e. `git`,
376-
`cmake` or GNU `make` with `bash`.
375+
`cmake` or GNU `make` with `bash`. For your convenience, `make help`
376+
and `make options` are also available for listing existing targets
377+
and build options respectively.
377378

378379
So just using CMake or GNU Make in your habitual manner and feel free to
379380
fill an issue or make pull request in the case something will be
@@ -431,11 +432,11 @@ recommended. Otherwise do not forget to add `ntdll.lib` to linking.
431432

432433
Building by MinGW, MSYS or Cygwin is potentially possible. However,
433434
these scripts are not tested and will probably require you to modify the
434-
CMakeLists.txt or Makefile respectively.
435+
`CMakeLists.txt` or `Makefile` respectively.
435436

436437
It should be noted that in _libmdbx_ was efforts to resolve
437-
runtime dependencies from CRT and other libraries Visual Studio.
438-
For this is enough to define the `MDBX_AVOID_CRT` during build.
438+
runtime dependencies from CRT and other MSVC libraries.
439+
For this is enough to define the `MDBX_WITHOUT_MSVC_CRT` during build.
439440

440441
An example of running a basic test script can be found in the
441442
[CI-script](appveyor.yml) for [AppVeyor](https://www.appveyor.com/). To

mdbx/dist/VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.9.3.150
1+
0.9.3.186

mdbx/dist/config.h.in

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
#cmakedefine ENABLE_GCOV
1111
#cmakedefine ENABLE_ASAN
1212
#cmakedefine ENABLE_UBSAN
13-
#cmakedefine MDBX_FORCE_ASSERTIONS
13+
#cmakedefine01 MDBX_FORCE_ASSERTIONS
1414

1515
/* Common */
1616
#cmakedefine01 MDBX_TXN_CHECKOWNER
@@ -30,7 +30,7 @@
3030

3131
/* Windows */
3232
#cmakedefine01 MDBX_CONFIG_MANUAL_TLS_CALLBACK
33-
#cmakedefine01 MDBX_AVOID_CRT
33+
#cmakedefine01 MDBX_WITHOUT_MSVC_CRT
3434

3535
/* MacOS & iOS */
3636
#cmakedefine01 MDBX_OSX_SPEED_INSTEADOF_DURABILITY

0 commit comments

Comments
 (0)