From 45e598d1357c4436f5a13afa5e57c3600e13f2c1 Mon Sep 17 00:00:00 2001 From: Jonas Devlieghere Date: Sun, 18 Aug 2019 21:54:26 +0000 Subject: [PATCH] [CMake] Update CMAKE_OSX_DEPLOYMENT_TARGET to 10.12. After LLVM moved to C++14, the RWMutex implementation was removed in favor of std::shared_timed_mutex, which is only available on macOS 10.12 and later. As a workaround for older deployment targets, I added the original RWMutexImpl again, guarded by the deployment target. When doing a standalone build of LLDB using the Xcode generator, the CMake cache specifies a minimum deployment target. However, LLVM and Clang might have been built with a different minimum deployment target. This is exactly what happened for the Xcode build. LLVM was built with a minimum deployment target newer than 10.12, using std::shared_timed_mutex. LLDB on the other hand was built with a minimum deployment target of 10.11, using the old RWMutexImpl, resulting in undefined symbols at link-time. This patch changes the minimum deployment target for the Xcode build to 10.12 to work around this problem. A better solution would involve synchronizing the minimum deployment or even not setting one at all. llvm-svn: 369220 --- lldb/cmake/caches/Apple-lldb-Xcode.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lldb/cmake/caches/Apple-lldb-Xcode.cmake b/lldb/cmake/caches/Apple-lldb-Xcode.cmake index 0a57181..98d68b1 100644 --- a/lldb/cmake/caches/Apple-lldb-Xcode.cmake +++ b/lldb/cmake/caches/Apple-lldb-Xcode.cmake @@ -1,7 +1,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/Apple-lldb-base.cmake) set(CMAKE_GENERATOR Xcode CACHE STRING "") -set(CMAKE_OSX_DEPLOYMENT_TARGET 10.11 CACHE STRING "") +set(CMAKE_OSX_DEPLOYMENT_TARGET 10.12 CACHE STRING "") set(CMAKE_XCODE_GENERATE_SCHEME ON CACHE BOOL "") set(LLDB_BUILD_FRAMEWORK ON CACHE BOOL "") -- 2.7.4