[libcxx] Add support for Fuchsia
authorPetr Hosek <phosek@chromium.org>
Mon, 10 Oct 2016 18:53:32 +0000 (18:53 +0000)
committerPetr Hosek <phosek@chromium.org>
Mon, 10 Oct 2016 18:53:32 +0000 (18:53 +0000)
Fuchsia is a new operating system which uses musl as the standard
C library, libc++ and libc++abi as the C++ standard library.

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

llvm-svn: 283788

libcxx/include/__config
libcxx/src/include/config_elast.h

index 14e151a..db55b2c 100644 (file)
@@ -325,6 +325,9 @@ typedef __char32_t char32_t;
 #if defined(__FreeBSD__)
 #define _LIBCPP_HAS_QUICK_EXIT
 #define _LIBCPP_HAS_C11_FEATURES
+#elif defined(__Fuchsia__)
+#define _LIBCPP_HAS_QUICK_EXIT
+#define _LIBCPP_HAS_C11_FEATURES
 #elif defined(__linux__)
 #if !defined(_LIBCPP_HAS_MUSL_LIBC)
 #if __GLIBC_PREREQ(2, 15) || defined(__BIONIC__)
@@ -832,6 +835,7 @@ extern "C" void __sanitizer_annotate_contiguous_container(
     !defined(_LIBCPP_HAS_THREAD_API_PTHREAD) && \
     !defined(_LIBCPP_HAS_THREAD_API_EXTERNAL)
 # if defined(__FreeBSD__) || \
+    defined(__Fuchsia__) || \
     defined(__NetBSD__) || \
     defined(__linux__) || \
     defined(__APPLE__) || \
index 9d6a76b..53b3184 100644 (file)
@@ -20,6 +20,8 @@
 #define _LIBCPP_ELAST ELAST
 #elif defined(_NEWLIB_VERSION)
 #define _LIBCPP_ELAST __ELASTERROR
+#elif defined(__Fuchsia__)
+// No _LIBCPP_ELAST needed on Fuchsia
 #elif defined(__linux__)
 #define _LIBCPP_ELAST 4095
 #elif defined(__APPLE__)