From 723acbd5fa416ccb925e19ae55e515cb1b9b7a74 Mon Sep 17 00:00:00 2001
From: Mark Mitchell <mark@codesourcery.com>
Date: Tue, 3 Aug 2004 06:45:54 +0000
Subject: [PATCH] cxxabi.h: Make all declarations have default visibility.

	* libsupc++/cxxabi.h: Make all declarations have default
	visibility.
	* libsupc++/exception: Likewise.
	* libsupc++/new: Likewise.
	* libsupc++/typeinfo: Likewise.
	* libsupc++/unwind-cxx.h: Likewise.
	* libsupc++/eh_alloc.cc (__cxa_allocate_exception): Put it into
	the __cxxabiv1 namespace.
	(__cxa_free_exception): Likewise.
	* libsupc++/eh_aux_runtime.cc (__cxa_bad_cast): Likewise.
	(__cxa_bad_typeid): Likewise.
	* libsupc++/eh_catch.cc (__cxa_begin_catch): Likewise.
	(__cxa_end_catch): Likewise.
	* libsupc++/eh_globals.cc (__cxa_get_globals_fast): Likewise.
	(__cxa_get_globals): Likewise.
	* libsupc++/eh_throw.cc (__cxa_throw): Likewise.
	(__cxa_rethrow): Likewise.
	* libsupc++/pure.cc (__cxa_pure_virtual): Likewise.
	* libsupc++/eh_type.cc: Include <cxxabi.h>.

From-SVN: r85463
---
 libstdc++-v3/ChangeLog                   | 20 ++++++++++++++++++++
 libstdc++-v3/libsupc++/cxxabi.h          |  4 ++++
 libstdc++-v3/libsupc++/eh_alloc.cc       |  4 ++--
 libstdc++-v3/libsupc++/eh_aux_runtime.cc |  4 ++--
 libstdc++-v3/libsupc++/eh_catch.cc       |  4 ++--
 libstdc++-v3/libsupc++/eh_globals.cc     |  4 ++--
 libstdc++-v3/libsupc++/eh_throw.cc       |  6 +++---
 libstdc++-v3/libsupc++/eh_type.cc        |  1 +
 libstdc++-v3/libsupc++/exception         |  4 ++++
 libstdc++-v3/libsupc++/new               |  4 ++++
 libstdc++-v3/libsupc++/pure.cc           |  3 ++-
 libstdc++-v3/libsupc++/typeinfo          |  4 ++++
 libstdc++-v3/libsupc++/unwind-cxx.h      |  4 ++++
 13 files changed, 54 insertions(+), 12 deletions(-)

diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 2ed6f75a8c3a..68a7ad3535ec 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,25 @@
 2004-08-02  Mark Mitchell  <mark@codesourcery.com>
 
+	* libsupc++/cxxabi.h: Make all declarations have default
+	visibility.
+	* libsupc++/exception: Likewise.
+	* libsupc++/new: Likewise.
+	* libsupc++/typeinfo: Likewise.
+	* libsupc++/unwind-cxx.h: Likewise.
+	* libsupc++/eh_alloc.cc (__cxa_allocate_exception): Put it into
+	the __cxxabiv1 namespace.
+	(__cxa_free_exception): Likewise.
+	* libsupc++/eh_aux_runtime.cc (__cxa_bad_cast): Likewise.
+	(__cxa_bad_typeid): Likewise.
+	* libsupc++/eh_catch.cc (__cxa_begin_catch): Likewise.
+	(__cxa_end_catch): Likewise.
+	* libsupc++/eh_globals.cc (__cxa_get_globals_fast): Likewise.
+	(__cxa_get_globals): Likewise.
+	* libsupc++/eh_throw.cc (__cxa_throw): Likewise.
+	(__cxa_rethrow): Likewise.
+	* libsupc++/pure.cc (__cxa_pure_virtual): Likewise.
+	* libsupc++/eh_type.cc: Include <cxxabi.h>.
+
 	* Makefile.am (hosted_source): Add libmath and testsuite.
 	(SUBDIRS): Remove them.
 	* acinclude.m4: (GLIBCXX_ENABLED_HOSTED): Default to freestanding
diff --git a/libstdc++-v3/libsupc++/cxxabi.h b/libstdc++-v3/libsupc++/cxxabi.h
index f1f74e7fcd9a..b85019588df7 100644
--- a/libstdc++-v3/libsupc++/cxxabi.h
+++ b/libstdc++-v3/libsupc++/cxxabi.h
@@ -42,6 +42,8 @@
 #ifndef _CXXABI_H
 #define _CXXABI_H 1
 
+#pragma GCC visibility push(default)
+
 #include <stddef.h>
 #include <bits/cxxabi_tweaks.h>
  
@@ -523,4 +525,6 @@ namespace abi = __cxxabiv1;
 
 #endif // __cplusplus
 
+#pragma GCC visibility pop
+
 #endif // __CXXABI_H 
diff --git a/libstdc++-v3/libsupc++/eh_alloc.cc b/libstdc++-v3/libsupc++/eh_alloc.cc
index dbf007e09d84..4728bcbf380f 100644
--- a/libstdc++-v3/libsupc++/eh_alloc.cc
+++ b/libstdc++-v3/libsupc++/eh_alloc.cc
@@ -107,7 +107,7 @@ emergency_mutex_init ()
 
 
 extern "C" void *
-__cxa_allocate_exception(std::size_t thrown_size) throw()
+__cxxabiv1::__cxa_allocate_exception(std::size_t thrown_size) throw()
 {
   void *ret;
 
@@ -154,7 +154,7 @@ __cxa_allocate_exception(std::size_t thrown_size) throw()
 
 
 extern "C" void
-__cxa_free_exception(void *vptr) throw()
+__cxxabiv1::__cxa_free_exception(void *vptr) throw()
 {
   char *ptr = (char *) vptr;
   if (ptr >= &emergency_buffer[0][0]
diff --git a/libstdc++-v3/libsupc++/eh_aux_runtime.cc b/libstdc++-v3/libsupc++/eh_aux_runtime.cc
index 95c0e2588c90..eb30fbdab057 100644
--- a/libstdc++-v3/libsupc++/eh_aux_runtime.cc
+++ b/libstdc++-v3/libsupc++/eh_aux_runtime.cc
@@ -35,7 +35,7 @@
 #include "exception_defines.h"
 
 extern "C" void
-__cxa_bad_cast ()
+__cxxabiv1::__cxa_bad_cast ()
 {
 #ifdef __EXCEPTIONS  
   throw std::bad_cast();
@@ -45,7 +45,7 @@ __cxa_bad_cast ()
 }
 
 extern "C" void
-__cxa_bad_typeid ()
+__cxxabiv1::__cxa_bad_typeid ()
 {
 #ifdef __EXCEPTIONS  
   throw std::bad_typeid();
diff --git a/libstdc++-v3/libsupc++/eh_catch.cc b/libstdc++-v3/libsupc++/eh_catch.cc
index 0d2196d44908..bdcbd7e085cb 100644
--- a/libstdc++-v3/libsupc++/eh_catch.cc
+++ b/libstdc++-v3/libsupc++/eh_catch.cc
@@ -35,7 +35,7 @@ using namespace __cxxabiv1;
 
 
 extern "C" void *
-__cxa_begin_catch (void *exc_obj_in) throw()
+__cxxabiv1::__cxa_begin_catch (void *exc_obj_in) throw()
 {
   _Unwind_Exception *exceptionObject
     = reinterpret_cast <_Unwind_Exception *>(exc_obj_in);
@@ -82,7 +82,7 @@ __cxa_begin_catch (void *exc_obj_in) throw()
 
 
 extern "C" void
-__cxa_end_catch ()
+__cxxabiv1::__cxa_end_catch ()
 {
   __cxa_eh_globals *globals = __cxa_get_globals_fast ();
   __cxa_exception *header = globals->caughtExceptions;
diff --git a/libstdc++-v3/libsupc++/eh_globals.cc b/libstdc++-v3/libsupc++/eh_globals.cc
index 42760229036b..b63fc1e89858 100644
--- a/libstdc++-v3/libsupc++/eh_globals.cc
+++ b/libstdc++-v3/libsupc++/eh_globals.cc
@@ -69,7 +69,7 @@ get_globals_init_once ()
 #endif
 
 extern "C" __cxa_eh_globals *
-__cxa_get_globals_fast () throw()
+__cxxabiv1::__cxa_get_globals_fast () throw()
 {
 #if __GTHREADS
   if (use_thread_key)
@@ -82,7 +82,7 @@ __cxa_get_globals_fast () throw()
 }
 
 extern "C" __cxa_eh_globals *
-__cxa_get_globals () throw()
+__cxxabiv1::__cxa_get_globals () throw()
 {
 #if __GTHREADS
   __cxa_eh_globals *g;
diff --git a/libstdc++-v3/libsupc++/eh_throw.cc b/libstdc++-v3/libsupc++/eh_throw.cc
index 55af4eedfa71..b02efdad6dcc 100644
--- a/libstdc++-v3/libsupc++/eh_throw.cc
+++ b/libstdc++-v3/libsupc++/eh_throw.cc
@@ -31,7 +31,6 @@
 #include <bits/c++config.h>
 #include "unwind-cxx.h"
 
-
 using namespace __cxxabiv1;
 
 
@@ -56,7 +55,8 @@ __gxx_exception_cleanup (_Unwind_Reason_Code code, _Unwind_Exception *exc)
 
 
 extern "C" void
-__cxa_throw (void *obj, std::type_info *tinfo, void (*dest) (void *))
+__cxxabiv1::__cxa_throw (void *obj, std::type_info *tinfo, 
+			 void (*dest) (void *))
 {
   __cxa_exception *header = __get_exception_header_from_obj (obj);
   header->exceptionType = tinfo;
@@ -81,7 +81,7 @@ __cxa_throw (void *obj, std::type_info *tinfo, void (*dest) (void *))
 }
 
 extern "C" void
-__cxa_rethrow ()
+__cxxabiv1::__cxa_rethrow ()
 {
   __cxa_eh_globals *globals = __cxa_get_globals ();
   __cxa_exception *header = globals->caughtExceptions;
diff --git a/libstdc++-v3/libsupc++/eh_type.cc b/libstdc++-v3/libsupc++/eh_type.cc
index edd5e7bd7c06..6dd4eedb9c64 100644
--- a/libstdc++-v3/libsupc++/eh_type.cc
+++ b/libstdc++-v3/libsupc++/eh_type.cc
@@ -29,6 +29,7 @@
 
 
 #include <typeinfo>
+#include <cxxabi.h>
 #include "unwind-cxx.h"
 
 namespace __cxxabiv1
diff --git a/libstdc++-v3/libsupc++/exception b/libstdc++-v3/libsupc++/exception
index 6a1a19460361..c2c8a15dc036 100644
--- a/libstdc++-v3/libsupc++/exception
+++ b/libstdc++-v3/libsupc++/exception
@@ -37,6 +37,8 @@
 #ifndef __EXCEPTION__
 #define __EXCEPTION__
 
+#pragma GCC visibility push(default)
+
 extern "C++" {
 
 namespace std 
@@ -117,4 +119,6 @@ namespace __gnu_cxx
   
 } // extern "C++"
 
+#pragma GCC visibility pop
+
 #endif
diff --git a/libstdc++-v3/libsupc++/new b/libstdc++-v3/libsupc++/new
index 00e99464b908..434720dcd371 100644
--- a/libstdc++-v3/libsupc++/new
+++ b/libstdc++-v3/libsupc++/new
@@ -41,6 +41,8 @@
 #include <cstddef>
 #include <exception>
 
+#pragma GCC visibility push(default)
+
 extern "C++" {
 
 namespace std 
@@ -98,4 +100,6 @@ inline void  operator delete[](void*, void*) throw() { }
 //@}
 } // extern "C++"
 
+#pragma GCC visibility pop
+
 #endif
diff --git a/libstdc++-v3/libsupc++/pure.cc b/libstdc++-v3/libsupc++/pure.cc
index 4536a5f9c766..2e75492e7050 100644
--- a/libstdc++-v3/libsupc++/pure.cc
+++ b/libstdc++-v3/libsupc++/pure.cc
@@ -28,6 +28,7 @@
 // the GNU General Public License.
 
 #include <bits/c++config.h>
+#include <cxxabi.h>
 #include "unwind-cxx.h"
 
 #if _GLIBCXX_HOSTED
@@ -48,7 +49,7 @@
 #endif
 
 extern "C" void
-__cxa_pure_virtual (void)
+__cxxabiv1::__cxa_pure_virtual (void)
 {
   writestr ("pure virtual method called\n");
   std::terminate ();
diff --git a/libstdc++-v3/libsupc++/typeinfo b/libstdc++-v3/libsupc++/typeinfo
index 1396baa6fc2a..46803ad4d147 100644
--- a/libstdc++-v3/libsupc++/typeinfo
+++ b/libstdc++-v3/libsupc++/typeinfo
@@ -37,6 +37,8 @@
 
 #include <exception>
 
+#pragma GCC visibility push(default)
+
 extern "C++" {
 
 namespace __cxxabiv1
@@ -152,5 +154,7 @@ namespace std
   };
 } // namespace std
 
+#pragma GCC visibility pop
+
 } // extern "C++"
 #endif
diff --git a/libstdc++-v3/libsupc++/unwind-cxx.h b/libstdc++-v3/libsupc++/unwind-cxx.h
index 1e17972ba50e..67ea5cc21100 100644
--- a/libstdc++-v3/libsupc++/unwind-cxx.h
+++ b/libstdc++-v3/libsupc++/unwind-cxx.h
@@ -40,6 +40,8 @@
 #include <cstddef>
 #include "unwind.h"
 
+#pragma GCC visibility push(default)
+
 namespace __cxxabiv1
 {
 
@@ -168,4 +170,6 @@ __get_exception_header_from_ue (_Unwind_Exception *exc)
 
 } /* namespace __cxxabiv1 */
 
+#pragma GCC visibility pop
+
 #endif // _UNWIND_CXX_H
-- 
GitLab