Merge pull request #2266 from mpilman/bugfixes/catalina
Fix compiler errors on Catalina
This commit is contained in:
commit
3bebcca846
|
@ -221,9 +221,14 @@ else()
|
||||||
# Check whether we can use dtrace probes
|
# Check whether we can use dtrace probes
|
||||||
include(CheckSymbolExists)
|
include(CheckSymbolExists)
|
||||||
check_symbol_exists(DTRACE_PROBE sys/sdt.h SUPPORT_DTRACE)
|
check_symbol_exists(DTRACE_PROBE sys/sdt.h SUPPORT_DTRACE)
|
||||||
|
check_symbol_exists(aligned_alloc stdlib.h HAS_ALIGNED_ALLOC)
|
||||||
|
message(STATUS "Has aligned_alloc: ${HAS_ALIGNED_ALLOC}")
|
||||||
if(SUPPORT_DTRACE)
|
if(SUPPORT_DTRACE)
|
||||||
add_compile_definitions(DTRACE_PROBES)
|
add_compile_definitions(DTRACE_PROBES)
|
||||||
endif()
|
endif()
|
||||||
|
if(HAS_ALIGNED_ALLOC)
|
||||||
|
add_compile_definitions(HAS_ALIGNED_ALLOC)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(CMAKE_COMPILER_IS_GNUCXX)
|
if(CMAKE_COMPILER_IS_GNUCXX)
|
||||||
set(USE_LTO OFF CACHE BOOL "Do link time optimization")
|
set(USE_LTO OFF CACHE BOOL "Do link time optimization")
|
||||||
|
|
|
@ -524,6 +524,7 @@ inline static void aligned_free(void* ptr) { free(ptr); }
|
||||||
inline static void* aligned_alloc(size_t alignment, size_t size) { return memalign(alignment, size); }
|
inline static void* aligned_alloc(size_t alignment, size_t size) { return memalign(alignment, size); }
|
||||||
#endif
|
#endif
|
||||||
#elif defined(__APPLE__)
|
#elif defined(__APPLE__)
|
||||||
|
#if !defined(HAS_ALIGNED_ALLOC)
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
inline static void* aligned_alloc(size_t alignment, size_t size) {
|
inline static void* aligned_alloc(size_t alignment, size_t size) {
|
||||||
// Linux's aligned_alloc() requires alignment to be a power of 2. While posix_memalign()
|
// Linux's aligned_alloc() requires alignment to be a power of 2. While posix_memalign()
|
||||||
|
@ -540,6 +541,7 @@ inline static void* aligned_alloc(size_t alignment, size_t size) {
|
||||||
posix_memalign(&ptr, alignment, size);
|
posix_memalign(&ptr, alignment, size);
|
||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
inline static void aligned_free(void* ptr) { free(ptr); }
|
inline static void aligned_free(void* ptr) { free(ptr); }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue