[CMake] Update CMAKE_OSX_DEPLOYMENT_TARGET to 10.12.
authorJonas Devlieghere <jonas@devlieghere.com>
Sun, 18 Aug 2019 21:54:26 +0000 (21:54 +0000)
committerJonas Devlieghere <jonas@devlieghere.com>
Sun, 18 Aug 2019 21:54:26 +0000 (21:54 +0000)
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

index 0a57181..98d68b1 100644 (file)
@@ -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 "")