From 5d25843f66fbe0bed55bb2ae196e2748d94496c8 Mon Sep 17 00:00:00 2001 From: Eric Fiselier Date: Mon, 2 Jan 2017 21:58:06 +0000 Subject: Fix configuring and building libc++ w/o an ABI library. Typically libc++ uses libc++abi or libcxxrt to provide the ABI and runtime bits of the C++ STL. However we also support building w/o an ABI library entirely. This patch fixes building libc++ w/o an ABI library (and incorporates the `~type_info()` fix in D28211). The main changes in this patch are: 1) Add `-DLIBCXX_CXX_ABI=default` instead of using the empty string to mean "default". 2) Fix CMake bits which treated "none" as "default" on OS X. 3) Teach the source files to respect `-D_LIBCPP_BUILDING_HAS_NO_ABI_LIBRARY`. 4) Define ~type_info() when _LIBCPP_BUILDING_HAS_NO_ABI_LIBRARY is defined. Unfortunately this patch doesn't help clean up the macro mess that we use to configure for different ABI libraries. llvm-svn: 290839 --- libcxx/src/stdexcept.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'libcxx/src/stdexcept.cpp') diff --git a/libcxx/src/stdexcept.cpp b/libcxx/src/stdexcept.cpp index 90d8a34b82d..3f333309dd8 100644 --- a/libcxx/src/stdexcept.cpp +++ b/libcxx/src/stdexcept.cpp @@ -14,7 +14,8 @@ #include "__refstring" /* For _LIBCPPABI_VERSION */ -#if defined(LIBCXX_BUILDING_LIBCXXABI) || defined(__APPLE__) || defined(LIBCXXRT) +#if !defined(_LIBCPP_BUILDING_HAS_NO_ABI_LIBRARY) && \ + (defined(LIBCXX_BUILDING_LIBCXXABI) || defined(__APPLE__) || defined(LIBCXXRT)) #include #endif -- cgit v1.2.3