libc++abi: build with -fvisibility=hidden

Enable building libc++abi with hidden visibility by default.  The ABI mandated
interfaces (and a few extra) are already set up to be externally visible.  This
allows us to ensure that any implementation details are not leaked.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@270816 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/src/cxa_default_handlers.cpp b/src/cxa_default_handlers.cpp
index d34341a..09350e7 100644
--- a/src/cxa_default_handlers.cpp
+++ b/src/cxa_default_handlers.cpp
@@ -88,7 +88,10 @@
 //
 // Global variables that hold the pointers to the current handler
 //
-std::terminate_handler  __cxa_terminate_handler = default_terminate_handler;
+_LIBCXXABI_DATA_VIS
+std::terminate_handler __cxa_terminate_handler = default_terminate_handler;
+
+_LIBCXXABI_DATA_VIS
 std::unexpected_handler __cxa_unexpected_handler = default_unexpected_handler;
 
 // In the future these will become:
diff --git a/src/cxa_handlers.cpp b/src/cxa_handlers.cpp
index 9c1c302..c231b5a 100644
--- a/src/cxa_handlers.cpp
+++ b/src/cxa_handlers.cpp
@@ -102,9 +102,9 @@
     __terminate(get_terminate());
 }
 
-extern "C" new_handler __cxa_new_handler = 0;
-// In the future these will become:
+// In the future this will become:
 // std::atomic<std::new_handler>  __cxa_new_handler(0);
+extern "C" _LIBCXXABI_DATA_VIS new_handler __cxa_new_handler = 0;
 
 new_handler
 set_new_handler(new_handler handler) _NOEXCEPT