[libcxxabi] r270732 - Allow explicit pthread opt-in

Ben Craig via cfe-commits cfe-commits at lists.llvm.org
Wed May 25 10:37:39 PDT 2016


Author: bcraig
Date: Wed May 25 12:37:38 2016
New Revision: 270732

URL: http://llvm.org/viewvc/llvm-project?rev=270732&view=rev
Log:
Allow explicit pthread opt-in

When building libcxxabi in tree (i.e. in llvm/projects/libcxxabi,
along with llvm/projects/libcxx), libcxx's config_site.in doesn't
get created in a timely manner. This means that any configuration
that is normally set in libcxx's config_site.in needs to be
duplicated in libcxxabi to successfully build libcxxabi. This patch
does exactly that for the _LIBCPP_HAS_THREAD_API_PTHREAD
preprocessor define.

http://reviews.llvm.org/D20574

Modified:
    libcxxabi/trunk/CMakeLists.txt

Modified: libcxxabi/trunk/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/libcxxabi/trunk/CMakeLists.txt?rev=270732&r1=270731&r2=270732&view=diff
==============================================================================
--- libcxxabi/trunk/CMakeLists.txt (original)
+++ libcxxabi/trunk/CMakeLists.txt Wed May 25 12:37:38 2016
@@ -113,6 +113,7 @@ option(LIBCXXABI_ENABLE_PEDANTIC "Compil
 option(LIBCXXABI_ENABLE_WERROR "Fail and stop if a warning is triggered." OFF)
 option(LIBCXXABI_USE_LLVM_UNWINDER "Build and use the LLVM unwinder." OFF)
 option(LIBCXXABI_ENABLE_THREADS "Build with threads enabled" ON)
+option(LIBCXXABI_HAS_PTHREAD_API "Ignore auto-detection and force use of pthread API" OFF)
 set(LIBCXXABI_GCC_TOOLCHAIN "" CACHE STRING "GCC toolchain for cross compiling.")
 set(LIBCXXABI_SYSROOT "" CACHE STRING "Sysroot for cross compiling.")
 set(LIBCXXABI_LIBCXX_LIBRARY_PATH "" CACHE STRING "The path to libc++ library.")
@@ -272,9 +273,18 @@ if (NOT LIBCXXABI_ENABLE_SHARED)
 endif()
 
 if (NOT LIBCXXABI_ENABLE_THREADS)
+  if (LIBCXXABI_HAS_PTHREAD_API)
+    message(FATAL_ERROR "LIBCXXABI_HAS_PTHREAD_API can only"
+                        " be set to ON when LIBCXXABI_ENABLE_THREADS"
+                        " is also set to ON.")
+  endif()
   add_definitions(-DLIBCXXABI_HAS_NO_THREADS=1)
 endif()
 
+if (LIBCXXABI_HAS_PTHREAD_API)
+  add_definitions(-D_LIBCPP_HAS_THREAD_API_PTHREAD)
+endif()
+
 # This is the _ONLY_ place where add_definitions is called.
 if (MSVC)
   add_definitions(-D_CRT_SECURE_NO_WARNINGS)




More information about the cfe-commits mailing list