[libc++] Allow building without threads in standalone builds
authorLouis Dionne <ldionne@apple.com>
Tue, 15 Sep 2020 12:43:08 +0000 (08:43 -0400)
committerLouis Dionne <ldionne@apple.com>
Tue, 15 Sep 2020 12:44:48 +0000 (08:44 -0400)
Setting _LIBCPP_HAS_NO_THREADS is needed when building libcxxabi without
threads in standalone mode. This is useful when target WASM. Otherwise,
you get an error like "No thread API" when building libcxxabi.

It would be better to link against a properly-configured libc++ headers
CMake target when building libc++abi instead, but we don't generate such
targets yet.

Thanks to Matthew Bauer for the patch.

Differential Revision: https://reviews.llvm.org/D60743

libcxxabi/CMakeLists.txt

index 96a1c62..10ac112 100644 (file)
@@ -352,6 +352,7 @@ if (NOT LIBCXXABI_ENABLE_THREADS)
                         " is also set to ON.")
   endif()
   add_definitions(-D_LIBCXXABI_HAS_NO_THREADS)
+  add_definitions(-D_LIBCPP_HAS_NO_THREADS)
 endif()
 
 if (LIBCXXABI_HAS_EXTERNAL_THREAD_API)