mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 00:30:49 +00:00
Fixed clang build on macOS
- Make sure to use dynamic linking on macOS to avoid OpenSSL static linking bug - Use -std=c++17 in CFLAGS for files in contrib - Avoid bad support for thread_local on macOS with clang altogether
This commit is contained in:
parent
e7af27c4e0
commit
fb1aa84973
@ -139,6 +139,8 @@ else ()
|
|||||||
set (CMAKE_CXX_EXTENSIONS 0) # https://cmake.org/cmake/help/latest/prop_tgt/CXX_EXTENSIONS.html#prop_tgt:CXX_EXTENSIONS
|
set (CMAKE_CXX_EXTENSIONS 0) # https://cmake.org/cmake/help/latest/prop_tgt/CXX_EXTENSIONS.html#prop_tgt:CXX_EXTENSIONS
|
||||||
set (CMAKE_CXX_STANDARD_REQUIRED ON)
|
set (CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
set (CXX_FLAGS_INTERNAL_COMPILER "-std=c++1z")
|
set (CXX_FLAGS_INTERNAL_COMPILER "-std=c++1z")
|
||||||
|
# This needs to propagate to vendored projects in contrib
|
||||||
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
set (CMAKE_BUILD_COLOR_MAKEFILE ON)
|
set (CMAKE_BUILD_COLOR_MAKEFILE ON)
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
set (OPENSSL_USE_STATIC_LIBS ${USE_STATIC_LIBRARIES})
|
set (OPENSSL_USE_STATIC_LIBS ${USE_STATIC_LIBRARIES})
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
set (OPENSSL_ROOT_DIR "/usr/local/opt/openssl")
|
set (OPENSSL_ROOT_DIR "/usr/local/opt/openssl")
|
||||||
|
# https://rt.openssl.org/Ticket/Display.html?user=guest&pass=guest&id=2232
|
||||||
|
if (USE_STATIC_LIBRARIES)
|
||||||
|
message(WARNING "Disable USE_STATIC_LIBRARIES if you have linking problems with OpenSSL on MacOS")
|
||||||
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
find_package (OpenSSL)
|
find_package (OpenSSL)
|
||||||
if (NOT OPENSSL_FOUND)
|
if (NOT OPENSSL_FOUND)
|
||||||
|
@ -149,7 +149,7 @@ void MemoryTracker::setOrRaiseLimit(Int64 value)
|
|||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(__apple_build_version__) && __apple_build_version__ <= 9000038
|
#if __APPLE__ && __clang__
|
||||||
__thread MemoryTracker * current_memory_tracker = nullptr;
|
__thread MemoryTracker * current_memory_tracker = nullptr;
|
||||||
#else
|
#else
|
||||||
thread_local MemoryTracker * current_memory_tracker = nullptr;
|
thread_local MemoryTracker * current_memory_tracker = nullptr;
|
||||||
|
@ -108,7 +108,7 @@ public:
|
|||||||
* This pointer is set when memory consumption is monitored in current thread.
|
* This pointer is set when memory consumption is monitored in current thread.
|
||||||
* So, you just need to pass it to all the threads that handle one request.
|
* So, you just need to pass it to all the threads that handle one request.
|
||||||
*/
|
*/
|
||||||
#if defined(__apple_build_version__) && __apple_build_version__ <= 9000038
|
#if __APPLE__ && __clang__
|
||||||
extern __thread MemoryTracker * current_memory_tracker;
|
extern __thread MemoryTracker * current_memory_tracker;
|
||||||
#else
|
#else
|
||||||
extern thread_local MemoryTracker * current_memory_tracker;
|
extern thread_local MemoryTracker * current_memory_tracker;
|
||||||
|
@ -45,8 +45,8 @@ private:
|
|||||||
{
|
{
|
||||||
enum Type { POP, PUSH, READ };
|
enum Type { POP, PUSH, READ };
|
||||||
Type type;
|
Type type;
|
||||||
capnp::StructSchema::Field field;
|
capnp::StructSchema::Field field = {};
|
||||||
size_t column;
|
size_t column = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Wrapper for classes that could throw in destructor
|
// Wrapper for classes that could throw in destructor
|
||||||
|
Loading…
Reference in New Issue
Block a user