svn commit: r246368 - in stable/9: gnu/lib/libsupc++ lib/libcxxrt

Dimitry Andric dim at FreeBSD.org
Tue Feb 5 19:10:51 UTC 2013


Author: dim
Date: Tue Feb  5 19:10:50 2013
New Revision: 246368
URL: http://svnweb.freebsd.org/changeset/base/246368

Log:
  MFC r246028 (by theraven):
  
    Fix some symbol version mismatches between libstdc++ and libsupc++/libcxxrt
    that were causing the runtime and STL libraries to see different versions of
    various classes and functions when libstdc++ is used as a filter.
  
    Note: This changes the ABI for libcxxrt, but libcxxrt is currently only in
    -STABLE for testing and is not used by anything unless explicitly enabled by
    the end user.  No default compiler configurations use it.
  
    libc++ will need to be recompiled after this change.  make buildworld will do
    this automatically, but make in lib/libc++ will not necessarily work unless the
    new libcxxrt is installed first.
  
    PR:		kern/171610, stand/175453
    Reviewed by:	kib
  
  MFC r246297:
  
    Add several missing symbols to libcxxrt's symbol version map, and remove
    a few duplicates.  This should fix building world with -stdlib=libc++
    after r246028.
  
    Submitted by:	Yamaya Takashi <yamayan at kbh.biglobe.ne.jp>

Modified:
  stable/9/gnu/lib/libsupc++/Version.map
  stable/9/lib/libcxxrt/Version.map
Directory Properties:
  stable/9/gnu/lib/libsupc++/   (props changed)
  stable/9/lib/libcxxrt/   (props changed)

Modified: stable/9/gnu/lib/libsupc++/Version.map
==============================================================================
--- stable/9/gnu/lib/libsupc++/Version.map	Tue Feb  5 18:55:09 2013	(r246367)
+++ stable/9/gnu/lib/libsupc++/Version.map	Tue Feb  5 19:10:50 2013	(r246368)
@@ -142,8 +142,37 @@ GLIBCXX_3.4 {
     _ZdaPvRKSt9nothrow_t;
     _ZdlPv;
     _ZdlPvRKSt9nothrow_t;
+    extern "C++" {
+      std::set_new_handler*;
+      std::set_terminate*;
+      std::set_unexpected*;
+
+      std::bad_alloc;
+      std::bad_cast;
+      std::exception*;
+
+      "typeinfo for std::bad_alloc";
+      "typeinfo for std::bad_cast";
+      "typeinfo for std::exception";
+
+      "typeinfo name for std::bad_alloc";
+      "typeinfo name for std::bad_cast";
+      "typeinfo name for std::exception";
+
+      "vtable for std::bad_alloc";
+      "vtable for std::bad_cast";
+      "vtable for std::exception";
+    };
 };
 
+GLIBCXX_3.4.9 {
+    extern "C++" {
+        "std::bad_alloc::what() const";
+        "std::bad_cast::what() const";
+        "std::bad_typeid::what() const";
+    };
+} GLIBCXX_3.4;
+
 CXXABI_1.3.1 {
 
     __cxa_get_exception_ptr;

Modified: stable/9/lib/libcxxrt/Version.map
==============================================================================
--- stable/9/lib/libcxxrt/Version.map	Tue Feb  5 18:55:09 2013	(r246367)
+++ stable/9/lib/libcxxrt/Version.map	Tue Feb  5 19:10:50 2013	(r246368)
@@ -208,19 +208,7 @@ CXXABI_1.3 {
         "typeinfo name for __cxxabiv1::__vmi_class_type_info";
 
         "std::type_info::type_info(std::type_info const&)";
-        "std::type_info::type_info(std::type_info const&)";
-        "std::type_info::~type_info()";
-        "std::type_info::~type_info()";
-        "std::type_info::~type_info()";
         "std::type_info::operator=(std::type_info const&)";
-        "std::unexpected()";
-        "std::get_terminate()";
-        "std::set_terminate(void (*)())";
-        "std::get_unexpected()";
-        "std::set_unexpected(void (*)())";
-        "std::set_new_handler(void (*)())";
-        "std::uncaught_exception()";
-        "std::terminate()";
 
 
         # Extensions
@@ -243,69 +231,22 @@ CXXABI_1.3.1 {
 CXXRT_1.0 {
 
     extern "C++" {
-        "std::bad_cast::what() const";
-        "std::bad_typeid::what() const";
-        "std::bad_alloc::what() const";
-        "std::exception::what() const";
         "std::type_info::name() const";
         "std::type_info::before(std::type_info const&) const";
         "std::type_info::operator==(std::type_info const&) const";
         "std::type_info::operator!=(std::type_info const&) const";
-        "std::bad_typeid::bad_typeid(std::bad_typeid const&)";
-        "std::bad_typeid::bad_typeid()";
-        "std::bad_typeid::bad_typeid(std::bad_typeid const&)";
-        "std::bad_typeid::bad_typeid()";
-        "std::bad_typeid::~bad_typeid()";
-        "std::bad_typeid::~bad_typeid()";
-        "std::bad_typeid::~bad_typeid()";
-        "std::bad_typeid::operator=(std::bad_typeid const&)";
         "std::bad_cast::bad_cast(std::bad_cast const&)";
         "std::bad_cast::bad_cast()";
-        "std::bad_cast::bad_cast(std::bad_cast const&)";
-        "std::bad_cast::bad_cast()";
-        "std::bad_cast::~bad_cast()";
-        "std::bad_cast::~bad_cast()";
-        "std::bad_cast::~bad_cast()";
         "std::bad_cast::operator=(std::bad_cast const&)";
-        "std::bad_alloc::bad_alloc(std::bad_alloc const&)";
-        "std::bad_alloc::bad_alloc()";
-        "std::bad_alloc::bad_alloc(std::bad_alloc const&)";
-        "std::bad_alloc::bad_alloc()";
-        "std::bad_alloc::~bad_alloc()";
-        "std::bad_alloc::~bad_alloc()";
-        "std::bad_alloc::~bad_alloc()";
-        "std::bad_alloc::operator=(std::bad_alloc const&)";
-        "std::exception::exception(std::exception const&)";
-        "std::exception::exception()";
+        "std::bad_typeid::bad_typeid(std::bad_typeid const&)";
+        "std::bad_typeid::bad_typeid()";
+        "std::bad_typeid::operator=(std::bad_typeid const&)";
         "std::exception::exception(std::exception const&)";
         "std::exception::exception()";
-        "std::exception::~exception()";
-        "std::exception::~exception()";
-        "std::exception::~exception()";
         "std::exception::operator=(std::exception const&)";
-
-
-        "vtable for std::bad_typeid";
-        "vtable for std::bad_cast";
-        "vtable for std::bad_alloc";
-        "vtable for std::exception";
-        "vtable for std::type_info";
-        "typeinfo for std::bad_typeid";
-        "typeinfo for std::bad_cast";
-        "typeinfo for std::bad_alloc";
-        "typeinfo for std::exception";
-        "typeinfo for std::type_info";
-        "typeinfo name for std::bad_typeid";
-        "typeinfo name for std::bad_cast";
-        "typeinfo name for std::bad_alloc";
-        "typeinfo name for std::exception";
-        "typeinfo name for std::type_info";
-
-        "std::type_info::__is_function_p() const";
-        "std::type_info::__do_upcast(__cxxabiv1::__class_type_info const*, void**) const";
-        "std::type_info::__is_pointer_p() const";
-
-
+        "std::bad_alloc::bad_alloc(std::bad_alloc const&)";
+        "std::bad_alloc::bad_alloc()";
+        "std::bad_alloc::operator=(std::bad_alloc const&)";
 
     };
     __cxa_allocate_dependent_exception;
@@ -317,6 +258,7 @@ CXXRT_1.0 {
 
 } CXXABI_1.3.1;
 
+
 GLIBCXX_3.4 {
     extern "C++" {
         "operator delete[](void*)";
@@ -327,5 +269,51 @@ GLIBCXX_3.4 {
         "operator new[](unsigned long)";
         "operator new(unsigned long)";
         "operator new(unsigned long, std::nothrow_t const&)";
+
+        "std::unexpected()";
+        "std::get_terminate()";
+        "std::get_unexpected()";
+        "std::uncaught_exception()";
+        "std::terminate()";
+
+        "std::type_info::~type_info()";
+        "std::bad_cast::~bad_cast()";
+        "std::bad_typeid::~bad_typeid()";
+        "std::exception::~exception()";
+        "std::bad_alloc::~bad_alloc()";
+
+        "std::exception::what() const";
+
+        std::set_new_handler*;
+        std::set_terminate*;
+        std::set_unexpected*;
+        std::type_info::__*;
+
+        "vtable for std::bad_alloc";
+        "vtable for std::bad_cast";
+        "vtable for std::bad_typeid";
+        "vtable for std::exception";
+        "vtable for std::type_info";
+
+        "typeinfo for std::bad_alloc";
+        "typeinfo for std::bad_typeid";
+        "typeinfo for std::bad_cast";
+        "typeinfo for std::exception";
+        "typeinfo for std::type_info";
+        "typeinfo name for std::bad_alloc";
+        "typeinfo name for std::bad_typeid";
+        "typeinfo name for std::bad_cast";
+        "typeinfo name for std::exception";
+        "typeinfo name for std::type_info";
+
     };
 };
+
+GLIBCXX_3.4.9 {
+    extern "C++" {
+        "std::bad_typeid::what() const";
+        "std::bad_cast::what() const";
+        "std::bad_alloc::what() const";
+    };
+} GLIBCXX_3.4;
+


More information about the svn-src-stable-9 mailing list