Date: Sun, 27 Jan 2013 13:28:44 +0000 From: David Chisnall <theraven@FreeBSD.org> To: toolchain@FreeBSD.org Subject: C++ runtime version patch for testing Message-ID: <EDDAA896-D752-450F-89A0-4831FB016AC5@FreeBSD.org>
next in thread | raw e-mail | index | archive | help
--Apple-Mail=_0476F75C-ABFF-4943-A958-52F5DA5521EF Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii Hi All, Here is a patch that, I believe, should fix the symbol version = mismatches between the runtime and the STL implementation. I have run = the exception tests from libcxxrt with this patch applied and: - libsupc++ & libstdc++ - libcxxrt & libstdc++ - libcxxrt & libc++ All tests pass for me now. Please let me know if there are any problems = with this, otherwise I'll aim to commit it today or tomorrow with a = 1-week MFC. David Index: gnu/lib/libsupc++/Version.map =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- gnu/lib/libsupc++/Version.map (revision 245840) +++ gnu/lib/libsupc++/Version.map (working copy) @@ -142,6 +142,28 @@ _ZdaPvRKSt9nothrow_t; _ZdlPv; _ZdlPvRKSt9nothrow_t; + extern "C++" { + std::set_new_handler*; + std::set_terminate*; + std::set_unexpected*; + std::bad_alloc*; + + 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"; + }; }; =20 CXXABI_1.3.1 { Index: lib/libcxxrt/Version.map =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- lib/libcxxrt/Version.map (revision 245840) +++ lib/libcxxrt/Version.map (working copy) @@ -209,18 +209,7 @@ =20 "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=3D(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()"; =20 =20 # Extensions @@ -243,70 +232,25 @@ CXXRT_1.0 { =20 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=3D=3D(std::type_info const&) const"; "std::type_info::operator!=3D(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=3D(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=3D(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=3D(std::bad_alloc const&)"; "std::exception::exception(std::exception const&)"; "std::exception::exception()"; "std::exception::exception(std::exception const&)"; "std::exception::exception()"; - "std::exception::~exception()"; - "std::exception::~exception()"; - "std::exception::~exception()"; "std::exception::operator=3D(std::exception const&)"; =20 =20 - "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"; =20 - "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"; =20 =20 - }; __cxa_allocate_dependent_exception; __cxa_current_primary_exception; @@ -317,6 +261,15 @@ =20 } CXXABI_1.3.1; =20 + +GLIBCXX_3.4.9 { + extern "C++" { + "std::bad_typeid::what() const"; + "std::bad_cast::what() const"; + "std::bad_alloc::what() const"; + }; +}; + GLIBCXX_3.4 { extern "C++" { "operator delete[](void*)"; @@ -327,5 +280,41 @@ "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::exception::~exception()"; + + std::set_new_handler*; + std::set_terminate*; + std::set_unexpected*; + std::exception*; + std::bad_alloc*; + std::bad_typeid*; + 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::exception"; + "typeinfo for std::bad_cast"; + "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::exception"; + "typeinfo name for std::type_info"; + }; }; --Apple-Mail=_0476F75C-ABFF-4943-A958-52F5DA5521EF Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.18 (Darwin) iQIcBAEBAgAGBQJRBSuNAAoJEKx65DEEsqIdCfIP+gLdpwTPdLYLFwc4aeWU+dp1 SG9BviCrEDWOtJ5uPr1J5GCDoXv3b0fzZarufx6OZ/M2DmarB0PzG0ILrQQldlVI xSDBlFJmCV4nWzBuLLoVL1qf7JF75aRre85+iAiOnayW9kn6WvXFCsUYO0iZqpJg A864hMFmQmQUbQmUeT7nGD9zBz49Bh1XLByTGcey77OHDhngKvpKsNWaw+dYG8lf ZAOhKDQQaa5i4fbcd08UENYs/uVqIqP9D5PHQP4vzd0eh/IgX8oac6feh6pdIrHv uN6WUkS/DGj5Yc5yzdGCD62n5qhpudI3zV8a1wK2G8PYrh3of0XprCFC1hEyL3zh qJNNLOUJL61GLTNk2jBfoj0T/JTppuxeinf6E51N+bDxg1zuoc9D/MY5uD0iDAYG Cw8W+Ygo4xHoW8Wu+m6BUHCh/c4jKNrhebCC1qyq0tWjX5w3N3YAovADUueusaTc I+2uJgXuPfiUoHGLKd+MIkWqCPKlHCyXrU2VltwdWpyFD9Xz1N3OSJELibJJFCV3 mcUwmP7zESAJf7Fjlq9W1s4cYQgD06mhFmQpHS9G8ws7ipE/6fjYua5C76Fv3g// i64fmcQnWYjEReKZP8M0+7852QlT4UWYC5Gy4mGlpbdDWXyhiL2EB+fuvemxwKzK YKHpqhwo7RmyDFvVwnOP =Ek76 -----END PGP SIGNATURE----- --Apple-Mail=_0476F75C-ABFF-4943-A958-52F5DA5521EF--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?EDDAA896-D752-450F-89A0-4831FB016AC5>