diff --git a/CMakeLists.txt b/CMakeLists.txt index cdccb8e4b..11a6ec2a4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -207,6 +207,17 @@ list(APPEND Z3_COMPONENT_EXTRA_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/src" ) +################################################################################ +# malloc_usable_size() +################################################################################ +option(Z3_USE_MALLOC_USABLE_SIZE "Use malloc_usable_size (or equivalents like malloc_size or _msize)" ON) +if (Z3_USE_MALLOC_USABLE_SIZE) + message(STATUS "Using malloc_usable_size") + list(APPEND Z3_COMPONENT_CXX_DEFINES "-DHAS_MALLOC_USABLE_SIZE") +else() + message(STATUS "Not using malloc_usable_size") +endif() + ################################################################################ # GNU multiple precision library support ################################################################################ diff --git a/src/util/memory_manager.cpp b/src/util/memory_manager.cpp index 8c6bfc7e7..ac2e402f8 100644 --- a/src/util/memory_manager.cpp +++ b/src/util/memory_manager.cpp @@ -13,19 +13,17 @@ Copyright (c) 2015 Microsoft Corporation #include "util/error_codes.h" #include "util/debug.h" #include "util/scoped_timer.h" -#ifdef __GLIBC__ +#ifndef HAS_MALLOC_USABLE_SIZE +// drop calls to malloc_usable_size +#elif defined(__GLIBC__) # include -# define HAS_MALLOC_USABLE_SIZE #elif defined(__APPLE__) # include -# define HAS_MALLOC_USABLE_SIZE # define malloc_usable_size malloc_size #elif defined(__FreeBSD__) # include -# define HAS_MALLOC_USABLE_SIZE #elif defined(_WINDOWS) # include -# define HAS_MALLOC_USABLE_SIZE # define malloc_usable_size _msize #endif