From dea5beea4a75885d64151fe99b87fc0cb4ec33d6 Mon Sep 17 00:00:00 2001 From: Yao Yue Date: Wed, 8 May 2019 16:20:21 -0700 Subject: [PATCH] backport changes made to ccommon in pelikan (#190) --- CMakeLists.txt | 25 ++++++++++++------------- include/cc_mm.h | 4 ++++ src/cc_mm.c | 11 +++++++++++ 3 files changed, 27 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cd8e95a4b..f6ddf7597 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -140,16 +140,15 @@ endif(COVERAGE) include(FindPackageHandleStandardArgs) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake") -find_package(Check) +find_package(PkgConfig QUIET) + +if(PKG_CONFIG_FOUND) + pkg_check_modules(CHECK QUIET check>=0.10) +endif() + if(NOT CHECK_FOUND) - message(WARNING "Check is required to build and run tests") -endif(NOT CHECK_FOUND) -if(CHECK_FOUND) - check_symbol_exists(ck_assert_int_eq check.h CHECK_WORKING) - if(NOT CHECK_WORKING) - message(WARNING "Check version too old to build tests") - endif(NOT CHECK_WORKING) -endif(CHECK_FOUND) + find_package(Check QUIET 0.10) +endif() find_package(Threads) @@ -166,10 +165,10 @@ include_directories( add_subdirectory(src) -if(CHECK_WORKING) - include_directories(${include_directories} "${CHECK_INCLUDES}") +if(CHECK_FOUND) + include_directories(${include_directories} ${CHECK_INCLUDES}) add_subdirectory(test) -endif(CHECK_WORKING) +endif(CHECK_FOUND) if(HAVE_RUST) @@ -193,4 +192,4 @@ message(STATUS "HAVE_SIGNAME: " ${HAVE_SIGNAME}) message(STATUS "HAVE_BACKTRACE: " ${HAVE_BACKTRACE}) -message(STATUS "CHECK_WORKING: " ${CHECK_WORKING}) +message(STATUS "CHECK_FOUND: " ${CHECK_FOUND}) diff --git a/include/cc_mm.h b/include/cc_mm.h index 2d982196e..a9effa23b 100644 --- a/include/cc_mm.h +++ b/include/cc_mm.h @@ -66,6 +66,9 @@ extern "C" { #define cc_munmap(_p, _s) \ _cc_munmap(_p, (size_t)(_s), __FILE__, __LINE__) +#define cc_alloc_usable_size(_p) \ + _cc_alloc_usable_size(_p, __FILE__, __LINE__) + void * _cc_alloc(size_t size, const char *name, int line); void * _cc_zalloc(size_t size, const char *name, int line); void * _cc_calloc(size_t nmemb, size_t size, const char *name, int line); @@ -74,6 +77,7 @@ void * _cc_realloc_move(void *ptr, size_t size, const char *name, int line); void _cc_free(void *ptr, const char *name, int line); void * _cc_mmap(size_t size, const char *name, int line); int _cc_munmap(void *p, size_t size, const char *name, int line); +size_t _cc_alloc_usable_size(void *ptr, const char *name, int line); #ifdef __cplusplus } diff --git a/src/cc_mm.c b/src/cc_mm.c index 6a0554289..ef4ed349a 100644 --- a/src/cc_mm.c +++ b/src/cc_mm.c @@ -27,6 +27,10 @@ /* TODO(yao): detect OS in one place and use one variable everywhere */ #if defined(__APPLE__) && defined(__MACH__) # define MAP_ANONYMOUS MAP_ANON +#include +#define malloc_usable_size malloc_size +#else +#include #endif void * @@ -167,3 +171,10 @@ _cc_munmap(void *p, size_t size, const char *name, int line) return status; } + +size_t +_cc_alloc_usable_size(void *ptr, const char *name, int line) +{ + log_vverb("malloc_usable_size(%p) @ %s:%d", ptr, name, line); + return malloc_usable_size(ptr); +}