[libc++abi] Provide __cxa_thread_atexit on Fuchsia

Fuchsia already supports this interface.

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@345534 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/cxxabi.h b/include/cxxabi.h
index 2596560..c6724ad 100644
--- a/include/cxxabi.h
+++ b/include/cxxabi.h
@@ -160,8 +160,8 @@
 extern _LIBCXXABI_FUNC_VIS bool __cxa_uncaught_exception() throw();
 extern _LIBCXXABI_FUNC_VIS unsigned int __cxa_uncaught_exceptions() throw();
 
-#ifdef __linux__
-// Linux TLS support. Not yet an official part of the Itanium ABI.
+#if defined(__linux__) || defined(__Fuchsia__)
+// Linux and Fuchsia TLS support. Not yet an official part of the Itanium ABI.
 // https://sourceware.org/glibc/wiki/Destructor%20support%20for%20thread_local%20variables
 extern _LIBCXXABI_FUNC_VIS int __cxa_thread_atexit(void (*)(void *), void *,
                                                    void *) throw();
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index d3581cc..7e21fb2 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -31,7 +31,7 @@
   list(APPEND LIBCXXABI_SOURCES cxa_noexception.cpp)
 endif()
 
-if (LIBCXXABI_ENABLE_THREADS AND UNIX AND NOT (APPLE OR CYGWIN))
+if (LIBCXXABI_ENABLE_THREADS AND (UNIX OR FUCHSIA) AND NOT (APPLE OR CYGWIN))
   list(APPEND LIBCXXABI_SOURCES cxa_thread_atexit.cpp)
 endif()