From 046dc02f730e718e3f8cba1695a52ba689023bc5 Mon Sep 17 00:00:00 2001 From: Leonid Yuriev Date: Sun, 25 Jul 2021 15:11:05 +0300 Subject: [PATCH] mdbx: make `MDBX_STRINGIFY`macro public. --- mdbx.h | 6 ++++++ src/core.c | 54 ++++++++++++++++++++++++------------------------ src/defs.h | 7 +------ src/mdbx.c++ | 2 +- src/options.h | 28 ++++++++++++------------- src/version.c.in | 2 +- test/test.h | 4 ++-- 7 files changed, 52 insertions(+), 51 deletions(-) diff --git a/mdbx.h b/mdbx.h index 60a38a1e..843da893 100644 --- a/mdbx.h +++ b/mdbx.h @@ -361,6 +361,12 @@ typedef mode_t mdbx_mode_t; #define LIBMDBX_INLINE_API(TYPE, NAME, ARGS) static __inline TYPE NAME ARGS #endif /* LIBMDBX_INLINE_API */ +/** \brief Converts a macro argument into a string constant. */ +#ifndef MDBX_STRINGIFY +#define MDBX_STRINGIFY_HELPER(x) #x +#define MDBX_STRINGIFY(x) MDBX_STRINGIFY_HELPER(x) +#endif /* MDBX_STRINGIFY */ + /*----------------------------------------------------------------------------*/ #ifndef __cplusplus diff --git a/src/core.c b/src/core.c index cdcf1583..aac27b37 100644 --- a/src/core.c +++ b/src/core.c @@ -22120,7 +22120,7 @@ __dll_export MDBX_BUILD_TARGET #else #if defined(__ANDROID_API__) - "Android" STRINGIFY(__ANDROID_API__) + "Android" MDBX_STRINGIFY(__ANDROID_API__) #elif defined(__linux__) || defined(__gnu_linux__) "Linux" #elif defined(EMSCRIPTEN) || defined(__EMSCRIPTEN__) @@ -22161,7 +22161,7 @@ __dll_export || defined(__UNIX) || defined(__UNIX__) "UNIX" #elif defined(_POSIX_VERSION) - "POSIX" STRINGIFY(_POSIX_VERSION) + "POSIX" MDBX_STRINGIFY(_POSIX_VERSION) #else "UnknownOS" #endif /* Target OS */ @@ -22217,8 +22217,8 @@ __dll_export "-" MDBX_BUILD_TYPE #endif /* MDBX_BUILD_TYPE */ , - "MDBX_DEBUG=" STRINGIFY(MDBX_DEBUG) - " MDBX_WORDBITS=" STRINGIFY(MDBX_WORDBITS) + "MDBX_DEBUG=" MDBX_STRINGIFY(MDBX_DEBUG) + " MDBX_WORDBITS=" MDBX_STRINGIFY(MDBX_WORDBITS) " BYTE_ORDER=" #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ "LITTLE_ENDIAN" @@ -22232,8 +22232,8 @@ __dll_export " MDBX_64BIT_ATOMIC=" MDBX_64BIT_ATOMIC_CONFIG " MDBX_64BIT_CAS=" MDBX_64BIT_CAS_CONFIG " MDBX_TRUST_RTC=" MDBX_TRUST_RTC_CONFIG - " MDBX_ENABLE_REFUND=" STRINGIFY(MDBX_ENABLE_REFUND) - " MDBX_ENABLE_MADVISE=" STRINGIFY(MDBX_ENABLE_MADVISE) + " MDBX_ENABLE_REFUND=" MDBX_STRINGIFY(MDBX_ENABLE_REFUND) + " MDBX_ENABLE_MADVISE=" MDBX_STRINGIFY(MDBX_ENABLE_MADVISE) #if MDBX_DISABLE_PAGECHECKS " MDBX_DISABLE_PAGECHECKS=YES" #endif /* MDBX_DISABLE_PAGECHECKS */ @@ -22252,53 +22252,53 @@ __dll_export " _GNU_SOURCE=NO" #endif /* _GNU_SOURCE */ #ifdef __APPLE__ - " MDBX_OSX_SPEED_INSTEADOF_DURABILITY=" STRINGIFY(MDBX_OSX_SPEED_INSTEADOF_DURABILITY) + " MDBX_OSX_SPEED_INSTEADOF_DURABILITY=" MDBX_STRINGIFY(MDBX_OSX_SPEED_INSTEADOF_DURABILITY) #endif /* MacOS */ #if defined(_WIN32) || defined(_WIN64) - " MDBX_WITHOUT_MSVC_CRT=" STRINGIFY(MDBX_AVOID_CRT) - " MDBX_BUILD_SHARED_LIBRARY=" STRINGIFY(MDBX_BUILD_SHARED_LIBRARY) + " MDBX_WITHOUT_MSVC_CRT=" MDBX_STRINGIFY(MDBX_AVOID_CRT) + " MDBX_BUILD_SHARED_LIBRARY=" MDBX_STRINGIFY(MDBX_BUILD_SHARED_LIBRARY) #if !MDBX_BUILD_SHARED_LIBRARY - " MDBX_MANUAL_MODULE_HANDLER=" STRINGIFY(MDBX_MANUAL_MODULE_HANDLER) + " MDBX_MANUAL_MODULE_HANDLER=" MDBX_STRINGIFY(MDBX_MANUAL_MODULE_HANDLER) #endif - " WINVER=" STRINGIFY(WINVER) + " WINVER=" MDBX_STRINGIFY(WINVER) #else /* Windows */ " MDBX_LOCKING=" MDBX_LOCKING_CONFIG " MDBX_USE_OFDLOCKS=" MDBX_USE_OFDLOCKS_CONFIG #endif /* !Windows */ - " MDBX_CACHELINE_SIZE=" STRINGIFY(MDBX_CACHELINE_SIZE) - " MDBX_CPU_WRITEBACK_INCOHERENT=" STRINGIFY(MDBX_CPU_WRITEBACK_INCOHERENT) - " MDBX_MMAP_INCOHERENT_CPU_CACHE=" STRINGIFY(MDBX_MMAP_INCOHERENT_CPU_CACHE) - " MDBX_MMAP_INCOHERENT_FILE_WRITE=" STRINGIFY(MDBX_MMAP_INCOHERENT_FILE_WRITE) - " MDBX_UNALIGNED_OK=" STRINGIFY(MDBX_UNALIGNED_OK) - " MDBX_PNL_ASCENDING=" STRINGIFY(MDBX_PNL_ASCENDING) + " MDBX_CACHELINE_SIZE=" MDBX_STRINGIFY(MDBX_CACHELINE_SIZE) + " MDBX_CPU_WRITEBACK_INCOHERENT=" MDBX_STRINGIFY(MDBX_CPU_WRITEBACK_INCOHERENT) + " MDBX_MMAP_INCOHERENT_CPU_CACHE=" MDBX_STRINGIFY(MDBX_MMAP_INCOHERENT_CPU_CACHE) + " MDBX_MMAP_INCOHERENT_FILE_WRITE=" MDBX_STRINGIFY(MDBX_MMAP_INCOHERENT_FILE_WRITE) + " MDBX_UNALIGNED_OK=" MDBX_STRINGIFY(MDBX_UNALIGNED_OK) + " MDBX_PNL_ASCENDING=" MDBX_STRINGIFY(MDBX_PNL_ASCENDING) , #ifdef MDBX_BUILD_COMPILER MDBX_BUILD_COMPILER #else #ifdef __INTEL_COMPILER - "Intel C/C++ " STRINGIFY(__INTEL_COMPILER) + "Intel C/C++ " MDBX_STRINGIFY(__INTEL_COMPILER) #elif defined(__apple_build_version__) - "Apple clang " STRINGIFY(__apple_build_version__) + "Apple clang " MDBX_STRINGIFY(__apple_build_version__) #elif defined(__ibmxl__) - "IBM clang C " STRINGIFY(__ibmxl_version__) "." STRINGIFY(__ibmxl_release__) - "." STRINGIFY(__ibmxl_modification__) "." STRINGIFY(__ibmxl_ptf_fix_level__) + "IBM clang C " MDBX_STRINGIFY(__ibmxl_version__) "." MDBX_STRINGIFY(__ibmxl_release__) + "." MDBX_STRINGIFY(__ibmxl_modification__) "." MDBX_STRINGIFY(__ibmxl_ptf_fix_level__) #elif defined(__clang__) - "clang " STRINGIFY(__clang_version__) + "clang " MDBX_STRINGIFY(__clang_version__) #elif defined(__MINGW64__) - "MINGW-64 " STRINGIFY(__MINGW64_MAJOR_VERSION) "." STRINGIFY(__MINGW64_MINOR_VERSION) + "MINGW-64 " MDBX_STRINGIFY(__MINGW64_MAJOR_VERSION) "." MDBX_STRINGIFY(__MINGW64_MINOR_VERSION) #elif defined(__MINGW32__) - "MINGW-32 " STRINGIFY(__MINGW32_MAJOR_VERSION) "." STRINGIFY(__MINGW32_MINOR_VERSION) + "MINGW-32 " MDBX_STRINGIFY(__MINGW32_MAJOR_VERSION) "." MDBX_STRINGIFY(__MINGW32_MINOR_VERSION) #elif defined(__IBMC__) - "IBM C " STRINGIFY(__IBMC__) + "IBM C " MDBX_STRINGIFY(__IBMC__) #elif defined(__GNUC__) "GNU C/C++ " #ifdef __VERSION__ __VERSION__ #else - STRINGIFY(__GNUC__) "." STRINGIFY(__GNUC_MINOR__) "." STRINGIFY(__GNUC_PATCHLEVEL__) + MDBX_STRINGIFY(__GNUC__) "." MDBX_STRINGIFY(__GNUC_MINOR__) "." MDBX_STRINGIFY(__GNUC_PATCHLEVEL__) #endif #elif defined(_MSC_VER) - "MSVC " STRINGIFY(_MSC_FULL_VER) "-" STRINGIFY(_MSC_BUILD) + "MSVC " MDBX_STRINGIFY(_MSC_FULL_VER) "-" MDBX_STRINGIFY(_MSC_BUILD) #else "Unknown compiler" #endif diff --git a/src/defs.h b/src/defs.h index 21f3aefe..216e3371 100644 --- a/src/defs.h +++ b/src/defs.h @@ -304,11 +304,6 @@ # define ARRAY_END(array) (&array[ARRAY_LENGTH(array)]) #endif /* ARRAY_END */ -#ifndef STRINGIFY -# define STRINGIFY_HELPER(x) #x -# define STRINGIFY(x) STRINGIFY_HELPER(x) -#endif /* STRINGIFY */ - #define CONCAT(a,b) a##b #define XCONCAT(a,b) CONCAT(a,b) @@ -326,7 +321,7 @@ #define MDBX_STRING_TETRAD(str) MDBX_TETRAD(str[0], str[1], str[2], str[3]) -#define FIXME "FIXME: " __FILE__ ", " STRINGIFY(__LINE__) +#define FIXME "FIXME: " __FILE__ ", " MDBX_STRINGIFY(__LINE__) #ifndef STATIC_ASSERT_MSG # if defined(static_assert) diff --git a/src/mdbx.c++ b/src/mdbx.c++ index a67e0b15..4b0cd9a1 100644 --- a/src/mdbx.c++ +++ b/src/mdbx.c++ @@ -344,7 +344,7 @@ __cold const char *error::what() const noexcept { switch (code()) { #define ERROR_CASE(CODE) \ case CODE: \ - return STRINGIFY(CODE) + return MDBX_STRINGIFY(CODE) ERROR_CASE(MDBX_ENODATA); ERROR_CASE(MDBX_EINVAL); ERROR_CASE(MDBX_EACCESS); diff --git a/src/options.h b/src/options.h index c54c7b55..a9548243 100644 --- a/src/options.h +++ b/src/options.h @@ -39,18 +39,18 @@ #else #define MDBX_ENV_CHECKPID 1 #endif -#define MDBX_ENV_CHECKPID_CONFIG "AUTO=" STRINGIFY(MDBX_ENV_CHECKPID) +#define MDBX_ENV_CHECKPID_CONFIG "AUTO=" MDBX_STRINGIFY(MDBX_ENV_CHECKPID) #else -#define MDBX_ENV_CHECKPID_CONFIG STRINGIFY(MDBX_ENV_CHECKPID) +#define MDBX_ENV_CHECKPID_CONFIG MDBX_STRINGIFY(MDBX_ENV_CHECKPID) #endif /* MDBX_ENV_CHECKPID */ /** Controls checking transaction owner thread against misuse transactions from * other threads. */ #ifndef MDBX_TXN_CHECKOWNER #define MDBX_TXN_CHECKOWNER 1 -#define MDBX_TXN_CHECKOWNER_CONFIG "AUTO=" STRINGIFY(MDBX_TXN_CHECKOWNER) +#define MDBX_TXN_CHECKOWNER_CONFIG "AUTO=" MDBX_STRINGIFY(MDBX_TXN_CHECKOWNER) #else -#define MDBX_TXN_CHECKOWNER_CONFIG STRINGIFY(MDBX_TXN_CHECKOWNER) +#define MDBX_TXN_CHECKOWNER_CONFIG MDBX_STRINGIFY(MDBX_TXN_CHECKOWNER) #endif /* MDBX_TXN_CHECKOWNER */ /** Does a system have battery-backed Real-Time Clock or just a fake. */ @@ -61,9 +61,9 @@ #else #define MDBX_TRUST_RTC 1 #endif -#define MDBX_TRUST_RTC_CONFIG "AUTO=" STRINGIFY(MDBX_TRUST_RTC) +#define MDBX_TRUST_RTC_CONFIG "AUTO=" MDBX_STRINGIFY(MDBX_TRUST_RTC) #else -#define MDBX_TRUST_RTC_CONFIG STRINGIFY(MDBX_TRUST_RTC) +#define MDBX_TRUST_RTC_CONFIG MDBX_STRINGIFY(MDBX_TRUST_RTC) #endif /* MDBX_TRUST_RTC */ /** Controls online database auto-compactification during write-transactions. */ @@ -238,9 +238,9 @@ #else #define MDBX_LOCKING MDBX_LOCKING_SYSV #endif -#define MDBX_LOCKING_CONFIG "AUTO=" STRINGIFY(MDBX_LOCKING) +#define MDBX_LOCKING_CONFIG "AUTO=" MDBX_STRINGIFY(MDBX_LOCKING) #else -#define MDBX_LOCKING_CONFIG STRINGIFY(MDBX_LOCKING) +#define MDBX_LOCKING_CONFIG MDBX_STRINGIFY(MDBX_LOCKING) #endif /* MDBX_LOCKING */ #endif /* !Windows */ @@ -253,9 +253,9 @@ #else #define MDBX_USE_OFDLOCKS 0 #endif -#define MDBX_USE_OFDLOCKS_CONFIG "AUTO=" STRINGIFY(MDBX_USE_OFDLOCKS) +#define MDBX_USE_OFDLOCKS_CONFIG "AUTO=" MDBX_STRINGIFY(MDBX_USE_OFDLOCKS) #else -#define MDBX_USE_OFDLOCKS_CONFIG STRINGIFY(MDBX_USE_OFDLOCKS) +#define MDBX_USE_OFDLOCKS_CONFIG MDBX_STRINGIFY(MDBX_USE_OFDLOCKS) #endif /* MDBX_USE_OFDLOCKS */ /** Advanced: Using sendfile() syscall (autodetection by default). */ @@ -326,9 +326,9 @@ #else #define MDBX_64BIT_ATOMIC 0 #endif -#define MDBX_64BIT_ATOMIC_CONFIG "AUTO=" STRINGIFY(MDBX_64BIT_ATOMIC) +#define MDBX_64BIT_ATOMIC_CONFIG "AUTO=" MDBX_STRINGIFY(MDBX_64BIT_ATOMIC) #else -#define MDBX_64BIT_ATOMIC_CONFIG STRINGIFY(MDBX_64BIT_ATOMIC) +#define MDBX_64BIT_ATOMIC_CONFIG MDBX_STRINGIFY(MDBX_64BIT_ATOMIC) #endif /* MDBX_64BIT_ATOMIC */ #ifndef MDBX_64BIT_CAS @@ -355,9 +355,9 @@ #else #define MDBX_64BIT_CAS MDBX_64BIT_ATOMIC #endif -#define MDBX_64BIT_CAS_CONFIG "AUTO=" STRINGIFY(MDBX_64BIT_CAS) +#define MDBX_64BIT_CAS_CONFIG "AUTO=" MDBX_STRINGIFY(MDBX_64BIT_CAS) #else -#define MDBX_64BIT_CAS_CONFIG STRINGIFY(MDBX_64BIT_CAS) +#define MDBX_64BIT_CAS_CONFIG MDBX_STRINGIFY(MDBX_64BIT_CAS) #endif /* MDBX_64BIT_CAS */ #ifndef MDBX_UNALIGNED_OK diff --git a/src/version.c.in b/src/version.c.in index 07c0db9f..9686a9b7 100644 --- a/src/version.c.in +++ b/src/version.c.in @@ -8,7 +8,7 @@ #error "API version mismatch! Had `git fetch --tags` done?" #endif -static const char sourcery[] = STRINGIFY(MDBX_BUILD_SOURCERY); +static const char sourcery[] = MDBX_STRINGIFY(MDBX_BUILD_SOURCERY); __dll_export #ifdef __attribute_used__ diff --git a/test/test.h b/test/test.h index 57b707c7..b38ff0b8 100644 --- a/test/test.h +++ b/test/test.h @@ -130,8 +130,8 @@ public: }; #define REGISTER_TESTCASE(NAME) \ - static registry::factory gRegister_##NAME(ac_##NAME, \ - STRINGIFY(NAME)) + static registry::factory gRegister_##NAME( \ + ac_##NAME, MDBX_STRINGIFY(NAME)) class testcase { protected: