From nobody Thu Jan 25 17:44:09 2024 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4TLSqy2xrkz57hTw; Thu, 25 Jan 2024 17:44:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TLSqy1sF3z43Cr; Thu, 25 Jan 2024 17:44:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1706204654; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jtdC0QW/Z4VjTCtB66xzAg3M5QlT8Jla3vxGkXg02QQ=; b=IAIjjsLH+iVDGU3f8lqcQsx2pApLqEp+XTGzPvPYhRiePYLK7EJfSWbyDCH1db0C3xpBqk GZ8Mh7BS2iTTH890IlNhqEdRpZZBIuAv8vvlMM9hcr1P4rVcxb7nyX7w0OcxjKn1CNnhnS onuNF882ok2Z7sF2tpKUXTF0k082PgWabTg6l1zAXrZpiQJdIyojvtyam9aoPRcmoSUGTQ B9oQfzFt2irr3DUAvByhYh7wpMTrvyoaXavKIEqDVJefRjjpcJYeKB2hfi6hsgMu4Yhyjm +5oCQt/0fGeFjM/YDpsw5E8OVx8/+L9SZqSMF1bDZ/wxT8Mi56z9NsfIWc4btg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1706204654; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jtdC0QW/Z4VjTCtB66xzAg3M5QlT8Jla3vxGkXg02QQ=; b=MEQQyV5USnOzUH3hickS6BOu1iKJkmxPue4YfEh9jqVmjJuoTDSsJHsj0L5fPKeseWiGEJ aeyVFU7zYm71bsPGjjcr/QZKqzeXKfUbwjk3AgIFD77oCT1kllBUgIWTgvRmhHrdTILlBT 9IOSktQUNo9p4hpBoVmpb4fvDuC/nCdH7SCPAidKD6MU4yXlGamDW6Vy30jYYpWmtxBoqB RR0iAnoqvwN4qyEjGpxxkrs+/E/fd3EPcrX/sE6zN+wokKBD83lXrbPniVCvOBk4l5Rl84 XXq5SFU/qsLHmvj7Hsz/ZB7LBqWMpgc/B5cSdZSGq/+Y7iia9Tn6jW95M0qFgA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1706204654; a=rsa-sha256; cv=none; b=G4ll5/o7yJE2lkw4ThjqwZvlgZlB/3z6uDabymzr/ND7TFKhZmnmAMDSerAdazaHeVOkLe BIsOd0rWTKVcJ8U7C9z6l7ryBoY2XQ7uPpfhWMxSwOEHUUMhgbjngblrZFMZX2w/kjrDsA V4ArReGOBmT7EPd4mcx4SH//OTXiJKMlGjDjcAdalgBsKseH9qM+Z541it24PleGOKRjTz lQL1Z24RfO8h+tG6lwG0c8SnCd4CTEulFw+tgr1dTiS5UXRtDT1PF7sQJPICat5ukDnfIo 97H3aLznWHKwyXnir3zAIt/fTVwl/kLFiTzvDgHPKGBxynmw0YnqBLrgcV+Agw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4TLSqy0w0Dz16GD; Thu, 25 Jan 2024 17:44:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 40PHiEU5027803; Thu, 25 Jan 2024 17:44:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 40PHi9N8027797; Thu, 25 Jan 2024 17:44:09 GMT (envelope-from git) Date: Thu, 25 Jan 2024 17:44:09 GMT Message-Id: <202401251744.40PHi9N8027797@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Dimitry Andric Subject: git: ecf410623750 - main - Merge libcxxrt master 03c83f5a57be8c5b1a29a68de5638744f17d28ba List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dim X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: ecf4106237505fa9459ae871793b754334989c17 Auto-Submitted: auto-generated The branch main has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=ecf4106237505fa9459ae871793b754334989c17 commit ecf4106237505fa9459ae871793b754334989c17 Merge: e95025ed9388 156745f57594 Author: Dimitry Andric AuthorDate: 2024-01-25 17:41:44 +0000 Commit: Dimitry Andric CommitDate: 2024-01-25 17:43:23 +0000 Merge libcxxrt master 03c83f5a57be8c5b1a29a68de5638744f17d28ba Interesting fixes (* were already cherry-picked): - 03c83f5 add __cxa_init_primary_exception (#23) * 5d8a158 Fix two bugs in __cxa_end_cleanup() * b00c6c5 Insert padding in __cxa_dependent_exception * 45ca8b1 Insert padding in __cxa_exception struct for compatibility * f2e5509 Fix unlock in two-word version and add missing comment. - 6229590 Add an option for disabling emergency buffers. (#14) MFC after: 2 weeks contrib/libcxxrt/cxxabi.h | 8 ++++++++ contrib/libcxxrt/exception.cc | 44 +++++++++++++++++++++++++++++++++++-------- lib/libcxxrt/Version.map | 4 ++++ 3 files changed, 48 insertions(+), 8 deletions(-) diff --cc lib/libcxxrt/Version.map index 0d2dccbe2670,000000000000..a54b6a4daad5 mode 100644,000000..100644 --- a/lib/libcxxrt/Version.map +++ b/lib/libcxxrt/Version.map @@@ -1,394 -1,0 +1,398 @@@ +# Define the same version as the libsupc++ from gcc 4.2.1 so that we can use +# libcxxrt as a drop-in replacement. + +CXXABI_1.3 { + + global: + + # ABI functions with C linkage + __cxa_allocate_exception; + __cxa_bad_cast; + __cxa_bad_typeid; + __cxa_begin_catch; + __cxa_begin_cleanup; + __cxa_call_unexpected; + __cxa_current_exception_type; + __cxa_demangle; + __cxa_end_catch; + __cxa_end_cleanup; + __cxa_free_exception; + __cxa_get_globals; + __cxa_get_globals_fast; + __cxa_guard_abort; + __cxa_guard_acquire; + __cxa_guard_release; + __cxa_pure_virtual; + __cxa_rethrow; + __cxa_throw; + __cxa_throw_bad_array_new_length; + __cxa_type_match; + __cxa_vec_cctor; + __cxa_vec_cleanup; + __cxa_vec_ctor; + __cxa_vec_delete2; + __cxa_vec_delete3; + __cxa_vec_delete; + __cxa_vec_dtor; + __cxa_vec_new2; + __cxa_vec_new3; + __cxa_vec_new; + __dynamic_cast; + __gxx_personality_sj0; + __gxx_personality_v0; + + extern "C++" { + # Type info classes and their destructors + "__cxxabiv1::__array_type_info"; + "__cxxabiv1::__array_type_info::~__array_type_info()"; + "__cxxabiv1::__class_type_info"; + "__cxxabiv1::__class_type_info::~__class_type_info()"; + "__cxxabiv1::__enum_type_info"; + "__cxxabiv1::__enum_type_info::~__enum_type_info()"; + "__cxxabiv1::__function_type_info::"; + "__cxxabiv1::__function_type_info::~__function_type_info()"; + "__cxxabiv1::__fundamental_type_info"; + "__cxxabiv1::__fundamental_type_info::~__fundamental_type_info()"; + "__cxxabiv1::__pbase_type_info"; + "__cxxabiv1::__pbase_type_info::~__pbase_type_info()"; + "__cxxabiv1::__pointer_to_member_type_info"; + "__cxxabiv1::__pointer_to_member_type_info::~__pointer_to_member_type_info()"; + "__cxxabiv1::__pointer_type_info"; + "__cxxabiv1::__pointer_type_info::~__pointer_type_info()"; + "__cxxabiv1::__si_class_type_info"; + "__cxxabiv1::__si_class_type_info::~__si_class_type_info()"; + "__cxxabiv1::__vmi_class_type_info"; + "__cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info()"; + + # vtables typeinfo classes. + "vtable for __cxxabiv1::__array_type_info"; + "vtable for __cxxabiv1::__class_type_info"; + "vtable for __cxxabiv1::__enum_type_info"; + "vtable for __cxxabiv1::__function_type_info"; + "vtable for __cxxabiv1::__fundamental_type_info"; + "vtable for __cxxabiv1::__pbase_type_info"; + "vtable for __cxxabiv1::__pointer_to_member_type_info"; + "vtable for __cxxabiv1::__pointer_type_info"; + "vtable for __cxxabiv1::__si_class_type_info"; + "vtable for __cxxabiv1::__vmi_class_type_info"; + + # Type info for built-in types + "typeinfo for bool const*"; + "typeinfo for bool"; + "typeinfo for char const*"; + "typeinfo for char"; + "typeinfo for double const*"; + "typeinfo for double"; + "typeinfo for float const*"; + "typeinfo for float"; + "typeinfo for int const*"; + "typeinfo for int"; + "typeinfo for long const*"; + "typeinfo for long double const*"; + "typeinfo for long double"; + "typeinfo for long long const*"; + "typeinfo for long long"; + "typeinfo for long"; + "typeinfo for short const*"; + "typeinfo for short"; + "typeinfo for signed char const*"; + "typeinfo for signed char"; + "typeinfo for unsigned char const*"; + "typeinfo for unsigned char"; + "typeinfo for unsigned int const*"; + "typeinfo for unsigned int"; + "typeinfo for unsigned long const*"; + "typeinfo for unsigned long long const*"; + "typeinfo for unsigned long long"; + "typeinfo for unsigned long"; + "typeinfo for unsigned short const*"; + "typeinfo for unsigned short"; + "typeinfo for void const*"; + "typeinfo for void"; + "typeinfo for wchar_t const*"; + "typeinfo for wchar_t"; + + "typeinfo for bool*"; + "typeinfo for wchar_t*"; + "typeinfo for short*"; + "typeinfo for char*"; + "typeinfo for unsigned char*"; + "typeinfo for long long*"; + "typeinfo for unsigned short*"; + "typeinfo for long*"; + "typeinfo for double*"; + "typeinfo for unsigned long*"; + "typeinfo for unsigned long long*"; + "typeinfo for int*"; + "typeinfo for long double*"; + "typeinfo for signed char*"; + "typeinfo for void*"; + "typeinfo for unsigned int*"; + "typeinfo for float*"; + + "typeinfo for __cxxabiv1::__array_type_info"; + "typeinfo for __cxxabiv1::__class_type_info"; + "typeinfo for __cxxabiv1::__enum_type_info"; + "typeinfo for __cxxabiv1::__function_type_info"; + "typeinfo for __cxxabiv1::__fundamental_type_info"; + "typeinfo for __cxxabiv1::__pbase_type_info"; + "typeinfo for __cxxabiv1::__pointer_to_member_type_info"; + "typeinfo for __cxxabiv1::__pointer_type_info"; + "typeinfo for __cxxabiv1::__si_class_type_info"; + "typeinfo for __cxxabiv1::__vmi_class_type_info"; + + # Typeinfo names. + + "typeinfo name for unsigned char const*"; + "typeinfo name for long const*"; + "typeinfo name for double const*"; + "typeinfo name for unsigned long long const*"; + "typeinfo name for unsigned short const*"; + "typeinfo name for char const*"; + "typeinfo name for long long const*"; + "typeinfo name for short const*"; + "typeinfo name for unsigned int const*"; + "typeinfo name for float const*"; + "typeinfo name for bool const*"; + "typeinfo name for wchar_t const*"; + "typeinfo name for int const*"; + "typeinfo name for unsigned long const*"; + "typeinfo name for void const*"; + "typeinfo name for long double const*"; + "typeinfo name for signed char const*"; + "typeinfo name for wchar_t"; + "typeinfo name for short"; + "typeinfo name for char"; + "typeinfo name for float"; + "typeinfo name for void"; + "typeinfo name for unsigned int"; + "typeinfo name for bool"; + "typeinfo name for signed char"; + "typeinfo name for long double"; + "typeinfo name for int"; + "typeinfo name for unsigned long long"; + "typeinfo name for unsigned long"; + "typeinfo name for unsigned char"; + "typeinfo name for long"; + "typeinfo name for long long"; + "typeinfo name for unsigned short"; + "typeinfo name for double"; + + "typeinfo name for bool*"; + "typeinfo name for wchar_t*"; + "typeinfo name for short*"; + "typeinfo name for char*"; + "typeinfo name for unsigned char*"; + "typeinfo name for long long*"; + "typeinfo name for unsigned short*"; + "typeinfo name for long*"; + "typeinfo name for double*"; + "typeinfo name for unsigned long*"; + "typeinfo name for unsigned long long*"; + "typeinfo name for int*"; + "typeinfo name for long double*"; + "typeinfo name for signed char*"; + "typeinfo name for void*"; + "typeinfo name for unsigned int*"; + "typeinfo name for float*"; + + "typeinfo name for __cxxabiv1::__array_type_info"; + "typeinfo name for __cxxabiv1::__class_type_info"; + "typeinfo name for __cxxabiv1::__enum_type_info"; + "typeinfo name for __cxxabiv1::__function_type_info"; + "typeinfo name for __cxxabiv1::__fundamental_type_info"; + "typeinfo name for __cxxabiv1::__pbase_type_info"; + "typeinfo name for __cxxabiv1::__pointer_to_member_type_info"; + "typeinfo name for __cxxabiv1::__pointer_type_info"; + "typeinfo name for __cxxabiv1::__si_class_type_info"; + "typeinfo name for __cxxabiv1::__vmi_class_type_info"; + + "std::type_info::type_info(std::type_info const&)"; + "std::type_info::operator=(std::type_info const&)"; + + + # Extensions + "pathscale::set_terminate(void (*)())"; + "pathscale::set_unexpected(void (*)())"; + "pathscale::set_use_thread_local_handlers(bool)"; + }; + + # C++11 typeinfo not understood by ld.bfd 2.17.50 + # std::nullptr_t + _ZTIDn;_ZTIPDn;_ZTIPKDn; + # char16_t + _ZTIDi;_ZTIPDi;_ZTIPKDi; + # char32_t + _ZTIDs;_ZTIPDs;_ZTIPKDs; + # IEEE 754r decimal floating point + _ZTIDd;_ZTIPDd;_ZTIPKDd; + _ZTIDe;_ZTIPDe;_ZTIPKDe; + _ZTIDf;_ZTIPDf;_ZTIPKDf; + # IEEE 754r half-precision floating point + _ZTIDh;_ZTIPDh;_ZTIPKDh; + + # C++11 typeinfo name not understood by ld.bfd 2.17.50 + # std::nullptr_t + _ZTSDn;_ZTSPDn;_ZTSPKDn; + # char16_t + _ZTSDi;_ZTSPDi;_ZTSPKDi; + # char32_t + _ZTSDs;_ZTSPDs;_ZTSPKDs; + # IEEE 754r decimal floating point + _ZTSDd;_ZTSPDd;_ZTSPKDd; + _ZTSDe;_ZTSPDe;_ZTSPKDe; + _ZTSDf;_ZTSPDf;_ZTSPKDf; + # IEEE 754r half-precision floating point + _ZTSDh;_ZTSPDh;_ZTSPKDh; + + local: + *; +}; + +CXXABI_1.3.1 { + __cxa_get_exception_ptr; +} CXXABI_1.3; + +CXXABI_1.3.5 { + extern "C++" { + "typeinfo for __int128 const*"; + "typeinfo for __int128"; + "typeinfo for __int128*"; + "typeinfo for unsigned __int128 const*"; + "typeinfo for unsigned __int128"; + "typeinfo for unsigned __int128*"; + }; +} CXXABI_1.3.1; + +CXXABI_1.3.6 { + __cxa_deleted_virtual; +} CXXABI_1.3.5; + +CXXABI_1.3.9 { + extern "C++" { + "typeinfo name for __int128 const*"; + "typeinfo name for __int128"; + "typeinfo name for __int128*"; + "typeinfo name for unsigned __int128 const*"; + "typeinfo name for unsigned __int128"; + "typeinfo name for unsigned __int128*"; + "operator delete[](void*, unsigned int)"; + "operator delete(void*, unsigned int)"; + "operator delete[](void*, unsigned long)"; + "operator delete(void*, unsigned long)"; + }; +} CXXABI_1.3.6; + ++CXXABI_1.3.11 { ++ __cxa_init_primary_exception; ++} CXXABI_1.3.9; ++ +CXXRT_1.0 { + + extern "C++" { + "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_cast::bad_cast(std::bad_cast const&)"; + "std::bad_cast::bad_cast()"; + "std::bad_cast::operator=(std::bad_cast const&)"; + "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::operator=(std::exception const&)"; + "std::bad_alloc::bad_alloc(std::bad_alloc const&)"; + "std::bad_alloc::bad_alloc()"; + "std::bad_alloc::operator=(std::bad_alloc const&)"; + "std::bad_array_new_length::bad_array_new_length(std::bad_array_new_length const&)"; + "std::bad_array_new_length::bad_array_new_length()"; + "std::bad_array_new_length::operator=(std::bad_array_new_length const&)"; + + }; + __cxa_allocate_dependent_exception; + __cxa_current_primary_exception; + __cxa_decrement_exception_refcount; + __cxa_free_dependent_exception; + __cxa_increment_exception_refcount; + __cxa_rethrow_primary_exception; + +} CXXABI_1.3.6; + + +GLIBCXX_3.4 { + extern "C++" { + "operator delete[](void*)"; + "operator delete(void*)"; + "operator new[](unsigned int)"; + "operator new(unsigned int)"; + "operator new(unsigned int, std::nothrow_t const&)"; + "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::bad_array_new_length::~bad_array_new_length()"; + + "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"; + "vtable for std::bad_array_new_length"; + + "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 for std::bad_array_new_length"; + "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"; + "typeinfo name for std::bad_array_new_length"; + + }; +}; + +GLIBCXX_3.4.9 { + extern "C++" { + "std::bad_typeid::what() const"; + "std::bad_cast::what() const"; + "std::bad_alloc::what() const"; + "std::bad_array_new_length::what() const"; + }; +} GLIBCXX_3.4; + +GLIBCXX_3.4.20 { + extern "C++" { + "std::get_new_handler()"; + }; +} GLIBCXX_3.4.9; + +GLIBCXX_3.4.22 { + extern "C++" { + "std::uncaught_exceptions()"; + }; +} GLIBCXX_3.4.20; +