[libcxx-commits] [libcxxabi] [libcxx] [libc++] Always keep libc++abi re-exports up-to-date (PR #79012)
Louis Dionne via libcxx-commits
libcxx-commits at lists.llvm.org
Wed Jan 24 06:25:40 PST 2024
https://github.com/ldionne updated https://github.com/llvm/llvm-project/pull/79012
>From b5cacaa8f56cbd6c55a1f295eaa1f4f3030f05c9 Mon Sep 17 00:00:00 2001
From: Louis Dionne <ldionne.2 at gmail.com>
Date: Mon, 22 Jan 2024 10:48:57 -0500
Subject: [PATCH 1/3] [libc++] Always keep libc++abi re-exports up-to-date
Previously, the list of libc++abi symbols that we re-export from libc++
would be partly encoded in libc++abi (and re-exported automatically via
the cxxabi-reexports target), and partly hard-coded in libcxx/lib/libc++abi.exp.
The duplication of information led to symbols not being exported from
libc++ after being added to libc++abi when they should have been.
This patch removes the duplication of information. After this patch,
the full list of symbols to re-export from libc++abi is handled by the
cxxabi-reexports target and is stored in libcxxabi.
The symbols newly re-exported from libc++ are mainly new fundamental
typeinfos and a bunch of functions and classes that are part of
libc++abi but are most likely implementation details. In the future,
it would be possible to try to trim down the set of what we export from
libc++abi (and hence what we re-export from libc++) to remove some
implementation detail symbols.
Fixes #79008
---
libcxx/lib/abi/CHANGELOG.TXT | 65 ++++
...bcxxabi.v1.stable.exceptions.nonew.abilist | 98 +++++
libcxx/src/CMakeLists.txt | 9 +-
libcxxabi/lib/cxxabiv1.exp | 38 ++
libcxxabi/lib/fundamental-types.exp | 153 ++++++++
libcxxabi/lib/itanium-base.exp | 325 ----------------
...{exceptions.exp => itanium-exceptions.exp} | 1 +
libcxxabi/lib/new-delete.exp | 1 +
.../lib/std-exceptions.exp | 350 +++++-------------
libcxxabi/lib/std-misc.exp | 9 +
libcxxabi/src/CMakeLists.txt | 38 +-
11 files changed, 474 insertions(+), 613 deletions(-)
create mode 100644 libcxxabi/lib/cxxabiv1.exp
create mode 100644 libcxxabi/lib/fundamental-types.exp
rename libcxxabi/lib/{exceptions.exp => itanium-exceptions.exp} (84%)
rename libcxx/lib/libc++abi.exp => libcxxabi/lib/std-exceptions.exp (51%)
create mode 100644 libcxxabi/lib/std-misc.exp
diff --git a/libcxx/lib/abi/CHANGELOG.TXT b/libcxx/lib/abi/CHANGELOG.TXT
index 1179c253f18c8f7..c451f7503a7124b 100644
--- a/libcxx/lib/abi/CHANGELOG.TXT
+++ b/libcxx/lib/abi/CHANGELOG.TXT
@@ -12,6 +12,71 @@ To generate a summary, re-generate the new ABI list using the
New entries should be added directly below the "Version" header.
+------------
+Version 19.0
+------------
+
+* [libc++] Always keep libc++abi re-exports up-to-date
+
+ This patch makes sure that the set of libc++abi symbols re-exported from libc++
+ is up-to-date with the symbols that libc++abi re-exports. As such, it adds several
+ symbols that were left out of the libc++ re-exports list. Exporting new symbols
+ is not an ABI break.
+
+ <arch>-apple-darwin
+ -------------------
+ Symbol reexported: ___cxa_current_primary_exception
+ Symbol reexported: ___cxa_decrement_exception_refcount
+ Symbol reexported: ___cxa_increment_exception_refcount
+ Symbol reexported: ___cxa_new_handler
+ Symbol reexported: ___cxa_rethrow_primary_exception
+ Symbol reexported: ___cxa_terminate_handler
+ Symbol reexported: ___cxa_uncaught_exception
+ Symbol reexported: ___cxa_unexpected_handler
+ Symbol reexported: __ZTIDh
+ Symbol reexported: __ZTIDu
+ Symbol reexported: __ZTIg
+ Symbol reexported: __ZTIn
+ Symbol reexported: __ZTIN10__cxxabiv116__enum_type_infoE
+ Symbol reexported: __ZTIN10__cxxabiv116__shim_type_infoE
+ Symbol reexported: __ZTIN10__cxxabiv117__array_type_infoE
+ Symbol reexported: __ZTIN10__cxxabiv117__class_type_infoE
+ Symbol reexported: __ZTIN10__cxxabiv117__pbase_type_infoE
+ Symbol reexported: __ZTIN10__cxxabiv119__pointer_type_infoE
+ Symbol reexported: __ZTIN10__cxxabiv120__function_type_infoE
+ Symbol reexported: __ZTIN10__cxxabiv120__si_class_type_infoE
+ Symbol reexported: __ZTIN10__cxxabiv121__vmi_class_type_infoE
+ Symbol reexported: __ZTIN10__cxxabiv123__fundamental_type_infoE
+ Symbol reexported: __ZTIN10__cxxabiv129__pointer_to_member_type_infoE
+ Symbol reexported: __ZTIo
+ Symbol reexported: __ZTIPDh
+ Symbol reexported: __ZTIPDu
+ Symbol reexported: __ZTIPg
+ Symbol reexported: __ZTIPKDh
+ Symbol reexported: __ZTIPKDu
+ Symbol reexported: __ZTIPKg
+ Symbol reexported: __ZTIPKn
+ Symbol reexported: __ZTIPKo
+ Symbol reexported: __ZTIPn
+ Symbol reexported: __ZTIPo
+ Symbol reexported: __ZTSDh
+ Symbol reexported: __ZTSDu
+ Symbol reexported: __ZTSg
+ Symbol reexported: __ZTSn
+ Symbol reexported: __ZTSN10__cxxabiv116__shim_type_infoE
+ Symbol reexported: __ZTSo
+ Symbol reexported: __ZTSPDh
+ Symbol reexported: __ZTSPDu
+ Symbol reexported: __ZTSPg
+ Symbol reexported: __ZTSPKDh
+ Symbol reexported: __ZTSPKDu
+ Symbol reexported: __ZTSPKg
+ Symbol reexported: __ZTSPKn
+ Symbol reexported: __ZTSPKo
+ Symbol reexported: __ZTSPn
+ Symbol reexported: __ZTSPo
+ Symbol reexported: __ZTVN10__cxxabiv116__shim_type_infoE
+
------------
Version 18.0
------------
diff --git a/libcxx/lib/abi/arm64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.abilist b/libcxx/lib/abi/arm64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.abilist
index c2fea4d8adb420d..a19e978aafd0972 100644
--- a/libcxx/lib/abi/arm64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.abilist
+++ b/libcxx/lib/abi/arm64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.abilist
@@ -70,26 +70,46 @@
{'is_defined': False, 'name': '__ZSt15get_new_handlerv', 'type': 'U'}
{'is_defined': False, 'name': '__ZSt15set_new_handlerPFvvE', 'type': 'U'}
{'is_defined': False, 'name': '__ZSt9terminatev', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIDh', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIDi', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIDn', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIDs', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIDu', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIN10__cxxabiv116__enum_type_infoE', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIN10__cxxabiv116__shim_type_infoE', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIN10__cxxabiv117__array_type_infoE', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIN10__cxxabiv117__class_type_infoE', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIN10__cxxabiv117__pbase_type_infoE', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIN10__cxxabiv119__pointer_type_infoE', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIN10__cxxabiv120__function_type_infoE', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIN10__cxxabiv120__si_class_type_infoE', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIN10__cxxabiv121__vmi_class_type_infoE', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIN10__cxxabiv123__fundamental_type_infoE', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIN10__cxxabiv129__pointer_to_member_type_infoE', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIPDh', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPDi', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPDn', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPDs', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIPDu', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIPKDh', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKDi', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKDn', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKDs', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIPKDu', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKa', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKb', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKc', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKd', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKe', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKf', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIPKg', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKh', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKi', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKj', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKl', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKm', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIPKn', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIPKo', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKs', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKt', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKv', 'type': 'U'}
@@ -102,11 +122,14 @@
{'is_defined': False, 'name': '__ZTIPd', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPe', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPf', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIPg', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPh', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPi', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPj', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPl', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPm', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIPn', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIPo', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPs', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPt', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPv', 'type': 'U'}
@@ -135,21 +158,27 @@
{'is_defined': False, 'name': '__ZTId', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIe', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIf', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIg', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIh', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIi', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIj', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIl', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIm', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIn', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIo', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIs', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIt', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIv', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIw', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIx', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIy', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSDh', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSDi', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSDn', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSDs', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSDu', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSN10__cxxabiv116__enum_type_infoE', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSN10__cxxabiv116__shim_type_infoE', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSN10__cxxabiv117__array_type_infoE', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSN10__cxxabiv117__class_type_infoE', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSN10__cxxabiv117__pbase_type_infoE', 'type': 'U'}
@@ -159,23 +188,30 @@
{'is_defined': False, 'name': '__ZTSN10__cxxabiv121__vmi_class_type_infoE', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSN10__cxxabiv123__fundamental_type_infoE', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSN10__cxxabiv129__pointer_to_member_type_infoE', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSPDh', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPDi', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPDn', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPDs', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSPDu', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSPKDh', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKDi', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKDn', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKDs', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSPKDu', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKa', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKb', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKc', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKd', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKe', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKf', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSPKg', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKh', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKi', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKj', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKl', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKm', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSPKn', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSPKo', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKs', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKt', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKv', 'type': 'U'}
@@ -188,11 +224,14 @@
{'is_defined': False, 'name': '__ZTSPd', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPe', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPf', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSPg', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPh', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPi', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPj', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPl', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPm', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSPn', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSPo', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPs', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPt', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPv', 'type': 'U'}
@@ -221,11 +260,14 @@
{'is_defined': False, 'name': '__ZTSd', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSe', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSf', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSg', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSh', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSi', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSj', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSl', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSm', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSn', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSo', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSs', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSt', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSv', 'type': 'U'}
@@ -233,6 +275,7 @@
{'is_defined': False, 'name': '__ZTSx', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSy', 'type': 'U'}
{'is_defined': False, 'name': '__ZTVN10__cxxabiv116__enum_type_infoE', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTVN10__cxxabiv116__shim_type_infoE', 'type': 'U'}
{'is_defined': False, 'name': '__ZTVN10__cxxabiv117__array_type_infoE', 'type': 'U'}
{'is_defined': False, 'name': '__ZTVN10__cxxabiv117__class_type_infoE', 'type': 'U'}
{'is_defined': False, 'name': '__ZTVN10__cxxabiv117__pbase_type_infoE', 'type': 'U'}
@@ -301,12 +344,16 @@
{'is_defined': False, 'name': '___cxa_guard_release', 'type': 'U'}
{'is_defined': False, 'name': '___cxa_increment_exception_refcount', 'type': 'U'}
{'is_defined': False, 'name': '___cxa_init_primary_exception', 'type': 'U'}
+{'is_defined': False, 'name': '___cxa_new_handler', 'type': 'U'}
{'is_defined': False, 'name': '___cxa_pure_virtual', 'type': 'U'}
{'is_defined': False, 'name': '___cxa_rethrow', 'type': 'U'}
{'is_defined': False, 'name': '___cxa_rethrow_primary_exception', 'type': 'U'}
+{'is_defined': False, 'name': '___cxa_terminate_handler', 'type': 'U'}
{'is_defined': False, 'name': '___cxa_throw', 'type': 'U'}
{'is_defined': False, 'name': '___cxa_throw_bad_array_new_length', 'type': 'U'}
+{'is_defined': False, 'name': '___cxa_uncaught_exception', 'type': 'U'}
{'is_defined': False, 'name': '___cxa_uncaught_exceptions', 'type': 'U'}
+{'is_defined': False, 'name': '___cxa_unexpected_handler', 'type': 'U'}
{'is_defined': False, 'name': '___cxa_vec_cctor', 'type': 'U'}
{'is_defined': False, 'name': '___cxa_vec_cleanup', 'type': 'U'}
{'is_defined': False, 'name': '___cxa_vec_ctor', 'type': 'U'}
@@ -1944,9 +1991,22 @@
{'is_defined': True, 'name': '__ZTCNSt3__19strstreamE0_NS_13basic_istreamIcNS_11char_traitsIcEEEE', 'size': 0, 'type': 'OBJECT'}
{'is_defined': True, 'name': '__ZTCNSt3__19strstreamE0_NS_14basic_iostreamIcNS_11char_traitsIcEEEE', 'size': 0, 'type': 'OBJECT'}
{'is_defined': True, 'name': '__ZTCNSt3__19strstreamE16_NS_13basic_ostreamIcNS_11char_traitsIcEEEE', 'size': 0, 'type': 'OBJECT'}
+{'is_defined': True, 'name': '__ZTIDh', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIDi', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIDn', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIDs', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIDu', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIN10__cxxabiv116__enum_type_infoE', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIN10__cxxabiv116__shim_type_infoE', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIN10__cxxabiv117__array_type_infoE', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIN10__cxxabiv117__class_type_infoE', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIN10__cxxabiv117__pbase_type_infoE', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIN10__cxxabiv119__pointer_type_infoE', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIN10__cxxabiv120__function_type_infoE', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIN10__cxxabiv120__si_class_type_infoE', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIN10__cxxabiv121__vmi_class_type_infoE', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIN10__cxxabiv123__fundamental_type_infoE', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIN10__cxxabiv129__pointer_to_member_type_infoE', 'type': 'I'}
{'is_defined': True, 'name': '__ZTINSt12experimental15fundamentals_v112bad_any_castE', 'size': 0, 'type': 'OBJECT'}
{'is_defined': True, 'name': '__ZTINSt12experimental19bad_optional_accessE', 'size': 0, 'type': 'OBJECT'}
{'is_defined': True, 'name': '__ZTINSt3__110istrstreamE', 'size': 0, 'type': 'OBJECT'}
@@ -2054,23 +2114,30 @@
{'is_defined': True, 'name': '__ZTINSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE', 'size': 0, 'type': 'OBJECT'}
{'is_defined': True, 'name': '__ZTINSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE', 'size': 0, 'type': 'OBJECT'}
{'is_defined': True, 'name': '__ZTINSt3__19strstreamE', 'size': 0, 'type': 'OBJECT'}
+{'is_defined': True, 'name': '__ZTIPDh', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPDi', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPDn', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPDs', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIPDu', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIPKDh', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKDi', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKDn', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKDs', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIPKDu', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKa', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKb', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKc', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKd', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKe', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKf', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIPKg', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKh', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKi', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKj', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKl', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKm', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIPKn', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIPKo', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKs', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKt', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKv', 'type': 'I'}
@@ -2083,11 +2150,14 @@
{'is_defined': True, 'name': '__ZTIPd', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPe', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPf', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIPg', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPh', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPi', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPj', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPl', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPm', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIPn', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIPo', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPs', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPt', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPv', 'type': 'I'}
@@ -2120,21 +2190,27 @@
{'is_defined': True, 'name': '__ZTId', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIe', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIf', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIg', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIh', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIi', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIj', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIl', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIm', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIn', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIo', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIs', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIt', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIv', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIw', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIx', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIy', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSDh', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSDi', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSDn', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSDs', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSDu', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSN10__cxxabiv116__enum_type_infoE', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSN10__cxxabiv116__shim_type_infoE', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSN10__cxxabiv117__array_type_infoE', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSN10__cxxabiv117__class_type_infoE', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSN10__cxxabiv117__pbase_type_infoE', 'type': 'I'}
@@ -2226,23 +2302,30 @@
{'is_defined': True, 'name': '__ZTSNSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE', 'size': 0, 'type': 'OBJECT'}
{'is_defined': True, 'name': '__ZTSNSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE', 'size': 0, 'type': 'OBJECT'}
{'is_defined': True, 'name': '__ZTSNSt3__19strstreamE', 'size': 0, 'type': 'OBJECT'}
+{'is_defined': True, 'name': '__ZTSPDh', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPDi', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPDn', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPDs', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSPDu', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSPKDh', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKDi', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKDn', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKDs', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSPKDu', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKa', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKb', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKc', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKd', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKe', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKf', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSPKg', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKh', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKi', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKj', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKl', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKm', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSPKn', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSPKo', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKs', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKt', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKv', 'type': 'I'}
@@ -2255,11 +2338,14 @@
{'is_defined': True, 'name': '__ZTSPd', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPe', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPf', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSPg', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPh', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPi', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPj', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPl', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPm', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSPn', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSPo', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPs', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPt', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPv', 'type': 'I'}
@@ -2292,11 +2378,14 @@
{'is_defined': True, 'name': '__ZTSd', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSe', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSf', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSg', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSh', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSi', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSj', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSl', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSm', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSn', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSo', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSs', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSt', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSv', 'type': 'I'}
@@ -2317,6 +2406,7 @@
{'is_defined': True, 'name': '__ZTTNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE', 'size': 0, 'type': 'OBJECT'}
{'is_defined': True, 'name': '__ZTTNSt3__19strstreamE', 'size': 0, 'type': 'OBJECT'}
{'is_defined': True, 'name': '__ZTVN10__cxxabiv116__enum_type_infoE', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTVN10__cxxabiv116__shim_type_infoE', 'type': 'I'}
{'is_defined': True, 'name': '__ZTVN10__cxxabiv117__array_type_infoE', 'type': 'I'}
{'is_defined': True, 'name': '__ZTVN10__cxxabiv117__class_type_infoE', 'type': 'I'}
{'is_defined': True, 'name': '__ZTVN10__cxxabiv117__pbase_type_infoE', 'type': 'I'}
@@ -2500,6 +2590,8 @@
{'is_defined': True, 'name': '___cxa_begin_catch', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_call_unexpected', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_current_exception_type', 'type': 'I'}
+{'is_defined': True, 'name': '___cxa_current_primary_exception', 'type': 'I'}
+{'is_defined': True, 'name': '___cxa_decrement_exception_refcount', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_deleted_virtual', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_demangle', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_end_catch', 'type': 'I'}
@@ -2511,12 +2603,18 @@
{'is_defined': True, 'name': '___cxa_guard_abort', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_guard_acquire', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_guard_release', 'type': 'I'}
+{'is_defined': True, 'name': '___cxa_increment_exception_refcount', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_init_primary_exception', 'type': 'I'}
+{'is_defined': True, 'name': '___cxa_new_handler', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_pure_virtual', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_rethrow', 'type': 'I'}
+{'is_defined': True, 'name': '___cxa_rethrow_primary_exception', 'type': 'I'}
+{'is_defined': True, 'name': '___cxa_terminate_handler', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_throw', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_throw_bad_array_new_length', 'type': 'I'}
+{'is_defined': True, 'name': '___cxa_uncaught_exception', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_uncaught_exceptions', 'type': 'I'}
+{'is_defined': True, 'name': '___cxa_unexpected_handler', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_vec_cctor', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_vec_cleanup', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_vec_ctor', 'type': 'I'}
diff --git a/libcxx/src/CMakeLists.txt b/libcxx/src/CMakeLists.txt
index 44a088663463c97..fcfd6d8f19a5f24 100644
--- a/libcxx/src/CMakeLists.txt
+++ b/libcxx/src/CMakeLists.txt
@@ -231,19 +231,14 @@ if (LIBCXX_ENABLE_SHARED)
# In particular, we don't re-export the symbols if libc++abi is merged statically
# into libc++ because in that case there's no dylib to re-export from.
if (APPLE AND LIBCXX_CXX_ABI MATCHES "libcxxabi$"
- AND NOT DEFINED LIBCXX_OSX_REEXPORT_LIBCXXABI_SYMBOLS
AND NOT LIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY)
- set(LIBCXX_OSX_REEXPORT_LIBCXXABI_SYMBOLS ON)
- endif()
+ target_link_libraries(cxx_shared PRIVATE cxxabi-reexports)
- if (LIBCXX_OSX_REEXPORT_LIBCXXABI_SYMBOLS)
+ # TODO: These exports controls should not be tied to whether we re-export libc++abi symbols
target_link_libraries(cxx_shared PRIVATE
"-Wl,-unexported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/../lib/libc++unexp.exp"
- "-Wl,-reexported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/../lib/libc++abi.exp"
"-Wl,-force_symbols_not_weak_list,${CMAKE_CURRENT_SOURCE_DIR}/../lib/notweak.exp"
"-Wl,-force_symbols_weak_list,${CMAKE_CURRENT_SOURCE_DIR}/../lib/weak.exp")
-
- target_link_libraries(cxx_shared PRIVATE $<TARGET_NAME_IF_EXISTS:cxxabi-reexports>)
endif()
# Generate a linker script in place of a libc++.so symlink.
diff --git a/libcxxabi/lib/cxxabiv1.exp b/libcxxabi/lib/cxxabiv1.exp
new file mode 100644
index 000000000000000..b1bab45ef334792
--- /dev/null
+++ b/libcxxabi/lib/cxxabiv1.exp
@@ -0,0 +1,38 @@
+# Typeinfos for types from libc++abi
+__ZTIN10__cxxabiv116__enum_type_infoE
+__ZTIN10__cxxabiv116__shim_type_infoE
+__ZTIN10__cxxabiv117__array_type_infoE
+__ZTIN10__cxxabiv117__class_type_infoE
+__ZTIN10__cxxabiv117__pbase_type_infoE
+__ZTIN10__cxxabiv119__pointer_type_infoE
+__ZTIN10__cxxabiv120__function_type_infoE
+__ZTIN10__cxxabiv120__si_class_type_infoE
+__ZTIN10__cxxabiv121__vmi_class_type_infoE
+__ZTIN10__cxxabiv123__fundamental_type_infoE
+__ZTIN10__cxxabiv129__pointer_to_member_type_infoE
+
+# Typeinfo names for types from libc++abi
+__ZTSN10__cxxabiv116__enum_type_infoE
+__ZTSN10__cxxabiv116__shim_type_infoE
+__ZTSN10__cxxabiv117__array_type_infoE
+__ZTSN10__cxxabiv117__class_type_infoE
+__ZTSN10__cxxabiv117__pbase_type_infoE
+__ZTSN10__cxxabiv119__pointer_type_infoE
+__ZTSN10__cxxabiv120__function_type_infoE
+__ZTSN10__cxxabiv120__si_class_type_infoE
+__ZTSN10__cxxabiv121__vmi_class_type_infoE
+__ZTSN10__cxxabiv123__fundamental_type_infoE
+__ZTSN10__cxxabiv129__pointer_to_member_type_infoE
+
+# Vtables for libc++abi types
+__ZTVN10__cxxabiv116__enum_type_infoE
+__ZTVN10__cxxabiv116__shim_type_infoE
+__ZTVN10__cxxabiv117__array_type_infoE
+__ZTVN10__cxxabiv117__class_type_infoE
+__ZTVN10__cxxabiv117__pbase_type_infoE
+__ZTVN10__cxxabiv119__pointer_type_infoE
+__ZTVN10__cxxabiv120__function_type_infoE
+__ZTVN10__cxxabiv120__si_class_type_infoE
+__ZTVN10__cxxabiv121__vmi_class_type_infoE
+__ZTVN10__cxxabiv123__fundamental_type_infoE
+__ZTVN10__cxxabiv129__pointer_to_member_type_infoE
diff --git a/libcxxabi/lib/fundamental-types.exp b/libcxxabi/lib/fundamental-types.exp
new file mode 100644
index 000000000000000..fe21022328fe46b
--- /dev/null
+++ b/libcxxabi/lib/fundamental-types.exp
@@ -0,0 +1,153 @@
+# Typeinfos for fundamental types
+__ZTIa
+__ZTIb
+__ZTIc
+__ZTId
+__ZTIDh
+__ZTIDi
+__ZTIDn
+__ZTIDs
+__ZTIDu
+__ZTIe
+__ZTIf
+__ZTIg
+__ZTIh
+__ZTIi
+__ZTIj
+__ZTIl
+__ZTIm
+__ZTIn
+__ZTIo
+__ZTIPa
+__ZTIPb
+__ZTIPc
+__ZTIPd
+__ZTIPDh
+__ZTIPDi
+__ZTIPDn
+__ZTIPDs
+__ZTIPDu
+__ZTIPe
+__ZTIPf
+__ZTIPg
+__ZTIPh
+__ZTIPi
+__ZTIPj
+__ZTIPKa
+__ZTIPKb
+__ZTIPKc
+__ZTIPKd
+__ZTIPKDh
+__ZTIPKDi
+__ZTIPKDn
+__ZTIPKDs
+__ZTIPKDu
+__ZTIPKe
+__ZTIPKf
+__ZTIPKg
+__ZTIPKh
+__ZTIPKi
+__ZTIPKj
+__ZTIPKl
+__ZTIPKm
+__ZTIPKn
+__ZTIPKo
+__ZTIPKs
+__ZTIPKt
+__ZTIPKv
+__ZTIPKw
+__ZTIPKx
+__ZTIPKy
+__ZTIPl
+__ZTIPm
+__ZTIPn
+__ZTIPo
+__ZTIPs
+__ZTIPt
+__ZTIPv
+__ZTIPw
+__ZTIPx
+__ZTIPy
+__ZTIs
+__ZTIt
+__ZTIv
+__ZTIw
+__ZTIx
+__ZTIy
+
+# Typeinfo names for fundamental types
+__ZTSa
+__ZTSb
+__ZTSc
+__ZTSd
+__ZTSDh
+__ZTSDi
+__ZTSDn
+__ZTSDs
+__ZTSDu
+__ZTSe
+__ZTSf
+__ZTSg
+__ZTSh
+__ZTSi
+__ZTSj
+__ZTSl
+__ZTSm
+__ZTSn
+__ZTSo
+__ZTSPa
+__ZTSPb
+__ZTSPc
+__ZTSPd
+__ZTSPDh
+__ZTSPDi
+__ZTSPDn
+__ZTSPDs
+__ZTSPDu
+__ZTSPe
+__ZTSPf
+__ZTSPg
+__ZTSPh
+__ZTSPi
+__ZTSPj
+__ZTSPKa
+__ZTSPKb
+__ZTSPKc
+__ZTSPKd
+__ZTSPKDh
+__ZTSPKDi
+__ZTSPKDn
+__ZTSPKDs
+__ZTSPKDu
+__ZTSPKe
+__ZTSPKf
+__ZTSPKg
+__ZTSPKh
+__ZTSPKi
+__ZTSPKj
+__ZTSPKl
+__ZTSPKm
+__ZTSPKn
+__ZTSPKo
+__ZTSPKs
+__ZTSPKt
+__ZTSPKv
+__ZTSPKw
+__ZTSPKx
+__ZTSPKy
+__ZTSPl
+__ZTSPm
+__ZTSPn
+__ZTSPo
+__ZTSPs
+__ZTSPt
+__ZTSPv
+__ZTSPw
+__ZTSPx
+__ZTSPy
+__ZTSs
+__ZTSt
+__ZTSv
+__ZTSw
+__ZTSx
+__ZTSy
diff --git a/libcxxabi/lib/itanium-base.exp b/libcxxabi/lib/itanium-base.exp
index 1b14cb8fba1753f..002e062df423e71 100644
--- a/libcxxabi/lib/itanium-base.exp
+++ b/libcxxabi/lib/itanium-base.exp
@@ -1,250 +1,3 @@
-# Typeinfos for fundamental types
-__ZTIa
-__ZTIb
-__ZTIc
-__ZTId
-__ZTIDh
-__ZTIDi
-__ZTIDn
-__ZTIDs
-__ZTIDu
-__ZTIe
-__ZTIf
-__ZTIg
-__ZTIh
-__ZTIi
-__ZTIj
-__ZTIl
-__ZTIm
-__ZTIn
-__ZTIo
-__ZTIPa
-__ZTIPb
-__ZTIPc
-__ZTIPd
-__ZTIPDh
-__ZTIPDi
-__ZTIPDn
-__ZTIPDs
-__ZTIPDu
-__ZTIPe
-__ZTIPf
-__ZTIPg
-__ZTIPh
-__ZTIPi
-__ZTIPj
-__ZTIPKa
-__ZTIPKb
-__ZTIPKc
-__ZTIPKd
-__ZTIPKDh
-__ZTIPKDi
-__ZTIPKDn
-__ZTIPKDs
-__ZTIPKDu
-__ZTIPKe
-__ZTIPKf
-__ZTIPKg
-__ZTIPKh
-__ZTIPKi
-__ZTIPKj
-__ZTIPKl
-__ZTIPKm
-__ZTIPKn
-__ZTIPKo
-__ZTIPKs
-__ZTIPKt
-__ZTIPKv
-__ZTIPKw
-__ZTIPKx
-__ZTIPKy
-__ZTIPl
-__ZTIPm
-__ZTIPn
-__ZTIPo
-__ZTIPs
-__ZTIPt
-__ZTIPv
-__ZTIPw
-__ZTIPx
-__ZTIPy
-__ZTIs
-__ZTIt
-__ZTIv
-__ZTIw
-__ZTIx
-__ZTIy
-
-# Typeinfo names for fundamental types
-__ZTSa
-__ZTSb
-__ZTSc
-__ZTSd
-__ZTSDh
-__ZTSDi
-__ZTSDn
-__ZTSDs
-__ZTSDu
-__ZTSe
-__ZTSf
-__ZTSg
-__ZTSh
-__ZTSi
-__ZTSj
-__ZTSl
-__ZTSm
-__ZTSn
-__ZTSo
-__ZTSPa
-__ZTSPb
-__ZTSPc
-__ZTSPd
-__ZTSPDh
-__ZTSPDi
-__ZTSPDn
-__ZTSPDs
-__ZTSPDu
-__ZTSPe
-__ZTSPf
-__ZTSPg
-__ZTSPh
-__ZTSPi
-__ZTSPj
-__ZTSPKa
-__ZTSPKb
-__ZTSPKc
-__ZTSPKd
-__ZTSPKDh
-__ZTSPKDi
-__ZTSPKDn
-__ZTSPKDs
-__ZTSPKDu
-__ZTSPKe
-__ZTSPKf
-__ZTSPKg
-__ZTSPKh
-__ZTSPKi
-__ZTSPKj
-__ZTSPKl
-__ZTSPKm
-__ZTSPKn
-__ZTSPKo
-__ZTSPKs
-__ZTSPKt
-__ZTSPKv
-__ZTSPKw
-__ZTSPKx
-__ZTSPKy
-__ZTSPl
-__ZTSPm
-__ZTSPn
-__ZTSPo
-__ZTSPs
-__ZTSPt
-__ZTSPv
-__ZTSPw
-__ZTSPx
-__ZTSPy
-__ZTSs
-__ZTSt
-__ZTSv
-__ZTSw
-__ZTSx
-__ZTSy
-
-# Typeinfos for types from libc++abi
-__ZTIN10__cxxabiv116__enum_type_infoE
-__ZTIN10__cxxabiv116__shim_type_infoE
-__ZTIN10__cxxabiv117__array_type_infoE
-__ZTIN10__cxxabiv117__class_type_infoE
-__ZTIN10__cxxabiv117__pbase_type_infoE
-__ZTIN10__cxxabiv119__pointer_type_infoE
-__ZTIN10__cxxabiv120__function_type_infoE
-__ZTIN10__cxxabiv120__si_class_type_infoE
-__ZTIN10__cxxabiv121__vmi_class_type_infoE
-__ZTIN10__cxxabiv123__fundamental_type_infoE
-__ZTIN10__cxxabiv129__pointer_to_member_type_infoE
-
-# Typeinfo names for types from libc++abi
-__ZTSN10__cxxabiv116__enum_type_infoE
-__ZTSN10__cxxabiv116__shim_type_infoE
-__ZTSN10__cxxabiv117__array_type_infoE
-__ZTSN10__cxxabiv117__class_type_infoE
-__ZTSN10__cxxabiv117__pbase_type_infoE
-__ZTSN10__cxxabiv119__pointer_type_infoE
-__ZTSN10__cxxabiv120__function_type_infoE
-__ZTSN10__cxxabiv120__si_class_type_infoE
-__ZTSN10__cxxabiv121__vmi_class_type_infoE
-__ZTSN10__cxxabiv123__fundamental_type_infoE
-__ZTSN10__cxxabiv129__pointer_to_member_type_infoE
-
-# Typeinfos for std:: exception types
-__ZTISt10bad_typeid
-__ZTISt11logic_error
-__ZTISt11range_error
-__ZTISt12domain_error
-__ZTISt12length_error
-__ZTISt12out_of_range
-__ZTISt13bad_exception
-__ZTISt13runtime_error
-__ZTISt14overflow_error
-__ZTISt15underflow_error
-__ZTISt16invalid_argument
-__ZTISt20bad_array_new_length
-__ZTISt8bad_cast
-__ZTISt9bad_alloc
-__ZTISt9exception
-__ZTISt9type_info
-
-# Typeinfo names for std:: exception types
-__ZTSSt10bad_typeid
-__ZTSSt11logic_error
-__ZTSSt11range_error
-__ZTSSt12domain_error
-__ZTSSt12length_error
-__ZTSSt12out_of_range
-__ZTSSt13bad_exception
-__ZTSSt13runtime_error
-__ZTSSt14overflow_error
-__ZTSSt15underflow_error
-__ZTSSt16invalid_argument
-__ZTSSt20bad_array_new_length
-__ZTSSt8bad_cast
-__ZTSSt9bad_alloc
-__ZTSSt9exception
-__ZTSSt9type_info
-
-# Vtables for libc++abi types
-__ZTVN10__cxxabiv116__enum_type_infoE
-__ZTVN10__cxxabiv116__shim_type_infoE
-__ZTVN10__cxxabiv117__array_type_infoE
-__ZTVN10__cxxabiv117__class_type_infoE
-__ZTVN10__cxxabiv117__pbase_type_infoE
-__ZTVN10__cxxabiv119__pointer_type_infoE
-__ZTVN10__cxxabiv120__function_type_infoE
-__ZTVN10__cxxabiv120__si_class_type_infoE
-__ZTVN10__cxxabiv121__vmi_class_type_infoE
-__ZTVN10__cxxabiv123__fundamental_type_infoE
-__ZTVN10__cxxabiv129__pointer_to_member_type_infoE
-
-# Vtables for std:: exception types
-__ZTVSt10bad_typeid
-__ZTVSt11logic_error
-__ZTVSt11range_error
-__ZTVSt12domain_error
-__ZTVSt12length_error
-__ZTVSt12out_of_range
-__ZTVSt13bad_exception
-__ZTVSt13runtime_error
-__ZTVSt14overflow_error
-__ZTVSt15underflow_error
-__ZTVSt16invalid_argument
-__ZTVSt20bad_array_new_length
-__ZTVSt8bad_cast
-__ZTVSt9bad_alloc
-__ZTVSt9exception
-__ZTVSt9type_info
-
# Itanium C++ ABI requirements (minus most exception support)
___cxa_bad_cast
___cxa_bad_typeid
@@ -277,81 +30,3 @@ ___dynamic_cast
___cxa_terminate_handler
___cxa_unexpected_handler
___cxa_new_handler
-
-# ::what() functions for std:: exception types
-__ZNKSt10bad_typeid4whatEv
-__ZNKSt11logic_error4whatEv
-__ZNKSt13bad_exception4whatEv
-__ZNKSt13runtime_error4whatEv
-__ZNKSt20bad_array_new_length4whatEv
-__ZNKSt8bad_cast4whatEv
-__ZNKSt9bad_alloc4whatEv
-__ZNKSt9exception4whatEv
-
-# Default constructors and destructors for std:: exception types
-__ZNSt10bad_typeidC1Ev
-__ZNSt10bad_typeidC2Ev
-__ZNSt10bad_typeidD0Ev
-__ZNSt10bad_typeidD1Ev
-__ZNSt10bad_typeidD2Ev
-__ZNSt11logic_errorD0Ev
-__ZNSt11logic_errorD1Ev
-__ZNSt11logic_errorD2Ev
-__ZNSt11range_errorD0Ev
-__ZNSt11range_errorD1Ev
-__ZNSt11range_errorD2Ev
-__ZNSt12domain_errorD0Ev
-__ZNSt12domain_errorD1Ev
-__ZNSt12domain_errorD2Ev
-__ZNSt12length_errorD0Ev
-__ZNSt12length_errorD1Ev
-__ZNSt12length_errorD2Ev
-__ZNSt12out_of_rangeD0Ev
-__ZNSt12out_of_rangeD1Ev
-__ZNSt12out_of_rangeD2Ev
-__ZNSt13bad_exceptionD0Ev
-__ZNSt13bad_exceptionD1Ev
-__ZNSt13bad_exceptionD2Ev
-__ZNSt13runtime_errorD0Ev
-__ZNSt13runtime_errorD1Ev
-__ZNSt13runtime_errorD2Ev
-__ZNSt14overflow_errorD0Ev
-__ZNSt14overflow_errorD1Ev
-__ZNSt14overflow_errorD2Ev
-__ZNSt15underflow_errorD0Ev
-__ZNSt15underflow_errorD1Ev
-__ZNSt15underflow_errorD2Ev
-__ZNSt16invalid_argumentD0Ev
-__ZNSt16invalid_argumentD1Ev
-__ZNSt16invalid_argumentD2Ev
-__ZNSt20bad_array_new_lengthC1Ev
-__ZNSt20bad_array_new_lengthC2Ev
-__ZNSt20bad_array_new_lengthD0Ev
-__ZNSt20bad_array_new_lengthD1Ev
-__ZNSt20bad_array_new_lengthD2Ev
-__ZNSt8bad_castC1Ev
-__ZNSt8bad_castC2Ev
-__ZNSt8bad_castD0Ev
-__ZNSt8bad_castD1Ev
-__ZNSt8bad_castD2Ev
-__ZNSt9bad_allocC1Ev
-__ZNSt9bad_allocC2Ev
-__ZNSt9bad_allocD0Ev
-__ZNSt9bad_allocD1Ev
-__ZNSt9bad_allocD2Ev
-__ZNSt9exceptionD0Ev
-__ZNSt9exceptionD1Ev
-__ZNSt9exceptionD2Ev
-__ZNSt9type_infoD0Ev
-__ZNSt9type_infoD1Ev
-__ZNSt9type_infoD2Ev
-
-# Other std:: functions implemented in libc++abi
-__ZSt10unexpectedv
-__ZSt13get_terminatev
-__ZSt13set_terminatePFvvE
-__ZSt14get_unexpectedv
-__ZSt14set_unexpectedPFvvE
-__ZSt15get_new_handlerv
-__ZSt15set_new_handlerPFvvE
-__ZSt9terminatev
diff --git a/libcxxabi/lib/exceptions.exp b/libcxxabi/lib/itanium-exceptions.exp
similarity index 84%
rename from libcxxabi/lib/exceptions.exp
rename to libcxxabi/lib/itanium-exceptions.exp
index 9dcfbdbd3598e12..21b19edb92dfc4f 100644
--- a/libcxxabi/lib/exceptions.exp
+++ b/libcxxabi/lib/itanium-exceptions.exp
@@ -1,3 +1,4 @@
+# Itanium C++ ABI requirements related to exceptions
___cxa_allocate_dependent_exception
___cxa_allocate_exception
___cxa_begin_catch
diff --git a/libcxxabi/lib/new-delete.exp b/libcxxabi/lib/new-delete.exp
index 086d2fec24ea74b..4f97de7e8bb6f41 100644
--- a/libcxxabi/lib/new-delete.exp
+++ b/libcxxabi/lib/new-delete.exp
@@ -1,3 +1,4 @@
+# Symbols for all variants of global operator new and delete
__Znwm
__ZnwmRKSt9nothrow_t
__ZnwmSt11align_val_t
diff --git a/libcxx/lib/libc++abi.exp b/libcxxabi/lib/std-exceptions.exp
similarity index 51%
rename from libcxx/lib/libc++abi.exp
rename to libcxxabi/lib/std-exceptions.exp
index 6a3e6b9f0222e02..bb4a2b2e93eab63 100644
--- a/libcxx/lib/libc++abi.exp
+++ b/libcxxabi/lib/std-exceptions.exp
@@ -1,295 +1,121 @@
-___cxa_demangle
-___cxa_get_globals
-___cxa_get_globals_fast
-___cxa_guard_abort
-___cxa_guard_acquire
-___cxa_guard_release
-___cxa_pure_virtual
-___cxa_deleted_virtual
-___cxa_throw_bad_array_new_length
-___cxa_uncaught_exceptions
-___cxa_vec_cctor
-___cxa_vec_cleanup
-___cxa_vec_ctor
-___cxa_vec_delete
-___cxa_vec_delete2
-___cxa_vec_delete3
-___cxa_vec_dtor
-___cxa_vec_new
-___cxa_vec_new2
-___cxa_vec_new3
-___dynamic_cast
-__ZTIDi
-__ZTIDn
-__ZTIDs
-__ZTIPDi
-__ZTIPDn
-__ZTIPDs
-__ZTIPKDi
-__ZTIPKDn
-__ZTIPKDs
-__ZTSPm
-__ZTSPl
-__ZTSPj
-__ZTSPi
-__ZTSPh
-__ZTSPf
-__ZTSPe
-__ZTSPd
-__ZTSPc
-__ZTSPb
-__ZTSPa
-__ZTSPKc
-__ZTSPKy
-__ZTSPKx
-__ZTSPKw
-__ZTSPKv
-__ZTSPKt
-__ZTSPKs
-__ZTSPKm
-__ZTSPKl
-__ZTSPKi
-__ZTSPKh
-__ZTSPs
-__ZTSPt
-__ZTSPv
-__ZTSPw
-__ZTSPKa
-__ZTSPx
-__ZTSPy
-__ZTSPKd
-__ZTSPKe
-__ZTSPKj
-__ZTSPKb
-__ZTSPKf
-__ZTSv
-__ZTSt
-__ZTSs
-__ZTSm
-__ZTSl
-__ZTSj
-__ZTSi
-__ZTSh
-__ZTSf
-__ZTSe
-__ZTSd
-__ZTSc
-__ZTSw
-__ZTSx
-__ZTSy
-__ZTSb
-__ZTSa
-__ZTIPKh
-__ZTIPKf
-__ZTIPKe
-__ZTIPKd
-__ZTIPKc
-__ZTIPKb
-__ZTIPKa
-__ZTIPy
-__ZTIPx
-__ZTIPw
-__ZTIPv
-__ZTIPt
-__ZTIPs
-__ZTIPm
-__ZTIPl
-__ZTIPj
-__ZTIPi
-__ZTIPKi
-__ZTIPKj
-__ZTIPKl
-__ZTIPKm
-__ZTIPKs
-__ZTIPKt
-__ZTIPKv
-__ZTIPKw
-__ZTIPKx
-__ZTIPKy
-__ZTIPa
-__ZTIPb
-__ZTIPc
-__ZTIPd
-__ZTIPe
-__ZTIPf
-__ZTIPh
-__ZTVN10__cxxabiv129__pointer_to_member_type_infoE
-__ZTVN10__cxxabiv116__enum_type_infoE
-__ZTVN10__cxxabiv117__array_type_infoE
-__ZTVN10__cxxabiv117__class_type_infoE
-__ZTVN10__cxxabiv117__pbase_type_infoE
-__ZTVN10__cxxabiv119__pointer_type_infoE
-__ZTVN10__cxxabiv120__function_type_infoE
-__ZTVN10__cxxabiv120__si_class_type_infoE
-__ZTVN10__cxxabiv121__vmi_class_type_infoE
-__ZTVN10__cxxabiv123__fundamental_type_infoE
-__ZTIa
-__ZTIb
-__ZTIc
-__ZTId
-__ZTIe
-__ZTIf
-__ZTIh
-__ZTIi
-__ZTIj
-__ZTIl
-__ZTIm
-__ZTIs
-__ZTIt
-__ZTSN10__cxxabiv129__pointer_to_member_type_infoE
-__ZTSN10__cxxabiv123__fundamental_type_infoE
-__ZTSN10__cxxabiv121__vmi_class_type_infoE
-__ZTSN10__cxxabiv120__si_class_type_infoE
-__ZTSN10__cxxabiv120__function_type_infoE
-__ZTSN10__cxxabiv119__pointer_type_infoE
-__ZTSN10__cxxabiv117__pbase_type_infoE
-__ZTSN10__cxxabiv117__class_type_infoE
-__ZTSN10__cxxabiv117__array_type_infoE
-__ZTSN10__cxxabiv116__enum_type_infoE
-__ZTIy
-__ZTIx
-__ZTIw
-__ZTIv
-__ZSt13get_terminatev
-__ZSt13set_terminatePFvvE
-__ZSt14get_unexpectedv
-__ZSt14set_unexpectedPFvvE
-__ZSt15get_new_handlerv
-__ZSt15set_new_handlerPFvvE
-__ZSt9terminatev
-__ZNSt9bad_allocD1Ev
-__ZTISt9bad_alloc
-__ZNSt9bad_allocC1Ev
+# Typeinfos for std:: exception types
+__ZTISt10bad_typeid
+__ZTISt11logic_error
+__ZTISt11range_error
+__ZTISt12domain_error
+__ZTISt12length_error
+__ZTISt12out_of_range
__ZTISt13bad_exception
+__ZTISt13runtime_error
+__ZTISt14overflow_error
+__ZTISt15underflow_error
+__ZTISt16invalid_argument
+__ZTISt20bad_array_new_length
+__ZTISt8bad_cast
+__ZTISt9bad_alloc
+__ZTISt9exception
+__ZTISt9type_info
+
+# Typeinfo names for std:: exception types
+__ZTSSt10bad_typeid
+__ZTSSt11logic_error
+__ZTSSt11range_error
+__ZTSSt12domain_error
+__ZTSSt12length_error
+__ZTSSt12out_of_range
+__ZTSSt13bad_exception
+__ZTSSt13runtime_error
+__ZTSSt14overflow_error
+__ZTSSt15underflow_error
+__ZTSSt16invalid_argument
+__ZTSSt20bad_array_new_length
+__ZTSSt8bad_cast
+__ZTSSt9bad_alloc
+__ZTSSt9exception
+__ZTSSt9type_info
+
+# Vtables for std:: exception types
__ZTVSt10bad_typeid
-__ZTVSt9exception
-__ZNSt10bad_typeidC1Ev
-__ZNSt10bad_typeidC1Ev
-__ZNKSt10bad_typeid4whatEv
-__ZNSt10bad_typeidD1Ev
+__ZTVSt11logic_error
+__ZTVSt11range_error
+__ZTVSt12domain_error
+__ZTVSt12length_error
+__ZTVSt12out_of_range
+__ZTVSt13bad_exception
+__ZTVSt13runtime_error
+__ZTVSt14overflow_error
+__ZTVSt15underflow_error
+__ZTVSt16invalid_argument
+__ZTVSt20bad_array_new_length
__ZTVSt8bad_cast
-__ZNSt8bad_castC1Ev
-__ZNSt8bad_castC2Ev
-__ZNSt8bad_castD0Ev
-__ZNKSt8bad_cast4whatEv
-__ZNSt8bad_castD1Ev
-__ZNSt8bad_castD2Ev
__ZTVSt9bad_alloc
-__ZTVSt20bad_array_new_length
-__ZTVSt13bad_exception
-__ZNKSt9exception4whatEv
-__ZNKSt9bad_alloc4whatEv
-__ZNSt9bad_allocC2Ev
-__ZNSt9bad_allocD0Ev
-__ZNSt9bad_allocD2Ev
-__ZNSt9exceptionD0Ev
-__ZNSt20bad_array_new_lengthC1Ev
+__ZTVSt9exception
+__ZTVSt9type_info
+
+# ::what() functions for std:: exception types
+__ZNKSt10bad_typeid4whatEv
+__ZNKSt11logic_error4whatEv
__ZNKSt13bad_exception4whatEv
-__ZNSt9exceptionD1Ev
+__ZNKSt13runtime_error4whatEv
__ZNKSt20bad_array_new_length4whatEv
-__ZNSt13bad_exceptionD1Ev
-__ZNSt20bad_array_new_lengthD1Ev
-__ZNSt9exceptionD2Ev
-__ZNSt9type_infoD0Ev
-__ZNSt9type_infoD1Ev
-__ZNSt9type_infoD2Ev
+__ZNKSt8bad_cast4whatEv
+__ZNKSt9bad_alloc4whatEv
+__ZNKSt9exception4whatEv
+
+# Default constructors and destructors for std:: exception types
+__ZNSt10bad_typeidC1Ev
__ZNSt10bad_typeidC2Ev
__ZNSt10bad_typeidD0Ev
+__ZNSt10bad_typeidD1Ev
__ZNSt10bad_typeidD2Ev
-__ZNSt13bad_exceptionD0Ev
-__ZNSt13bad_exceptionD2Ev
-__ZNSt20bad_array_new_lengthC2Ev
-__ZNSt20bad_array_new_lengthD0Ev
-__ZNSt20bad_array_new_lengthD2Ev
-__ZSt10unexpectedv
-__ZTISt10bad_typeid
-__ZTISt8bad_cast
-___cxa_bad_typeid
-___cxa_bad_cast
-__ZTISt9exception
-__ZTISt9type_info
-__ZTISt20bad_array_new_length
-
-__ZNKSt11logic_error4whatEv
__ZNSt11logic_errorD0Ev
__ZNSt11logic_errorD1Ev
__ZNSt11logic_errorD2Ev
-__ZTISt11logic_error
-__ZTSSt11logic_error
-__ZTVSt11logic_error
-
-__ZNKSt13runtime_error4whatEv
-__ZNSt13runtime_errorD0Ev
-__ZNSt13runtime_errorD1Ev
-__ZNSt13runtime_errorD2Ev
-__ZTISt13runtime_error
-__ZTSSt13runtime_error
-__ZTVSt13runtime_error
-
__ZNSt11range_errorD0Ev
__ZNSt11range_errorD1Ev
__ZNSt11range_errorD2Ev
-__ZTISt11range_error
-__ZTSSt11range_error
-__ZTVSt11range_error
-
__ZNSt12domain_errorD0Ev
__ZNSt12domain_errorD1Ev
__ZNSt12domain_errorD2Ev
-__ZTISt12domain_error
-__ZTSSt12domain_error
-__ZTVSt12domain_error
-
__ZNSt12length_errorD0Ev
__ZNSt12length_errorD1Ev
__ZNSt12length_errorD2Ev
-__ZTISt12length_error
-__ZTSSt12length_error
-__ZTVSt12length_error
-
__ZNSt12out_of_rangeD0Ev
__ZNSt12out_of_rangeD1Ev
__ZNSt12out_of_rangeD2Ev
-__ZTISt12out_of_range
-__ZTSSt12out_of_range
-__ZTVSt12out_of_range
-
+__ZNSt13bad_exceptionD0Ev
+__ZNSt13bad_exceptionD1Ev
+__ZNSt13bad_exceptionD2Ev
+__ZNSt13runtime_errorD0Ev
+__ZNSt13runtime_errorD1Ev
+__ZNSt13runtime_errorD2Ev
__ZNSt14overflow_errorD0Ev
__ZNSt14overflow_errorD1Ev
__ZNSt14overflow_errorD2Ev
-__ZTISt14overflow_error
-__ZTSSt14overflow_error
-__ZTVSt14overflow_error
-
__ZNSt15underflow_errorD0Ev
__ZNSt15underflow_errorD1Ev
__ZNSt15underflow_errorD2Ev
-__ZTISt15underflow_error
-__ZTSSt15underflow_error
-__ZTVSt15underflow_error
-
__ZNSt16invalid_argumentD0Ev
__ZNSt16invalid_argumentD1Ev
__ZNSt16invalid_argumentD2Ev
-__ZTISt16invalid_argument
-__ZTSSt16invalid_argument
-__ZTVSt16invalid_argument
-
-__ZTSDi
-__ZTSDn
-__ZTSDs
-__ZTSPDi
-__ZTSPDn
-__ZTSPDs
-__ZTSPKDi
-__ZTSPKDn
-__ZTSPKDs
-
-__ZTSSt8bad_cast
-__ZTSSt9bad_alloc
-__ZTSSt9exception
-__ZTSSt9type_info
-__ZTSSt10bad_typeid
-__ZTSSt13bad_exception
-__ZTSSt20bad_array_new_length
-__ZTVSt9type_info
+__ZNSt20bad_array_new_lengthC1Ev
+__ZNSt20bad_array_new_lengthC2Ev
+__ZNSt20bad_array_new_lengthD0Ev
+__ZNSt20bad_array_new_lengthD1Ev
+__ZNSt20bad_array_new_lengthD2Ev
+__ZNSt8bad_castC1Ev
+__ZNSt8bad_castC2Ev
+__ZNSt8bad_castD0Ev
+__ZNSt8bad_castD1Ev
+__ZNSt8bad_castD2Ev
+__ZNSt9bad_allocC1Ev
+__ZNSt9bad_allocC2Ev
+__ZNSt9bad_allocD0Ev
+__ZNSt9bad_allocD1Ev
+__ZNSt9bad_allocD2Ev
+__ZNSt9exceptionD0Ev
+__ZNSt9exceptionD1Ev
+__ZNSt9exceptionD2Ev
+__ZNSt9type_infoD0Ev
+__ZNSt9type_infoD1Ev
+__ZNSt9type_infoD2Ev
diff --git a/libcxxabi/lib/std-misc.exp b/libcxxabi/lib/std-misc.exp
new file mode 100644
index 000000000000000..0ce6a2944398479
--- /dev/null
+++ b/libcxxabi/lib/std-misc.exp
@@ -0,0 +1,9 @@
+# Other std:: functions implemented in libc++abi
+__ZSt10unexpectedv
+__ZSt13get_terminatev
+__ZSt13set_terminatePFvvE
+__ZSt14get_unexpectedv
+__ZSt14set_unexpectedPFvvE
+__ZSt15get_new_handlerv
+__ZSt15set_new_handlerPFvvE
+__ZSt9terminatev
diff --git a/libcxxabi/src/CMakeLists.txt b/libcxxabi/src/CMakeLists.txt
index 4198827203fc8b3..0f17ea9184c824c 100644
--- a/libcxxabi/src/CMakeLists.txt
+++ b/libcxxabi/src/CMakeLists.txt
@@ -213,31 +213,31 @@ if (LIBCXXABI_ENABLE_SHARED)
endif()
add_library(cxxabi-reexports INTERFACE)
-
- # -exported_symbols_list is only available on Apple platforms
- if (APPLE)
- function(export_symbols file)
+ function(reexport_symbols file)
+ # -exported_symbols_list is only available on Apple platforms
+ if (APPLE)
target_link_libraries(cxxabi_shared PRIVATE "-Wl,-exported_symbols_list,${file}")
- endfunction()
- function(reexport_symbols file)
- export_symbols("${file}")
target_link_libraries(cxxabi-reexports INTERFACE "-Wl,-reexported_symbols_list,${file}")
- endfunction()
+ endif()
+ endfunction()
- export_symbols("${CMAKE_CURRENT_SOURCE_DIR}/../lib/itanium-base.exp")
+ reexport_symbols("${CMAKE_CURRENT_SOURCE_DIR}/../lib/cxxabiv1.exp")
+ reexport_symbols("${CMAKE_CURRENT_SOURCE_DIR}/../lib/fundamental-types.exp")
+ reexport_symbols("${CMAKE_CURRENT_SOURCE_DIR}/../lib/itanium-base.exp")
+ reexport_symbols("${CMAKE_CURRENT_SOURCE_DIR}/../lib/std-misc.exp")
- if (LIBCXXABI_ENABLE_NEW_DELETE_DEFINITIONS)
- reexport_symbols("${CMAKE_CURRENT_SOURCE_DIR}/../lib/new-delete.exp")
- endif()
+ if (LIBCXXABI_ENABLE_NEW_DELETE_DEFINITIONS)
+ reexport_symbols("${CMAKE_CURRENT_SOURCE_DIR}/../lib/new-delete.exp")
+ endif()
- if (LIBCXXABI_ENABLE_EXCEPTIONS)
- reexport_symbols("${CMAKE_CURRENT_SOURCE_DIR}/../lib/exceptions.exp")
+ if (LIBCXXABI_ENABLE_EXCEPTIONS)
+ reexport_symbols("${CMAKE_CURRENT_SOURCE_DIR}/../lib/itanium-exceptions.exp")
+ reexport_symbols("${CMAKE_CURRENT_SOURCE_DIR}/../lib/std-exceptions.exp")
- if ("${CMAKE_OSX_ARCHITECTURES}" MATCHES "^(armv6|armv7|armv7s)$")
- reexport_symbols("${CMAKE_CURRENT_SOURCE_DIR}/../lib/personality-sjlj.exp")
- else()
- reexport_symbols("${CMAKE_CURRENT_SOURCE_DIR}/../lib/personality-v0.exp")
- endif()
+ if ("${CMAKE_OSX_ARCHITECTURES}" MATCHES "^(armv6|armv7|armv7s)$")
+ reexport_symbols("${CMAKE_CURRENT_SOURCE_DIR}/../lib/personality-sjlj.exp")
+ else()
+ reexport_symbols("${CMAKE_CURRENT_SOURCE_DIR}/../lib/personality-v0.exp")
endif()
endif()
endif()
>From bd5b154131b477dd5d7fb74d14cb32f0816be831 Mon Sep 17 00:00:00 2001
From: Louis Dionne <ldionne.2 at gmail.com>
Date: Wed, 24 Jan 2024 09:08:38 -0500
Subject: [PATCH 2/3] Update x86_64 Apple abilist
---
...bcxxabi.v1.stable.exceptions.nonew.abilist | 98 +++++++++++++++++++
1 file changed, 98 insertions(+)
diff --git a/libcxx/lib/abi/x86_64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.abilist b/libcxx/lib/abi/x86_64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.abilist
index e827114f169197a..ebee7a429a8392f 100644
--- a/libcxx/lib/abi/x86_64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.abilist
+++ b/libcxx/lib/abi/x86_64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.abilist
@@ -70,26 +70,46 @@
{'is_defined': False, 'name': '__ZSt15get_new_handlerv', 'type': 'U'}
{'is_defined': False, 'name': '__ZSt15set_new_handlerPFvvE', 'type': 'U'}
{'is_defined': False, 'name': '__ZSt9terminatev', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIDh', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIDi', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIDn', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIDs', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIDu', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIN10__cxxabiv116__enum_type_infoE', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIN10__cxxabiv116__shim_type_infoE', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIN10__cxxabiv117__array_type_infoE', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIN10__cxxabiv117__class_type_infoE', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIN10__cxxabiv117__pbase_type_infoE', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIN10__cxxabiv119__pointer_type_infoE', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIN10__cxxabiv120__function_type_infoE', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIN10__cxxabiv120__si_class_type_infoE', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIN10__cxxabiv121__vmi_class_type_infoE', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIN10__cxxabiv123__fundamental_type_infoE', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIN10__cxxabiv129__pointer_to_member_type_infoE', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIPDh', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPDi', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPDn', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPDs', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIPDu', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIPKDh', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKDi', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKDn', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKDs', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIPKDu', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKa', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKb', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKc', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKd', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKe', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKf', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIPKg', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKh', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKi', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKj', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKl', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKm', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIPKn', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIPKo', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKs', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKt', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPKv', 'type': 'U'}
@@ -102,11 +122,14 @@
{'is_defined': False, 'name': '__ZTIPd', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPe', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPf', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIPg', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPh', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPi', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPj', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPl', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPm', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIPn', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIPo', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPs', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPt', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIPv', 'type': 'U'}
@@ -135,21 +158,27 @@
{'is_defined': False, 'name': '__ZTId', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIe', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIf', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIg', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIh', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIi', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIj', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIl', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIm', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIn', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTIo', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIs', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIt', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIv', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIw', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIx', 'type': 'U'}
{'is_defined': False, 'name': '__ZTIy', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSDh', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSDi', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSDn', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSDs', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSDu', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSN10__cxxabiv116__enum_type_infoE', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSN10__cxxabiv116__shim_type_infoE', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSN10__cxxabiv117__array_type_infoE', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSN10__cxxabiv117__class_type_infoE', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSN10__cxxabiv117__pbase_type_infoE', 'type': 'U'}
@@ -159,23 +188,30 @@
{'is_defined': False, 'name': '__ZTSN10__cxxabiv121__vmi_class_type_infoE', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSN10__cxxabiv123__fundamental_type_infoE', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSN10__cxxabiv129__pointer_to_member_type_infoE', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSPDh', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPDi', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPDn', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPDs', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSPDu', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSPKDh', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKDi', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKDn', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKDs', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSPKDu', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKa', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKb', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKc', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKd', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKe', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKf', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSPKg', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKh', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKi', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKj', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKl', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKm', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSPKn', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSPKo', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKs', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKt', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPKv', 'type': 'U'}
@@ -188,11 +224,14 @@
{'is_defined': False, 'name': '__ZTSPd', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPe', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPf', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSPg', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPh', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPi', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPj', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPl', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPm', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSPn', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSPo', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPs', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPt', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSPv', 'type': 'U'}
@@ -221,11 +260,14 @@
{'is_defined': False, 'name': '__ZTSd', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSe', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSf', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSg', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSh', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSi', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSj', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSl', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSm', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSn', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTSo', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSs', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSt', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSv', 'type': 'U'}
@@ -233,6 +275,7 @@
{'is_defined': False, 'name': '__ZTSx', 'type': 'U'}
{'is_defined': False, 'name': '__ZTSy', 'type': 'U'}
{'is_defined': False, 'name': '__ZTVN10__cxxabiv116__enum_type_infoE', 'type': 'U'}
+{'is_defined': False, 'name': '__ZTVN10__cxxabiv116__shim_type_infoE', 'type': 'U'}
{'is_defined': False, 'name': '__ZTVN10__cxxabiv117__array_type_infoE', 'type': 'U'}
{'is_defined': False, 'name': '__ZTVN10__cxxabiv117__class_type_infoE', 'type': 'U'}
{'is_defined': False, 'name': '__ZTVN10__cxxabiv117__pbase_type_infoE', 'type': 'U'}
@@ -301,12 +344,16 @@
{'is_defined': False, 'name': '___cxa_guard_release', 'type': 'U'}
{'is_defined': False, 'name': '___cxa_increment_exception_refcount', 'type': 'U'}
{'is_defined': False, 'name': '___cxa_init_primary_exception', 'type': 'U'}
+{'is_defined': False, 'name': '___cxa_new_handler', 'type': 'U'}
{'is_defined': False, 'name': '___cxa_pure_virtual', 'type': 'U'}
{'is_defined': False, 'name': '___cxa_rethrow', 'type': 'U'}
{'is_defined': False, 'name': '___cxa_rethrow_primary_exception', 'type': 'U'}
+{'is_defined': False, 'name': '___cxa_terminate_handler', 'type': 'U'}
{'is_defined': False, 'name': '___cxa_throw', 'type': 'U'}
{'is_defined': False, 'name': '___cxa_throw_bad_array_new_length', 'type': 'U'}
+{'is_defined': False, 'name': '___cxa_uncaught_exception', 'type': 'U'}
{'is_defined': False, 'name': '___cxa_uncaught_exceptions', 'type': 'U'}
+{'is_defined': False, 'name': '___cxa_unexpected_handler', 'type': 'U'}
{'is_defined': False, 'name': '___cxa_vec_cctor', 'type': 'U'}
{'is_defined': False, 'name': '___cxa_vec_cleanup', 'type': 'U'}
{'is_defined': False, 'name': '___cxa_vec_ctor', 'type': 'U'}
@@ -1944,9 +1991,22 @@
{'is_defined': True, 'name': '__ZTCNSt3__19strstreamE0_NS_13basic_istreamIcNS_11char_traitsIcEEEE', 'size': 0, 'type': 'OBJECT'}
{'is_defined': True, 'name': '__ZTCNSt3__19strstreamE0_NS_14basic_iostreamIcNS_11char_traitsIcEEEE', 'size': 0, 'type': 'OBJECT'}
{'is_defined': True, 'name': '__ZTCNSt3__19strstreamE16_NS_13basic_ostreamIcNS_11char_traitsIcEEEE', 'size': 0, 'type': 'OBJECT'}
+{'is_defined': True, 'name': '__ZTIDh', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIDi', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIDn', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIDs', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIDu', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIN10__cxxabiv116__enum_type_infoE', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIN10__cxxabiv116__shim_type_infoE', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIN10__cxxabiv117__array_type_infoE', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIN10__cxxabiv117__class_type_infoE', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIN10__cxxabiv117__pbase_type_infoE', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIN10__cxxabiv119__pointer_type_infoE', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIN10__cxxabiv120__function_type_infoE', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIN10__cxxabiv120__si_class_type_infoE', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIN10__cxxabiv121__vmi_class_type_infoE', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIN10__cxxabiv123__fundamental_type_infoE', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIN10__cxxabiv129__pointer_to_member_type_infoE', 'type': 'I'}
{'is_defined': True, 'name': '__ZTINSt12experimental15fundamentals_v112bad_any_castE', 'size': 0, 'type': 'OBJECT'}
{'is_defined': True, 'name': '__ZTINSt12experimental19bad_optional_accessE', 'size': 0, 'type': 'OBJECT'}
{'is_defined': True, 'name': '__ZTINSt3__110__time_getE', 'size': 0, 'type': 'OBJECT'}
@@ -2077,23 +2137,30 @@
{'is_defined': True, 'name': '__ZTINSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE', 'size': 0, 'type': 'OBJECT'}
{'is_defined': True, 'name': '__ZTINSt3__19strstreamE', 'size': 0, 'type': 'OBJECT'}
{'is_defined': True, 'name': '__ZTINSt3__19time_baseE', 'size': 0, 'type': 'OBJECT'}
+{'is_defined': True, 'name': '__ZTIPDh', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPDi', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPDn', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPDs', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIPDu', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIPKDh', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKDi', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKDn', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKDs', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIPKDu', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKa', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKb', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKc', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKd', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKe', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKf', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIPKg', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKh', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKi', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKj', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKl', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKm', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIPKn', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIPKo', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKs', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKt', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPKv', 'type': 'I'}
@@ -2106,11 +2173,14 @@
{'is_defined': True, 'name': '__ZTIPd', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPe', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPf', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIPg', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPh', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPi', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPj', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPl', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPm', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIPn', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIPo', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPs', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPt', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIPv', 'type': 'I'}
@@ -2143,21 +2213,27 @@
{'is_defined': True, 'name': '__ZTId', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIe', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIf', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIg', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIh', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIi', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIj', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIl', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIm', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIn', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTIo', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIs', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIt', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIv', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIw', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIx', 'type': 'I'}
{'is_defined': True, 'name': '__ZTIy', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSDh', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSDi', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSDn', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSDs', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSDu', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSN10__cxxabiv116__enum_type_infoE', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSN10__cxxabiv116__shim_type_infoE', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSN10__cxxabiv117__array_type_infoE', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSN10__cxxabiv117__class_type_infoE', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSN10__cxxabiv117__pbase_type_infoE', 'type': 'I'}
@@ -2260,23 +2336,30 @@
{'is_defined': True, 'name': '__ZTSNSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE', 'size': 0, 'type': 'OBJECT'}
{'is_defined': True, 'name': '__ZTSNSt3__19strstreamE', 'size': 0, 'type': 'OBJECT'}
{'is_defined': True, 'name': '__ZTSNSt3__19time_baseE', 'size': 0, 'type': 'OBJECT'}
+{'is_defined': True, 'name': '__ZTSPDh', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPDi', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPDn', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPDs', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSPDu', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSPKDh', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKDi', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKDn', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKDs', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSPKDu', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKa', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKb', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKc', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKd', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKe', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKf', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSPKg', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKh', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKi', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKj', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKl', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKm', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSPKn', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSPKo', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKs', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKt', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPKv', 'type': 'I'}
@@ -2289,11 +2372,14 @@
{'is_defined': True, 'name': '__ZTSPd', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPe', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPf', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSPg', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPh', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPi', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPj', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPl', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPm', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSPn', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSPo', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPs', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPt', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSPv', 'type': 'I'}
@@ -2326,11 +2412,14 @@
{'is_defined': True, 'name': '__ZTSd', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSe', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSf', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSg', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSh', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSi', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSj', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSl', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSm', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSn', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTSo', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSs', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSt', 'type': 'I'}
{'is_defined': True, 'name': '__ZTSv', 'type': 'I'}
@@ -2351,6 +2440,7 @@
{'is_defined': True, 'name': '__ZTTNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE', 'size': 0, 'type': 'OBJECT'}
{'is_defined': True, 'name': '__ZTTNSt3__19strstreamE', 'size': 0, 'type': 'OBJECT'}
{'is_defined': True, 'name': '__ZTVN10__cxxabiv116__enum_type_infoE', 'type': 'I'}
+{'is_defined': True, 'name': '__ZTVN10__cxxabiv116__shim_type_infoE', 'type': 'I'}
{'is_defined': True, 'name': '__ZTVN10__cxxabiv117__array_type_infoE', 'type': 'I'}
{'is_defined': True, 'name': '__ZTVN10__cxxabiv117__class_type_infoE', 'type': 'I'}
{'is_defined': True, 'name': '__ZTVN10__cxxabiv117__pbase_type_infoE', 'type': 'I'}
@@ -2534,6 +2624,8 @@
{'is_defined': True, 'name': '___cxa_begin_catch', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_call_unexpected', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_current_exception_type', 'type': 'I'}
+{'is_defined': True, 'name': '___cxa_current_primary_exception', 'type': 'I'}
+{'is_defined': True, 'name': '___cxa_decrement_exception_refcount', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_deleted_virtual', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_demangle', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_end_catch', 'type': 'I'}
@@ -2545,12 +2637,18 @@
{'is_defined': True, 'name': '___cxa_guard_abort', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_guard_acquire', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_guard_release', 'type': 'I'}
+{'is_defined': True, 'name': '___cxa_increment_exception_refcount', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_init_primary_exception', 'type': 'I'}
+{'is_defined': True, 'name': '___cxa_new_handler', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_pure_virtual', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_rethrow', 'type': 'I'}
+{'is_defined': True, 'name': '___cxa_rethrow_primary_exception', 'type': 'I'}
+{'is_defined': True, 'name': '___cxa_terminate_handler', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_throw', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_throw_bad_array_new_length', 'type': 'I'}
+{'is_defined': True, 'name': '___cxa_uncaught_exception', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_uncaught_exceptions', 'type': 'I'}
+{'is_defined': True, 'name': '___cxa_unexpected_handler', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_vec_cctor', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_vec_cleanup', 'type': 'I'}
{'is_defined': True, 'name': '___cxa_vec_ctor', 'type': 'I'}
>From 1167ae88bbdca3ca0bdb029c3976fdccd6d6e313 Mon Sep 17 00:00:00 2001
From: Louis Dionne <ldionne.2 at gmail.com>
Date: Wed, 24 Jan 2024 09:25:24 -0500
Subject: [PATCH 3/3] XFAIL __cxa_uncaught_exception() test
---
libcxxabi/test/uncaught_exception.pass.cpp | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/libcxxabi/test/uncaught_exception.pass.cpp b/libcxxabi/test/uncaught_exception.pass.cpp
index eb80fcc14f459db..58716722ffc796b 100644
--- a/libcxxabi/test/uncaught_exception.pass.cpp
+++ b/libcxxabi/test/uncaught_exception.pass.cpp
@@ -11,6 +11,13 @@
// This tests that libc++abi still provides __cxa_uncaught_exception() for
// ABI compatibility, even though the Standard doesn't require it to.
+// __cxa_uncaught_exception was not re-exported from libc++ previously. This leads
+// to undefined symbols when linking against a libc++ that re-exports the symbols,
+// but running against a libc++ that doesn't. Fortunately, usage of __cxa_uncaught_exception()
+// in the wild seems to be close to non-existent.
+// XFAIL: stdlib=apple-libc++ && target={{.+}}-apple-macosx10.{{9|10|11|12|13|14}}
+// XFAIL: stdlib=apple-libc++ && target={{.+}}-apple-macosx{{11|12|13|14}}
+
#include <cxxabi.h>
#include <cassert>
More information about the libcxx-commits
mailing list