3 This changelog contains information about ABI changes in libc++. Specifically
4 the addition and deletion of symbols from the libc++ dylib.
6 Each entry should start with the revision number followed by a description of
7 the change. The entry should contain a summary of the ABI changes made,
8 including what symbols were added, removed, or changed.
10 To generate a summary, re-generate the new ABI list using the
11 `generate-cxx-abilist` target, and look at the diff.
13 New entries should be added directly below the "Version" header.
19 * [libcxx][libc] Implements from_chars floating-point
23 Symbol added: _ZNSt3__127__from_chars_floating_pointIdEENS_19__from_chars_resultIT_EEPKcS5_NS_12chars_formatE
24 Symbol added: _ZNSt3__127__from_chars_floating_pointIfEENS_19__from_chars_resultIT_EEPKcS5_NS_12chars_formatE
26 * [libc++] Stop trying to avoid exporting some typeinfo names
28 This patch removes the explicit list of symbols to avoid exporting
29 from the library, which at this point doesn't cover much anyways.
30 That makes us export some new symbols on Appl platforms, namely the
31 typeinfo names for some implementation-detail types. While we
32 technically wouldn't have to export those (I don't think any user
33 can get their hands on those typeinfo names), that makes the library
34 more consistent on all platforms.
38 Symbol added: __ZTSNSt3__114__codecvt_utf8IDsEE
39 Symbol added: __ZTSNSt3__114__codecvt_utf8IwEE
40 Symbol added: __ZTSNSt3__114__shared_countE
41 Symbol added: __ZTSNSt3__114codecvt_bynameIDiDu11__mbstate_tEE
42 Symbol added: __ZTSNSt3__114codecvt_bynameIDic11__mbstate_tEE
43 Symbol added: __ZTSNSt3__114codecvt_bynameIDsDu11__mbstate_tEE
44 Symbol added: __ZTSNSt3__114codecvt_bynameIDsc11__mbstate_tEE
45 Symbol added: __ZTSNSt3__114codecvt_bynameIcc11__mbstate_tEE
46 Symbol added: __ZTSNSt3__114codecvt_bynameIwc11__mbstate_tEE
47 Symbol added: __ZTSNSt3__115__codecvt_utf16IDiLb0EEE
48 Symbol added: __ZTSNSt3__115__codecvt_utf16IDiLb1EEE
49 Symbol added: __ZTSNSt3__115__codecvt_utf16IDsLb0EEE
50 Symbol added: __ZTSNSt3__115__codecvt_utf16IDsLb1EEE
51 Symbol added: __ZTSNSt3__115__codecvt_utf16IwLb0EEE
52 Symbol added: __ZTSNSt3__115__codecvt_utf16IwLb1EEE
53 Symbol added: __ZTSNSt3__116__narrow_to_utf8ILm16EEE
54 Symbol added: __ZTSNSt3__116__narrow_to_utf8ILm32EEE
55 Symbol added: __ZTSNSt3__117__assoc_sub_stateE
56 Symbol added: __ZTSNSt3__117__widen_from_utf8ILm16EEE
57 Symbol added: __ZTSNSt3__117__widen_from_utf8ILm32EEE
58 Symbol added: __ZTSNSt3__119__shared_weak_countE
59 Symbol added: __ZTSNSt3__120__codecvt_utf8_utf16IDiEE
60 Symbol added: __ZTSNSt3__120__codecvt_utf8_utf16IDsEE
61 Symbol added: __ZTSNSt3__120__codecvt_utf8_utf16IwEE
67 * [libc++] Avoid re-exporting a few specific symbols from libc++abi
69 In 6a884a9aef39, I synchronized the export list of libc++abi to the
70 export list of libc++. From the linker's perspective, this caused
71 these symbols to be taken from libc++.dylib instead of libc++abi.dylib.
73 However, that can be problematic when back-deploying. Indeed, this means
74 that the linker will encode an undefined reference to be fullfilled by
75 libc++.dylib, but when backdeploying against an older system, that symbol
76 might only be available in libc++abi.dylib.
78 Most of the symbols that started being re-exported after 6a884a9aef39
79 turn out to be implementation details of libc++abi, so nobody really
80 depends on them and this back-deployment issue is inconsequential.
82 However, we ran into issues with a few of these symbols while testing
83 LLVM 19, which led to this patch.
85 In the future, a follow-up cleanup would be to stop exporting most of
86 the _cxxabiv1_foo_type_infoE symbols from both libc++abi and libc++
87 since they are implementation details that nobody should be relying
92 Symbol not reexported anymore: ___cxa_rethrow_primary_exception
93 Symbol not reexported anymore: __ZTIN10__cxxabiv117__class_type_infoE
94 Symbol not reexported anymore: __ZTIN10__cxxabiv120__si_class_type_infoE
95 Symbol not reexported anymore: __ZTIN10__cxxabiv121__vmi_class_type_infoE
97 * [libc++] Always keep libc++abi re-exports up-to-date
99 This patch makes sure that the set of libc++abi symbols re-exported from libc++
100 is up-to-date with the symbols that libc++abi re-exports. As such, it adds several
101 symbols that were left out of the libc++ re-exports list. Exporting new symbols
106 Symbol reexported: ___cxa_current_primary_exception
107 Symbol reexported: ___cxa_decrement_exception_refcount
108 Symbol reexported: ___cxa_increment_exception_refcount
109 Symbol reexported: ___cxa_new_handler
110 Symbol reexported: ___cxa_rethrow_primary_exception
111 Symbol reexported: ___cxa_terminate_handler
112 Symbol reexported: ___cxa_uncaught_exception
113 Symbol reexported: ___cxa_unexpected_handler
114 Symbol reexported: __ZTIDh
115 Symbol reexported: __ZTIDu
116 Symbol reexported: __ZTIg
117 Symbol reexported: __ZTIn
118 Symbol reexported: __ZTIN10__cxxabiv116__enum_type_infoE
119 Symbol reexported: __ZTIN10__cxxabiv116__shim_type_infoE
120 Symbol reexported: __ZTIN10__cxxabiv117__array_type_infoE
121 Symbol reexported: __ZTIN10__cxxabiv117__class_type_infoE
122 Symbol reexported: __ZTIN10__cxxabiv117__pbase_type_infoE
123 Symbol reexported: __ZTIN10__cxxabiv119__pointer_type_infoE
124 Symbol reexported: __ZTIN10__cxxabiv120__function_type_infoE
125 Symbol reexported: __ZTIN10__cxxabiv120__si_class_type_infoE
126 Symbol reexported: __ZTIN10__cxxabiv121__vmi_class_type_infoE
127 Symbol reexported: __ZTIN10__cxxabiv123__fundamental_type_infoE
128 Symbol reexported: __ZTIN10__cxxabiv129__pointer_to_member_type_infoE
129 Symbol reexported: __ZTIo
130 Symbol reexported: __ZTIPDh
131 Symbol reexported: __ZTIPDu
132 Symbol reexported: __ZTIPg
133 Symbol reexported: __ZTIPKDh
134 Symbol reexported: __ZTIPKDu
135 Symbol reexported: __ZTIPKg
136 Symbol reexported: __ZTIPKn
137 Symbol reexported: __ZTIPKo
138 Symbol reexported: __ZTIPn
139 Symbol reexported: __ZTIPo
140 Symbol reexported: __ZTSDh
141 Symbol reexported: __ZTSDu
142 Symbol reexported: __ZTSg
143 Symbol reexported: __ZTSn
144 Symbol reexported: __ZTSN10__cxxabiv116__shim_type_infoE
145 Symbol reexported: __ZTSo
146 Symbol reexported: __ZTSPDh
147 Symbol reexported: __ZTSPDu
148 Symbol reexported: __ZTSPg
149 Symbol reexported: __ZTSPKDh
150 Symbol reexported: __ZTSPKDu
151 Symbol reexported: __ZTSPKg
152 Symbol reexported: __ZTSPKn
153 Symbol reexported: __ZTSPKo
154 Symbol reexported: __ZTSPn
155 Symbol reexported: __ZTSPo
156 Symbol reexported: __ZTVN10__cxxabiv116__shim_type_infoE
162 * [libc++] Moves is_terminal to the dylib
164 The patch moves the POSIX implementation of is_terminal to the dylib. This is
165 needed to avoid using <unistd.h> in public headers.
168 Symbol added: _ZNSt6__ndk119__is_posix_terminalEP7__sFILE
170 * [libc++abi] Implement __cxa_init_primary_exception and use it to optimize std::make_exception_ptr (#65534)
172 This patch implements __cxa_init_primary_exception, an extension to the Itanium C++ ABI.
173 This extension is already present in both libsupc++ and libcxxrt. This patch also starts
174 making use of this function in std::make_exception_ptr: instead of going through a full
175 throw/catch cycle, we are now able to initialize an exception directly, thus making
176 std::make_exception_ptr around 30x faster. Adding a new symbol is not an ABI break.
180 Symbol added: __cxa_init_primary_exception
182 * [libc++] Simplify the implementation of locale::id
184 This patch removes a symbol defined in the library for std::locale::id::__init().
185 The symbol '__init' was defined as a private static function as part of the locale::id
186 class and was never visible from outside the dylib. The addition of this symbol to the
187 ABI was most likely accidental. The deletion of the symbol should not be a breaking change.
191 Symbol removed: _ZNSt3__16locale2id6__initEv
193 * [libc++] Remove symbol for std::system_error from the dylib
195 This patch removes a symbol defined in the library for std::system_error.
196 The symbol '__init' was defined as a private static function as part of the
197 system_error class and was never visible. The addition of this symbol to the ABI was most likely accidental.
198 The function '__init' is replaced by another equivalent function which is placed in the
199 anonymous namespace of the std::system_error source code file.
200 There are no internal references to this symbol which seems to support the reasoning that
201 this was never used outside of the dylib.
202 The deletion of the symbol should not be a breaking change.
206 Symbol removed: _ZNSt3__112system_error6__initERKNS_10error_codeENS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE
212 * [libc++] Remove symbols for a std::allocator_arg & friends from the dylib
214 This patch removes the symbols defined in the library for std::allocator_arg,
215 std::defer_lock, std::try_to_lock, std::adopt_lock, and std::piecewise_construct.
216 Those were defined in the library because we provided them in C++03 as an
217 extension, and in C++03 it was impossible to define them as `constexpr`
218 variables, as required by the Standard.
220 This is technically an ABI break since we are removing symbols from the
221 library. However, in practice, only programs compiled in C++03 mode that
222 take the address of those objects (or pass them as a reference) will have
223 an undefined ref to those symbols. In practice, this is expected to be
224 rare. First, those are C++11 features that we happen to provide in C++03,
225 and only the C++03 definition can potentially lead to code referencing
226 the dylib definition. So any code that is using these objects but compiling
227 in C++11 mode (as they should) is not at risk. Second, all uses of these
228 types in the library is done by passing those types by value to a function
229 that can get inlined. Since they are empty types, the compiler won't
230 generate an undefined reference if passed by value, since there's nothing
233 Long story short, the risk for code actually containing an undefined
234 reference to one of these types is rather small (but non-zero).
238 Symbol removed: _ZNSt3__110adopt_lockE
239 Symbol removed: _ZNSt3__110defer_lockE
240 Symbol removed: _ZNSt3__111try_to_lockE
241 Symbol removed: _ZNSt3__113allocator_argE
242 Symbol removed: _ZNSt3__119piecewise_constructE
244 * [libc++] Remove explicit instantiations of __insertion_sort_incomplete and __sort5 from the dylib
246 These instantiations were never visible, because they are only used in `__sort`, which is also explicitly
247 instantiated in the dylib.
251 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessIaaEEPaEEbT0_S5_T_
252 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessIccEEPcEEbT0_S5_T_
253 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessIddEEPdEEbT0_S5_T_
254 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessIeeEEPeEEbT0_S5_T_
255 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessIffEEPfEEbT0_S5_T_
256 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessIhhEEPhEEbT0_S5_T_
257 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessIiiEEPiEEbT0_S5_T_
258 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessIjjEEPjEEbT0_S5_T_
259 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessIllEEPlEEbT0_S5_T_
260 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessImmEEPmEEbT0_S5_T_
261 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessIssEEPsEEbT0_S5_T_
262 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessIttEEPtEEbT0_S5_T_
263 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessIwwEEPwEEbT0_S5_T_
264 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessIxxEEPxEEbT0_S5_T_
265 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessIyyEEPyEEbT0_S5_T_
266 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIeeEEPeEEjT0_S5_S5_S5_S5_T_
272 * [libc++][PMR] Move the pmr::memory_resource destructor into the dylib
276 Symbol added: _ZNSt3__13pmr15memory_resourceD0Ev
277 Symbol added: _ZNSt3__13pmr15memory_resourceD1Ev
278 Symbol added: _ZNSt3__13pmr15memory_resourceD2Ev
279 Symbol added: _ZTVNSt3__13pmr15memory_resourceE
281 * [libc++] [C++17] Implement <memory_resource>.
283 This commit adds <memory_resource> to the shared library.
287 Symbol added: _ZNKSt3__13pmr26synchronized_pool_resource11do_is_equalERKNS0_15memory_resourceE
288 Symbol added: _ZNKSt3__13pmr28unsynchronized_pool_resource12__pool_indexEmm
289 Symbol added: _ZNKSt3__13pmr28unsynchronized_pool_resource17__pool_block_sizeEi
290 Symbol added: _ZNKSt3__13pmr28unsynchronized_pool_resource22__log2_pool_block_sizeEi
291 Symbol added: _ZNKSt3__13pmr28unsynchronized_pool_resource7optionsEv
292 Symbol added: _ZNSt3__13pmr19new_delete_resourceEv
293 Symbol added: _ZNSt3__13pmr20get_default_resourceEv
294 Symbol added: _ZNSt3__13pmr20null_memory_resourceEv
295 Symbol added: _ZNSt3__13pmr20set_default_resourceEPNS0_15memory_resourceE
296 Symbol added: _ZNSt3__13pmr25monotonic_buffer_resource11do_allocateEmm
297 Symbol added: _ZNSt3__13pmr25monotonic_buffer_resource14__chunk_footer25__try_allocate_from_chunkEmm
298 Symbol added: _ZNSt3__13pmr25monotonic_buffer_resource20__initial_descriptor25__try_allocate_from_chunkEmm
299 Symbol added: _ZNSt3__13pmr28unsynchronized_pool_resource11do_allocateEmm
300 Symbol added: _ZNSt3__13pmr28unsynchronized_pool_resource12__adhoc_pool13__do_allocateEPNS0_15memory_resourceEmm
301 Symbol added: _ZNSt3__13pmr28unsynchronized_pool_resource12__adhoc_pool13__release_ptrEPNS0_15memory_resourceE
302 Symbol added: _ZNSt3__13pmr28unsynchronized_pool_resource12__adhoc_pool15__do_deallocateEPNS0_15memory_resourceEPvmm
303 Symbol added: _ZNSt3__13pmr28unsynchronized_pool_resource13do_deallocateEPvmm
304 Symbol added: _ZNSt3__13pmr28unsynchronized_pool_resource7releaseEv
305 Symbol added: _ZNSt3__13pmr28unsynchronized_pool_resourceC1ERKNS0_12pool_optionsEPNS0_15memory_resourceE
306 Symbol added: _ZNSt3__13pmr28unsynchronized_pool_resourceC2ERKNS0_12pool_optionsEPNS0_15memory_resourceE
307 Symbol added: _ZTINSt3__13pmr15memory_resourceE
308 Symbol added: _ZTINSt3__13pmr25monotonic_buffer_resourceE
309 Symbol added: _ZTINSt3__13pmr26__null_memory_resource_impE
310 Symbol added: _ZTINSt3__13pmr26synchronized_pool_resourceE
311 Symbol added: _ZTINSt3__13pmr28unsynchronized_pool_resourceE
312 Symbol added: _ZTINSt3__13pmr32__new_delete_memory_resource_impE
313 Symbol added: _ZTSNSt3__13pmr15memory_resourceE
314 Symbol added: _ZTSNSt3__13pmr25monotonic_buffer_resourceE
315 Symbol added: _ZTSNSt3__13pmr26__null_memory_resource_impE
316 Symbol added: _ZTSNSt3__13pmr26synchronized_pool_resourceE
317 Symbol added: _ZTSNSt3__13pmr28unsynchronized_pool_resourceE
318 Symbol added: _ZTSNSt3__13pmr32__new_delete_memory_resource_impE
319 Symbol added: _ZTVNSt3__13pmr25monotonic_buffer_resourceE
320 Symbol added: _ZTVNSt3__13pmr26synchronized_pool_resourceE
321 Symbol added: _ZTVNSt3__13pmr28unsynchronized_pool_resourceE
327 * f1c30135417f - [libc++] Drop the legacy debug mode symbols by default
329 This commit removed symbols implementing debug mode in the non-debug
330 configuration of the library. Using the debug mode now requires a
331 differently-configured version of libc++. This is technically an ABI
332 break, however any user having been using the debug mode support previously
333 was already at risk of non-benign ODR violations, and in practice we
334 never found it to work reliably.
338 Symbol removed: _ZNKSt3__111__libcpp_db15__decrementableEPKv
339 Symbol removed: _ZNKSt3__111__libcpp_db15__find_c_from_iEPv
340 Symbol removed: _ZNKSt3__111__libcpp_db15__subscriptableEPKvl
341 Symbol removed: _ZNKSt3__111__libcpp_db17__dereferenceableEPKv
342 Symbol removed: _ZNKSt3__111__libcpp_db17__find_c_and_lockEPv
343 Symbol removed: _ZNKSt3__111__libcpp_db22__less_than_comparableEPKvS2_
344 Symbol removed: _ZNKSt3__111__libcpp_db6unlockEv
345 Symbol removed: _ZNKSt3__111__libcpp_db8__find_cEPv
346 Symbol removed: _ZNKSt3__111__libcpp_db9__addableEPKvl
347 Symbol removed: _ZNKSt3__119__libcpp_debug_info4whatEv
348 Symbol removed: _ZNSt3__111__libcpp_db10__insert_cEPvPFPNS_8__c_nodeES1_S1_S3_E
349 Symbol removed: _ZNSt3__111__libcpp_db10__insert_iEPv
350 Symbol removed: _ZNSt3__111__libcpp_db11__insert_icEPvPKv
351 Symbol removed: _ZNSt3__111__libcpp_db15__iterator_copyEPvPKv
352 Symbol removed: _ZNSt3__111__libcpp_db16__invalidate_allEPv
353 Symbol removed: _ZNSt3__111__libcpp_db4swapEPvS1_
354 Symbol removed: _ZNSt3__111__libcpp_db9__erase_cEPv
355 Symbol removed: _ZNSt3__111__libcpp_db9__erase_iEPv
356 Symbol removed: _ZNSt3__111__libcpp_dbC1Ev
357 Symbol removed: _ZNSt3__111__libcpp_dbC2Ev
358 Symbol removed: _ZNSt3__111__libcpp_dbD1Ev
359 Symbol removed: _ZNSt3__111__libcpp_dbD2Ev
360 Symbol removed: _ZNSt3__114__get_const_dbEv
361 Symbol removed: _ZNSt3__123__libcpp_debug_functionE
362 Symbol removed: _ZNSt3__127__libcpp_set_debug_functionEPFvRKNS_19__libcpp_debug_infoEE
363 Symbol removed: _ZNSt3__129__libcpp_abort_debug_functionERKNS_19__libcpp_debug_infoE
364 Symbol removed: _ZNSt3__18__c_node5__addEPNS_8__i_nodeE
365 Symbol removed: _ZNSt3__18__c_nodeD0Ev
366 Symbol removed: _ZNSt3__18__c_nodeD1Ev
367 Symbol removed: _ZNSt3__18__c_nodeD2Ev
368 Symbol removed: _ZNSt3__18__get_dbEv
369 Symbol removed: _ZNSt3__18__i_nodeD1Ev
370 Symbol removed: _ZNSt3__18__i_nodeD2Ev
371 Symbol removed: _ZTINSt3__18__c_nodeE
372 Symbol removed: _ZTSNSt3__18__c_nodeE
373 Symbol removed: _ZTVNSt3__18__c_nodeE
375 * b0fd9497af6d, 7de5aca84c54 and 507125af3d0b - [libc++] Add a lightweight overridable assertion handler
377 This patch adds a lightweight assertion handler mechanism that can be
378 overriden at link-time in a fashion similar to `operator new`. A default
379 assertion handler is provided in the shared library, hence the added
384 Symbol added: _ZNSt3__122__libcpp_verbose_abortEPKcz
390 * abb5dd6e99df - [libc++] `to_chars` for floating point.
392 This commit added the `to_chars` implementation for floating point values.
393 The entire implementation resides in the dylib and the functions specified
394 in the Standard are now part of the ABI.
398 Symbol added: _ZNSt3__18to_charsEPcS0_d
399 Symbol added: _ZNSt3__18to_charsEPcS0_dNS_12chars_formatE
400 Symbol added: _ZNSt3__18to_charsEPcS0_dNS_12chars_formatEi
401 Symbol added: _ZNSt3__18to_charsEPcS0_e
402 Symbol added: _ZNSt3__18to_charsEPcS0_eNS_12chars_formatE
403 Symbol added: _ZNSt3__18to_charsEPcS0_eNS_12chars_formatEi
404 Symbol added: _ZNSt3__18to_charsEPcS0_f
405 Symbol added: _ZNSt3__18to_charsEPcS0_fNS_12chars_formatE
406 Symbol added: _ZNSt3__18to_charsEPcS0_fNS_12chars_formatEi
408 * 049f6c29a6f0 - [libc++] Resolve missing table_size symbol
410 This commit added an out-of-line definition for `table_size` in the library.
411 This is not an ABI break since we are just adding a symbol to the library.
412 In fact, any program that would have attempted to refer to that symbol would
413 have previously failed to link.
416 -------------------------
417 Symbol added: _ZNSt3__15ctypeIcE10table_sizeE
419 x86_64-unknown-linux-gnu
420 ------------------------
421 Symbol added: _ZNSt3__15ctypeIcE10table_sizeE
423 * 434dc0a5bcae - [libc++] Always define a key function for std::bad_function_call in the dylib
425 This commit added a new explicit instantiation of std::bad_function_call's
426 vtable in the shared library. This change is not an ABI break as it only
427 adds symbols to the library. Programs compiled against the library will not
428 rely on the vtable being defined in it by default. Reliance on the vtable
429 being in the shared library can be enabled by defining the
430 _LIBCPP_ABI_BAD_FUNCTION_CALL_KEY_FUNCTION macro.
432 Note that this commit also causes the libc++ shared library to start relying
433 on std::exception::what() being provided. This is due to the fact that the
434 shared library now contains the vtable for std::bad_function_call, which
435 references std::exception::what(). This shouldn't be an issue since that
436 function needs to be available to users in order to use std::bad_function_call
437 before this patch too.
441 Symbol added: _ZNSt3__117bad_function_callD0Ev
442 Symbol added: _ZNSt3__117bad_function_callD1Ev
443 Symbol added: _ZNSt3__117bad_function_callD2Ev
444 Symbol added: _ZTINSt3__117bad_function_callE
445 Symbol added: _ZTSNSt3__117bad_function_callE
446 Symbol added: _ZTVNSt3__117bad_function_callE
448 <arch>-unknown-linux-gnu
449 ------------------------
450 Added dependency on symbol: _ZNKSt9exception4whatEv
456 * a984dcaf7c21 - [libc++] [P0482] [C++20] Implement missing bits for codecvt and codecvt_byname.
458 This commit added new instantiations with char8_t for classes codecvt and
459 codecvt_byname in <locale> in the library.
463 Symbol added: _ZNKSt3__17codecvtIDiDu11__mbstate_tE10do_unshiftERS1_PDuS4_RS4_
464 Symbol added: _ZNKSt3__17codecvtIDiDu11__mbstate_tE11do_encodingEv
465 Symbol added: _ZNKSt3__17codecvtIDiDu11__mbstate_tE13do_max_lengthEv
466 Symbol added: _ZNKSt3__17codecvtIDiDu11__mbstate_tE16do_always_noconvEv
467 Symbol added: _ZNKSt3__17codecvtIDiDu11__mbstate_tE5do_inERS1_PKDuS5_RS5_PDiS7_RS7_
468 Symbol added: _ZNKSt3__17codecvtIDiDu11__mbstate_tE6do_outERS1_PKDiS5_RS5_PDuS7_RS7_
469 Symbol added: _ZNKSt3__17codecvtIDiDu11__mbstate_tE9do_lengthERS1_PKDuS5_m
470 Symbol added: _ZNKSt3__17codecvtIDsDu11__mbstate_tE10do_unshiftERS1_PDuS4_RS4_
471 Symbol added: _ZNKSt3__17codecvtIDsDu11__mbstate_tE11do_encodingEv
472 Symbol added: _ZNKSt3__17codecvtIDsDu11__mbstate_tE13do_max_lengthEv
473 Symbol added: _ZNKSt3__17codecvtIDsDu11__mbstate_tE16do_always_noconvEv
474 Symbol added: _ZNKSt3__17codecvtIDsDu11__mbstate_tE5do_inERS1_PKDuS5_RS5_PDsS7_RS7_
475 Symbol added: _ZNKSt3__17codecvtIDsDu11__mbstate_tE6do_outERS1_PKDsS5_RS5_PDuS7_RS7_
476 Symbol added: _ZNKSt3__17codecvtIDsDu11__mbstate_tE9do_lengthERS1_PKDuS5_m
477 Symbol added: _ZNSt3__114codecvt_bynameIDiDu11__mbstate_tED0Ev
478 Symbol added: _ZNSt3__114codecvt_bynameIDiDu11__mbstate_tED1Ev
479 Symbol added: _ZNSt3__114codecvt_bynameIDiDu11__mbstate_tED2Ev
480 Symbol added: _ZNSt3__114codecvt_bynameIDsDu11__mbstate_tED0Ev
481 Symbol added: _ZNSt3__114codecvt_bynameIDsDu11__mbstate_tED1Ev
482 Symbol added: _ZNSt3__114codecvt_bynameIDsDu11__mbstate_tED2Ev
483 Symbol added: _ZNSt3__17codecvtIDiDu11__mbstate_tE2idE
484 Symbol added: _ZNSt3__17codecvtIDiDu11__mbstate_tED0Ev
485 Symbol added: _ZNSt3__17codecvtIDiDu11__mbstate_tED1Ev
486 Symbol added: _ZNSt3__17codecvtIDiDu11__mbstate_tED2Ev
487 Symbol added: _ZNSt3__17codecvtIDsDu11__mbstate_tE2idE
488 Symbol added: _ZNSt3__17codecvtIDsDu11__mbstate_tED0Ev
489 Symbol added: _ZNSt3__17codecvtIDsDu11__mbstate_tED1Ev
490 Symbol added: _ZNSt3__17codecvtIDsDu11__mbstate_tED2Ev
491 Symbol added: _ZTINSt3__114codecvt_bynameIDiDu11__mbstate_tEE
492 Symbol added: _ZTINSt3__114codecvt_bynameIDsDu11__mbstate_tEE
493 Symbol added: _ZTINSt3__17codecvtIDiDu11__mbstate_tEE
494 Symbol added: _ZTINSt3__17codecvtIDsDu11__mbstate_tEE
495 Symbol added: _ZTSNSt3__17codecvtIDiDu11__mbstate_tEE
496 Symbol added: _ZTSNSt3__17codecvtIDsDu11__mbstate_tEE
497 Symbol added: _ZTVNSt3__114codecvt_bynameIDiDu11__mbstate_tEE
498 Symbol added: _ZTVNSt3__114codecvt_bynameIDsDu11__mbstate_tEE
499 Symbol added: _ZTVNSt3__17codecvtIDiDu11__mbstate_tEE
500 Symbol added: _ZTVNSt3__17codecvtIDsDu11__mbstate_tEE
502 <arch>-unknown-linux-gnu
503 ------------------------
504 Symbol added: _ZTSNSt3__114codecvt_bynameIDiDu11__mbstate_tEE
505 Symbol added: _ZTSNSt3__114codecvt_bynameIDsDu11__mbstate_tEE
507 * 997d41cdec53 - [libc++] Instantiate additional <iostream> members in the dylib
509 This commit added new explicit instantiations for classes in <iostream> in
510 the library. This was done after noticing that many programs that used streams
511 ended up containing weak definitions of these classes, which has a negative
512 impact on both code size and load times. This change is not an ABI break,
513 since we are just adding additional symbols.
517 Symbol added: _ZNKSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE3strEv
518 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE11__read_modeEv
519 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE12__write_modeEv
520 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE4openEPKcj
521 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE4swapERS3_
522 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE4syncEv
523 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE5closeEv
524 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE5imbueERKNS_6localeE
525 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE6setbufEPcl
526 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE7seekoffExNS_8ios_base7seekdirEj
527 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE7seekposENS_4fposI11__mbstate_tEEj
528 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE8overflowEi
529 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE9pbackfailEi
530 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE9underflowEv
531 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEEC1EOS3_
532 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEEC1Ev
533 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEEC2EOS3_
534 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEEC2Ev
535 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEED0Ev
536 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEED1Ev
537 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEED2Ev
538 Symbol added: _ZNSt3__114basic_ifstreamIcNS_11char_traitsIcEEE4openEPKcj
539 Symbol added: _ZNSt3__114basic_ifstreamIcNS_11char_traitsIcEEE4openERKNS_12basic_stringIcS2_NS_9allocatorIcEEEEj
540 Symbol added: _ZNSt3__114basic_ofstreamIcNS_11char_traitsIcEEE4openEPKcj
541 Symbol added: _ZNSt3__114basic_ofstreamIcNS_11char_traitsIcEEE4openERKNS_12basic_stringIcS2_NS_9allocatorIcEEEEj
542 Symbol added: _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE3strERKNS_12basic_stringIcS2_S4_EE
543 Symbol added: _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE4swapERS5_
544 Symbol added: _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE7seekoffExNS_8ios_base7seekdirEj
545 Symbol added: _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE8overflowEi
546 Symbol added: _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE9pbackfailEi
547 Symbol added: _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE9underflowEv
548 Symbol added: _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEC1EOS5_
549 Symbol added: _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEC2EOS5_
550 Symbol added: _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_
551 Symbol added: _ZNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_
552 Symbol added: _ZNSt3__119basic_istringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_
553 Symbol added: _ZNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_
554 Symbol added: _ZTCNSt3__114basic_ifstreamIcNS_11char_traitsIcEEEE0_NS_13basic_istreamIcS2_EE
555 Symbol added: _ZTCNSt3__114basic_ofstreamIcNS_11char_traitsIcEEEE0_NS_13basic_ostreamIcS2_EE
556 Symbol added: _ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_13basic_istreamIcS2_EE
557 Symbol added: _ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_14basic_iostreamIcS2_EE
558 Symbol added: _ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE16_NS_13basic_ostreamIcS2_EE
559 Symbol added: _ZTCNSt3__119basic_istringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_13basic_istreamIcS2_EE
560 Symbol added: _ZTCNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_13basic_ostreamIcS2_EE
561 Symbol added: _ZTINSt3__113basic_filebufIcNS_11char_traitsIcEEEE
562 Symbol added: _ZTINSt3__114basic_ifstreamIcNS_11char_traitsIcEEEE
563 Symbol added: _ZTINSt3__114basic_ofstreamIcNS_11char_traitsIcEEEE
564 Symbol added: _ZTINSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEE
565 Symbol added: _ZTINSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE
566 Symbol added: _ZTINSt3__119basic_istringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE
567 Symbol added: _ZTINSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE
568 Symbol added: _ZTSNSt3__113basic_filebufIcNS_11char_traitsIcEEEE
569 Symbol added: _ZTSNSt3__114basic_ifstreamIcNS_11char_traitsIcEEEE
570 Symbol added: _ZTSNSt3__114basic_ofstreamIcNS_11char_traitsIcEEEE
571 Symbol added: _ZTSNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEE
572 Symbol added: _ZTSNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE
573 Symbol added: _ZTSNSt3__119basic_istringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE
574 Symbol added: _ZTSNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE
575 Symbol added: _ZTTNSt3__114basic_ifstreamIcNS_11char_traitsIcEEEE
576 Symbol added: _ZTTNSt3__114basic_ofstreamIcNS_11char_traitsIcEEEE
577 Symbol added: _ZTTNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE
578 Symbol added: _ZTTNSt3__119basic_istringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE
579 Symbol added: _ZTTNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE
580 Symbol added: _ZTVNSt3__113basic_filebufIcNS_11char_traitsIcEEEE
581 Symbol added: _ZTVNSt3__114basic_ifstreamIcNS_11char_traitsIcEEEE
582 Symbol added: _ZTVNSt3__114basic_ofstreamIcNS_11char_traitsIcEEEE
583 Symbol added: _ZTVNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEE
584 Symbol added: _ZTVNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE
585 Symbol added: _ZTVNSt3__119basic_istringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE
586 Symbol added: _ZTVNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE
588 * 9b40ee8eb0c1 - [libc++] Define new/delete in libc++abi only by default
590 By default, libc++ does not include the definition for new and delete anymore.
591 Those were previously defined in both libc++ and libc++abi, which was an
595 -------------------------
596 The following symbols are now re-exported from libc++abi instead of exported
597 by libc++ directly (this should not be an ABI break):
599 Symbol moved: __ZdaPv
600 Symbol moved: __ZdaPvm
601 Symbol moved: __ZdaPvmSt11align_val_t
602 Symbol moved: __ZdaPvRKSt9nothrow_t
603 Symbol moved: __ZdaPvSt11align_val_t
604 Symbol moved: __ZdaPvSt11align_val_tRKSt9nothrow_t
605 Symbol moved: __ZdlPv
606 Symbol moved: __ZdlPvm
607 Symbol moved: __ZdlPvmSt11align_val_t
608 Symbol moved: __ZdlPvRKSt9nothrow_t
609 Symbol moved: __ZdlPvSt11align_val_t
610 Symbol moved: __ZdlPvSt11align_val_tRKSt9nothrow_t
612 Symbol moved: __ZnamRKSt9nothrow_t
613 Symbol moved: __ZnamSt11align_val_t
614 Symbol moved: __ZnamSt11align_val_tRKSt9nothrow_t
616 Symbol moved: __ZnwmRKSt9nothrow_t
617 Symbol moved: __ZnwmSt11align_val_t
618 Symbol moved: __ZnwmSt11align_val_tRKSt9nothrow_t
620 <arch>-unknown-linux-gnu
621 ------------------------
622 The following symbols were moved to libc++abi, but are NOT being re-exported
623 by libc++. This constitutes an ABI break if one links against libc++ but
627 Symbol moved: _ZdaPvm
628 Symbol moved: _ZdaPvmSt11align_val_t
629 Symbol moved: _ZdaPvRKSt9nothrow_t
630 Symbol moved: _ZdaPvSt11align_val_t
631 Symbol moved: _ZdaPvSt11align_val_tRKSt9nothrow_t
633 Symbol moved: _ZdlPvm
634 Symbol moved: _ZdlPvmSt11align_val_t
635 Symbol moved: _ZdlPvRKSt9nothrow_t
636 Symbol moved: _ZdlPvSt11align_val_t
637 Symbol moved: _ZdlPvSt11align_val_tRKSt9nothrow_t
639 Symbol moved: _ZnamRKSt9nothrow_t
640 Symbol moved: _ZnamSt11align_val_t
641 Symbol moved: _ZnamSt11align_val_tRKSt9nothrow_t
643 Symbol moved: _ZnwmRKSt9nothrow_t
644 Symbol moved: _ZnwmSt11align_val_t
645 Symbol moved: _ZnwmSt11align_val_tRKSt9nothrow_t
647 * 4f13b9992971 - [libc++] Simplify how we re-export symbols from libc++abi
649 We re-export some symbols that were exported from libc++abi but not from
650 libc++. Exporting new symbols is not an ABI break.
654 Symbol added: ___cxa_allocate_dependent_exception
655 Symbol added: ___cxa_free_dependent_exception
661 * 54fa9ecd3088 - [libc++] Implementation of C++20's P1135R6 for libcxx
663 libc++ now implements P1135R6 (The C++20 Synchronization Library), which
664 adds a few symbols to the dylib. This is backwards-compatible since we're
665 just adding new symbols.
669 Symbol added: __ZNSt3__120__libcpp_atomic_waitEPVKNS_17__cxx_atomic_implIxNS_22__cxx_atomic_base_implIxEEEEx
670 Symbol added: __ZNSt3__120__libcpp_atomic_waitEPVKvx
671 Symbol added: __ZNSt3__123__cxx_atomic_notify_allEPVKNS_17__cxx_atomic_implIxNS_22__cxx_atomic_base_implIxEEEE
672 Symbol added: __ZNSt3__123__cxx_atomic_notify_allEPVKv
673 Symbol added: __ZNSt3__123__cxx_atomic_notify_oneEPVKNS_17__cxx_atomic_implIxNS_22__cxx_atomic_base_implIxEEEE
674 Symbol added: __ZNSt3__123__cxx_atomic_notify_oneEPVKv
675 Symbol added: __ZNSt3__123__libcpp_atomic_monitorEPVKNS_17__cxx_atomic_implIxNS_22__cxx_atomic_base_implIxEEEE
676 Symbol added: __ZNSt3__123__libcpp_atomic_monitorEPVKv
677 Symbol added: __ZNSt3__131__arrive_barrier_algorithm_baseEPNS_24__barrier_algorithm_baseEh
678 Symbol added: __ZNSt3__132__destroy_barrier_algorithm_baseEPNS_24__barrier_algorithm_baseE
679 Symbol added: __ZNSt3__134__construct_barrier_algorithm_baseERl
685 * r358690 - Re-rexport missing symbols from libc++abi
687 libc++ now re-exports `__cxa_throw_bad_array_new_length` and `__cxa_uncaught_exceptions`,
688 both of which are provided by libc++abi. This is not an ABI break because
689 we're just adding symbols. Also, this does mean that libc++ can't be linked
690 against an older version of libc++abi that doesn't provide those symbols,
691 however doing so is not supported anyway.
695 Symbol added: ___cxa_throw_bad_array_new_length
696 Symbol added: ___cxa_uncaught_exceptions
698 * r356518 - Integrate <filesystem> support into the shared library
700 This patch introduces support for <filesystem> into the shared library,
701 instead of requiring users to manually link against a static archive. As
702 such, new symbols required to implement <filesystem> are exported from
707 Symbol added: _ZNKSt3__14__fs10filesystem18directory_iterator13__dereferenceEv
708 Symbol added: _ZNKSt3__14__fs10filesystem28recursive_directory_iterator13__dereferenceEv
709 Symbol added: _ZNKSt3__14__fs10filesystem28recursive_directory_iterator5depthEv
710 Symbol added: _ZNKSt3__14__fs10filesystem28recursive_directory_iterator7optionsEv
711 Symbol added: _ZNKSt3__14__fs10filesystem4path10__filenameEv
712 Symbol added: _ZNKSt3__14__fs10filesystem4path11__extensionEv
713 Symbol added: _ZNKSt3__14__fs10filesystem4path11__root_nameEv
714 Symbol added: _ZNKSt3__14__fs10filesystem4path13__parent_pathEv
715 Symbol added: _ZNKSt3__14__fs10filesystem4path15__relative_pathEv
716 Symbol added: _ZNKSt3__14__fs10filesystem4path15__root_path_rawEv
717 Symbol added: _ZNKSt3__14__fs10filesystem4path16__root_directoryEv
718 Symbol added: _ZNKSt3__14__fs10filesystem4path16lexically_normalEv
719 Symbol added: _ZNKSt3__14__fs10filesystem4path18lexically_relativeERKS2_
720 Symbol added: _ZNKSt3__14__fs10filesystem4path3endEv
721 Symbol added: _ZNKSt3__14__fs10filesystem4path5beginEv
722 Symbol added: _ZNKSt3__14__fs10filesystem4path6__stemEv
723 Symbol added: _ZNKSt3__14__fs10filesystem4path9__compareENS_17basic_string_viewIcNS_11char_traitsIcEEEE
724 Symbol added: _ZNSt3__14__fs10filesystem10__absoluteERKNS1_4pathEPNS_10error_codeE
725 Symbol added: _ZNSt3__14__fs10filesystem10hash_valueERKNS1_4pathE
726 Symbol added: _ZNSt3__14__fs10filesystem11__canonicalERKNS1_4pathEPNS_10error_codeE
727 Symbol added: _ZNSt3__14__fs10filesystem11__copy_fileERKNS1_4pathES4_NS1_12copy_optionsEPNS_10error_codeE
728 Symbol added: _ZNSt3__14__fs10filesystem11__file_sizeERKNS1_4pathEPNS_10error_codeE
729 Symbol added: _ZNSt3__14__fs10filesystem12__equivalentERKNS1_4pathES4_PNS_10error_codeE
730 Symbol added: _ZNSt3__14__fs10filesystem12__remove_allERKNS1_4pathEPNS_10error_codeE
731 Symbol added: _ZNSt3__14__fs10filesystem13__fs_is_emptyERKNS1_4pathEPNS_10error_codeE
732 Symbol added: _ZNSt3__14__fs10filesystem13__permissionsERKNS1_4pathENS1_5permsENS1_12perm_optionsEPNS_10error_codeE
733 Symbol added: _ZNSt3__14__fs10filesystem13__resize_fileERKNS1_4pathEmPNS_10error_codeE
734 Symbol added: _ZNSt3__14__fs10filesystem14__copy_symlinkERKNS1_4pathES4_PNS_10error_codeE
735 Symbol added: _ZNSt3__14__fs10filesystem14__current_pathEPNS_10error_codeE
736 Symbol added: _ZNSt3__14__fs10filesystem14__current_pathERKNS1_4pathEPNS_10error_codeE
737 Symbol added: _ZNSt3__14__fs10filesystem14__read_symlinkERKNS1_4pathEPNS_10error_codeE
738 Symbol added: _ZNSt3__14__fs10filesystem15directory_entry12__do_refreshEv
739 Symbol added: _ZNSt3__14__fs10filesystem16__create_symlinkERKNS1_4pathES4_PNS_10error_codeE
740 Symbol added: _ZNSt3__14__fs10filesystem16__symlink_statusERKNS1_4pathEPNS_10error_codeE
741 Symbol added: _ZNSt3__14__fs10filesystem16_FilesystemClock3nowEv
742 Symbol added: _ZNSt3__14__fs10filesystem16_FilesystemClock9is_steadyE
743 Symbol added: _ZNSt3__14__fs10filesystem16filesystem_error13__create_whatEi
744 Symbol added: _ZNSt3__14__fs10filesystem16filesystem_errorD0Ev
745 Symbol added: _ZNSt3__14__fs10filesystem16filesystem_errorD1Ev
746 Symbol added: _ZNSt3__14__fs10filesystem16filesystem_errorD2Ev
747 Symbol added: _ZNSt3__14__fs10filesystem17__hard_link_countERKNS1_4pathEPNS_10error_codeE
748 Symbol added: _ZNSt3__14__fs10filesystem17__last_write_timeERKNS1_4pathENS_6chrono10time_pointINS1_16_FilesystemClockENS5_8durationInNS_5ratioILl1ELl1000000000EEEEEEEPNS_10error_codeE
749 Symbol added: _ZNSt3__14__fs10filesystem17__last_write_timeERKNS1_4pathEPNS_10error_codeE
750 Symbol added: _ZNSt3__14__fs10filesystem18__create_directoryERKNS1_4pathEPNS_10error_codeE
751 Symbol added: _ZNSt3__14__fs10filesystem18__create_directoryERKNS1_4pathES4_PNS_10error_codeE
752 Symbol added: _ZNSt3__14__fs10filesystem18__create_hard_linkERKNS1_4pathES4_PNS_10error_codeE
753 Symbol added: _ZNSt3__14__fs10filesystem18__weakly_canonicalERKNS1_4pathEPNS_10error_codeE
754 Symbol added: _ZNSt3__14__fs10filesystem18directory_iterator11__incrementEPNS_10error_codeE
755 Symbol added: _ZNSt3__14__fs10filesystem18directory_iteratorC1ERKNS1_4pathEPNS_10error_codeENS1_17directory_optionsE
756 Symbol added: _ZNSt3__14__fs10filesystem18directory_iteratorC2ERKNS1_4pathEPNS_10error_codeENS1_17directory_optionsE
757 Symbol added: _ZNSt3__14__fs10filesystem20__create_directoriesERKNS1_4pathEPNS_10error_codeE
758 Symbol added: _ZNSt3__14__fs10filesystem21__temp_directory_pathEPNS_10error_codeE
759 Symbol added: _ZNSt3__14__fs10filesystem26__create_directory_symlinkERKNS1_4pathES4_PNS_10error_codeE
760 Symbol added: _ZNSt3__14__fs10filesystem28recursive_directory_iterator11__incrementEPNS_10error_codeE
761 Symbol added: _ZNSt3__14__fs10filesystem28recursive_directory_iterator15__try_recursionEPNS_10error_codeE
762 Symbol added: _ZNSt3__14__fs10filesystem28recursive_directory_iterator5__popEPNS_10error_codeE
763 Symbol added: _ZNSt3__14__fs10filesystem28recursive_directory_iterator9__advanceEPNS_10error_codeE
764 Symbol added: _ZNSt3__14__fs10filesystem28recursive_directory_iteratorC1ERKNS1_4pathENS1_17directory_optionsEPNS_10error_codeE
765 Symbol added: _ZNSt3__14__fs10filesystem28recursive_directory_iteratorC2ERKNS1_4pathENS1_17directory_optionsEPNS_10error_codeE
766 Symbol added: _ZNSt3__14__fs10filesystem4path17replace_extensionERKS2_
767 Symbol added: _ZNSt3__14__fs10filesystem4path19preferred_separatorE
768 Symbol added: _ZNSt3__14__fs10filesystem4path8iterator11__decrementEv
769 Symbol added: _ZNSt3__14__fs10filesystem4path8iterator11__incrementEv
770 Symbol added: _ZNSt3__14__fs10filesystem6__copyERKNS1_4pathES4_NS1_12copy_optionsEPNS_10error_codeE
771 Symbol added: _ZNSt3__14__fs10filesystem7__spaceERKNS1_4pathEPNS_10error_codeE
772 Symbol added: _ZNSt3__14__fs10filesystem8__removeERKNS1_4pathEPNS_10error_codeE
773 Symbol added: _ZNSt3__14__fs10filesystem8__renameERKNS1_4pathES4_PNS_10error_codeE
774 Symbol added: _ZNSt3__14__fs10filesystem8__statusERKNS1_4pathEPNS_10error_codeE
775 Symbol added: _ZTINSt3__14__fs10filesystem16filesystem_errorE
776 Symbol added: _ZTSNSt3__14__fs10filesystem16filesystem_errorE
777 Symbol added: _ZTVNSt3__14__fs10filesystem16filesystem_errorE
779 * r356417 - Remove exception throwing debug mode handler support.
781 The reason libc++ implemented a throwing debug mode handler was for ease of testing. Specifically,
782 I thought that if a debug violation aborted, we could only test one violation per file. This made
783 it impossible to test debug mode. Which throwing behavior we could test more!
785 However, the throwing approach didn't work either, since there are debug violations underneath noexcept
786 functions. This lead to the introduction of `_NOEXCEPT_DEBUG`, which was only noexcept when debug
789 Having thought more and having grown wiser, `_NOEXCEPT_DEBUG` was a horrible decision. It was
790 viral, it didn't cover all the cases it needed to, and it was observable to the user -- at worst
791 changing the behavior of their program.
793 This patch removes the throwing debug handler, and rewrites the debug tests using 'fork-ing' style
796 All Platforms (ignoring versioning namespaces)
797 ----------------------------------------------
798 Symbol added: _ZNKSt3__119__libcpp_debug_info4whatEv
799 Symbol removed: _ZNKSt3__124__libcpp_debug_exception4whatEv
800 Symbol removed: _ZNSt3__124__libcpp_debug_exceptionC1ERKNS_19__libcpp_debug_infoE
801 Symbol removed: _ZNSt3__124__libcpp_debug_exceptionC1ERKS0_
802 Symbol removed: _ZNSt3__124__libcpp_debug_exceptionC1Ev
803 Symbol removed: _ZNSt3__124__libcpp_debug_exceptionC2ERKNS_19__libcpp_debug_infoE
804 Symbol removed: _ZNSt3__124__libcpp_debug_exceptionC2ERKS0_
805 Symbol removed: _ZNSt3__124__libcpp_debug_exceptionC2Ev
806 Symbol removed: _ZNSt3__124__libcpp_debug_exceptionD0Ev
807 Symbol removed: _ZNSt3__124__libcpp_debug_exceptionD1Ev
808 Symbol removed: _ZNSt3__124__libcpp_debug_exceptionD2Ev
809 Symbol removed: _ZNSt3__129__libcpp_throw_debug_functionERKNS_19__libcpp_debug_infoE
810 Symbol removed: _ZTINSt3__124__libcpp_debug_exceptionE
811 Symbol removed: _ZTSNSt3__124__libcpp_debug_exceptionE
812 Symbol removed: _ZTVNSt3__124__libcpp_debug_exceptionE
816 Symbol added: __ZNSt3__111__libcpp_db10__insert_cEPvPFPNS_8__c_nodeES1_S1_S3_E
817 Symbol removed: __ZNSt3__111__libcpp_db10__insert_cEPv
819 * r355367 - Fix -fsanitize=vptr badness in <__debug>
821 This patch fixes a lifetime bug when inserting a new container into the debug database. It is
822 diagnosed by UBSAN when debug mode is enabled. This patch corrects how nodes are constructed
825 The fix requires unconditionally breaking the debug mode ABI. Users should not expect ABI
826 stability from debug mode.
830 Symbol added: _ZNSt3__111__libcpp_db10__insert_cEPvPFPNS_8__c_nodeES1_S1_S3_E
831 Symbol removed: _ZNSt3__111__libcpp_db10__insert_cEPv
837 * r347903 - Remove std::bad_array_length
839 The change removes the definition of std::bad_array_length (which never made
840 it into the standard) from the headers and the dylib. This is technically an
841 ABI break because the symbols are shipped starting with mac OSX 10.13, however
842 users couldn't be relying on the functionality because it is marked as being
843 unavailable using Clang's availability attribute.
847 Symbol removed: __ZNKSt16bad_array_length4whatEv
848 Symbol removed: __ZNKSt16bad_array_length4whatEv
849 Symbol removed: __ZNSt16bad_array_lengthC1Ev
850 Symbol removed: __ZNSt16bad_array_lengthC1Ev
851 Symbol removed: __ZNSt16bad_array_lengthC2Ev
852 Symbol removed: __ZNSt16bad_array_lengthC2Ev
853 Symbol removed: __ZNSt16bad_array_lengthD0Ev
854 Symbol removed: __ZNSt16bad_array_lengthD0Ev
855 Symbol removed: __ZNSt16bad_array_lengthD1Ev
856 Symbol removed: __ZNSt16bad_array_lengthD1Ev
857 Symbol removed: __ZNSt16bad_array_lengthD2Ev
858 Symbol removed: __ZNSt16bad_array_lengthD2Ev
859 Symbol removed: __ZTISt16bad_array_length
860 Symbol removed: __ZTISt16bad_array_length
861 Symbol removed: __ZTSSt16bad_array_length
862 Symbol removed: __ZTSSt16bad_array_length
863 Symbol removed: __ZTVSt16bad_array_length
864 Symbol removed: __ZTVSt16bad_array_length
866 * r347395 - Making libc++ build under -fvisibility=hidden on Linux
868 The change marks several function templates as hidden. This removes symbols
869 from the shared library, but this is not an ABI break because it's impossible
870 for programs linking against libc++.so to actually depend on that symbol.
871 The reason is that the symbol is exported from the shared library through
872 an implicit instantiation present in the shared object itself only. Furthermore,
873 if a user's shared object was implicitly instantiating one of these functions,
874 marking that symbol as hidden would not be an ABI break for them because none
875 of their users could actually be using the symbol in their dylib (because
876 it's an implicit instantiation).
880 Symbol removed: _ZNSt3__125__num_get_signed_integralIlEET_PKcS3_Rji
881 Symbol removed: _ZNSt3__125__num_get_signed_integralIxEET_PKcS3_Rji
882 Symbol removed: _ZNSt3__127__num_get_unsigned_integralIjEET_PKcS3_Rji
883 Symbol removed: _ZNSt3__127__num_get_unsigned_integralImEET_PKcS3_Rji
884 Symbol removed: _ZNSt3__127__num_get_unsigned_integralItEET_PKcS3_Rji
885 Symbol removed: _ZNSt3__127__num_get_unsigned_integralIyEET_PKcS3_Rji
886 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIaaEEPaEEjT0_S5_S5_S5_S5_T_
887 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIccEEPcEEjT0_S5_S5_S5_S5_T_
888 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIddEEPdEEjT0_S5_S5_S5_S5_T_
889 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIffEEPfEEjT0_S5_S5_S5_S5_T_
890 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIhhEEPhEEjT0_S5_S5_S5_S5_T_
891 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIiiEEPiEEjT0_S5_S5_S5_S5_T_
892 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIjjEEPjEEjT0_S5_S5_S5_S5_T_
893 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIllEEPlEEjT0_S5_S5_S5_S5_T_
894 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessImmEEPmEEjT0_S5_S5_S5_S5_T_
895 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIssEEPsEEjT0_S5_S5_S5_S5_T_
896 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIttEEPtEEjT0_S5_S5_S5_S5_T_
897 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIwwEEPwEEjT0_S5_S5_S5_S5_T_
898 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIxxEEPxEEjT0_S5_S5_S5_S5_T_
899 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIyyEEPyEEjT0_S5_S5_S5_S5_T_
900 Symbol removed: _ZNSt3__1plIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_12basic_stringIT_T0_T1_EERKS9_PKS6_
901 Symbol removed: _ZSt18make_exception_ptrINSt3__112future_errorEESt13exception_ptrT_
903 * r345260 - Making libc++ build under -fvisibility=hidden on Mac OS
905 The change marks __thread_specific_ptr<__thread_struct>::__at_thread_exit(void*)
906 with hidden visibility. This removes a symbol from the shared libraries,
907 however this is not an ABI break because it's impossible for programs linking
908 against libc++.dylib to actually depend on that symbol. The reason is that
909 the symbol is exported from the shared library through an implicit
910 instantiation present in the dylib itself only. Furthermore, if a user's
911 dylib was implicitly instantiating __thread_specific_ptr<T>::__at_thread_exit
912 (because it's defined in the headers), marking that symbol as hidden would
913 not be an ABI break for them because none of their users could actually be
914 using the symbol in their dylib (because it's an implicit instantiation).
916 This change also marks __start_std_streams as hidden -- this variable is
917 only required to initialize the streams, and nobody should depend on it
918 from outside the dylib.
922 Symbol removed: _ZNSt3__121__thread_specific_ptrINS_15__thread_structEE16__at_thread_exitEPv
923 Symbol removed: _ZNSt3__119__start_std_streamsE
927 Symbol removed: __ZNSt3__221__thread_specific_ptrINS_15__thread_structEE16__at_thread_exitEPv
928 Symbol removed: __ZNSt3__119__start_std_streamsE
934 * r338479 - Elementary string conversions for integral types
936 The change emits __u64toa and __u32toa under std::__1::__itoa.
940 Symbol added: _ZNSt3__16__itoa8__u64toaEmPc
941 Symbol added: _ZNSt3__16__itoa8__u32toaEjPc
945 Symbol added: __ZNSt3__16__itoa8__u64toaEyPc
946 Symbol added: __ZNSt3__16__itoa8__u32toaEjPc
949 * r333467 - Fix embarrasing typo in uncaught_exceptions.
951 This bug caused __uncaught_exception to be ODR used instead of
952 __uncaught_exceptions. This change is non-ABI breaking because the symbols
953 for std::uncaught_exception and std::uncaught_exceptions haven't changed,
954 and because users shouldn't be depending directly on libc++ exporting
955 __uncaught_exception/__uncaught_exceptions.
959 Symbol removed: __cxa_uncaught_exception
960 Symbol added: __cxa_uncaught_exceptions
966 * r313500 - Fix undefined "___cxa_deleted_virtual" symbol in macosx
974 Symbol added: ___cxa_deleted_virtual
976 * r296729 - Remove std::num_get template methods which should be inline
978 These functions should never have had visible definitions in the dylib but
979 since they were previously not specified with 'inline' they accidentally
980 got emitted. This change is non-ABI breaking because every "linkage unit"
981 must contain its own definition.
985 Symbol removed: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE15__do_get_signedIlEES4_S4_S4_RNS_8ios_baseERjRT_
986 Symbol removed: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE15__do_get_signedIxEES4_S4_S4_RNS_8ios_baseERjRT_
987 Symbol removed: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedIjEES4_S4_S4_RNS_8ios_baseERjRT_
988 Symbol removed: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedImEES4_S4_S4_RNS_8ios_baseERjRT_
989 Symbol removed: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedItEES4_S4_S4_RNS_8ios_baseERjRT_
990 Symbol removed: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedIyEES4_S4_S4_RNS_8ios_baseERjRT_
991 Symbol removed: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIdEES4_S4_S4_RNS_8ios_baseERjRT_
992 Symbol removed: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIeEES4_S4_S4_RNS_8ios_baseERjRT_
993 Symbol removed: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIfEES4_S4_S4_RNS_8ios_baseERjRT_
994 Symbol removed: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE15__do_get_signedIlEES4_S4_S4_RNS_8ios_baseERjRT_
995 Symbol removed: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE15__do_get_signedIxEES4_S4_S4_RNS_8ios_baseERjRT_
996 Symbol removed: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedIjEES4_S4_S4_RNS_8ios_baseERjRT_
997 Symbol removed: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedImEES4_S4_S4_RNS_8ios_baseERjRT_
998 Symbol removed: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedItEES4_S4_S4_RNS_8ios_baseERjRT_
999 Symbol removed: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedIyEES4_S4_S4_RNS_8ios_baseERjRT_
1000 Symbol removed: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIdEES4_S4_S4_RNS_8ios_baseERjRT_
1001 Symbol removed: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIeEES4_S4_S4_RNS_8ios_baseERjRT_
1002 Symbol removed: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIfEES4_S4_S4_RNS_8ios_baseERjRT_
1012 * r290651 - Add _LIBCPP_ASSERT debug handling functions
1016 Symbol added: _ZNSt3__124__libcpp_debug_exceptionC2ERKNS_19__libcpp_debug_infoE
1017 Symbol added: _ZNSt3__124__libcpp_debug_exceptionD1Ev
1018 Symbol added: _ZTINSt3__124__libcpp_debug_exceptionE
1019 Symbol added: _ZNSt3__129__libcpp_throw_debug_functionERKNS_19__libcpp_debug_infoE
1020 Symbol added: _ZNSt3__124__libcpp_debug_exceptionD2Ev
1021 Symbol added: _ZNSt3__129__libcpp_abort_debug_functionERKNS_19__libcpp_debug_infoE
1022 Symbol added: _ZNSt3__124__libcpp_debug_exceptionC2ERKS0_
1023 Symbol added: _ZNSt3__124__libcpp_debug_exceptionC1Ev
1024 Symbol added: _ZNSt3__124__libcpp_debug_exceptionC1ERKNS_19__libcpp_debug_infoE
1025 Symbol added: _ZNSt3__124__libcpp_debug_exceptionC2Ev
1026 Symbol added: _ZTSNSt3__124__libcpp_debug_exceptionE
1027 Symbol added: _ZNSt3__123__libcpp_debug_functionE
1028 Symbol added: _ZNKSt3__124__libcpp_debug_exception4whatEv
1029 Symbol added: _ZNSt3__124__libcpp_debug_exceptionC1ERKS0_
1030 Symbol added: _ZNSt3__124__libcpp_debug_exceptionD0Ev
1031 Symbol added: _ZTVNSt3__124__libcpp_debug_exceptionE
1032 Symbol added: _ZNSt3__127__libcpp_set_debug_functionEPFvRKNS_19__libcpp_debug_infoEE
1034 * r288547 - Implement C++17 <variant>
1038 Symbol added: _ZTVSt18bad_variant_access
1039 Symbol added: _ZTISt18bad_variant_access
1040 Symbol added: _ZTSSt18bad_variant_access
1041 Symbol added: _ZNKSt18bad_variant_access4whatEv
1043 * r285537 - Remove std::string::append template methods which should be inline
1045 These functions should never have had visible definitions in the dylib but
1046 since they were previously not specified with 'inline' they accidentally
1047 got emitted. This change is non-ABI breaking because every "linkage unit"
1048 must contain its own definition.
1052 Symbol removed: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendIPcEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr38__libcpp_string_gets_noexcept_iteratorIS9_EE5valueERS5_E4typeES9_S9_
1053 Symbol removed: _ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6appendIPwEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr38__libcpp_string_gets_noexcept_iteratorIS9_EE5valueERS5_E4typeES9_S9_
1059 * r285101 - Add -fvisibility-inlines-hidden when building libc++.
1061 Although this change removes symbols, it should still be non-ABI breaking
1062 since all of the definitions removed are inline functions. For this reason
1063 removing these symbols is safe because every "linkage unit" which uses these
1064 functions will contain their own definition.
1068 Symbol removed: _ZNSt12bad_any_castD0Ev
1069 Symbol removed: _ZNSt12experimental15fundamentals_v112bad_any_castD0Ev
1070 Symbol removed: _ZNSt3__114__codecvt_utf8IDiED0Ev
1071 Symbol removed: _ZNSt3__114__codecvt_utf8IDsED0Ev
1072 Symbol removed: _ZNSt3__114__codecvt_utf8IwED0Ev
1073 Symbol removed: _ZNSt3__115__codecvt_utf16IDiLb0EED0Ev
1074 Symbol removed: _ZNSt3__115__codecvt_utf16IDiLb1EED0Ev
1075 Symbol removed: _ZNSt3__115__codecvt_utf16IDsLb0EED0Ev
1076 Symbol removed: _ZNSt3__115__codecvt_utf16IDsLb1EED0Ev
1077 Symbol removed: _ZNSt3__115__codecvt_utf16IwLb0EED0Ev
1078 Symbol removed: _ZNSt3__115__codecvt_utf16IwLb1EED0Ev
1079 Symbol removed: _ZNSt3__117__assoc_sub_stateD0Ev
1080 Symbol removed: _ZNSt3__117__assoc_sub_stateD2Ev
1081 Symbol removed: _ZNSt3__117__libcpp_sscanf_lEPKcP15__locale_structS1_z
1082 Symbol removed: _ZNSt3__119__libcpp_asprintf_lEPPcP15__locale_structPKcz
1083 Symbol removed: _ZNSt3__119__libcpp_snprintf_lEPcmP15__locale_structPKcz
1084 Symbol removed: _ZNSt3__120__codecvt_utf8_utf16IDiED0Ev
1085 Symbol removed: _ZNSt3__120__codecvt_utf8_utf16IDsED0Ev
1086 Symbol removed: _ZNSt3__120__codecvt_utf8_utf16IwED0Ev
1090 No Changes - inline symbols are already hidden
1092 * r284206 - Implement C++17 aligned allocation in <new>
1096 Symbol added: _ZdaPvSt11align_val_t
1097 Symbol added: _ZdlPvSt11align_val_t
1098 Symbol added: _ZnamSt11align_val_t
1099 Symbol added: _ZdaPvmSt11align_val_t
1100 Symbol added: _ZdlPvmSt11align_val_t
1101 Symbol added: _ZdlPvSt11align_val_tRKSt9nothrow_t
1102 Symbol added: _ZnwmSt11align_val_tRKSt9nothrow_t
1103 Symbol added: _ZnamSt11align_val_tRKSt9nothrow_t
1104 Symbol added: _ZdaPvSt11align_val_tRKSt9nothrow_t
1105 Symbol added: _ZnwmSt11align_val_t
1107 * r283980 - Implement C++17 <optional>
1111 Symbol added: _ZTISt19bad_optional_access
1112 Symbol added: _ZNSt19bad_optional_accessD0Ev
1113 Symbol added: _ZNSt19bad_optional_accessD1Ev
1114 Symbol added: _ZNSt19bad_optional_accessD2Ev
1115 Symbol added: _ZTVSt19bad_optional_access
1116 Symbol added: _ZTSSt19bad_optional_access
1118 * r278310 - Implement C++17 <any>
1122 Symbol added: _ZNKSt12bad_any_cast4whatEv
1123 Symbol added: _ZNSt12bad_any_castD0Ev
1124 Symbol added: _ZTISt12bad_any_cast
1125 Symbol added: _ZTSSt12bad_any_cast
1126 Symbol added: _ZTVSt12bad_any_cast
1128 * r295398 - Remove basic_string::insert and basic_string::replace template methods which should be inline.
1130 These functions should never have had visible definitions in the dylib but
1131 since they were previously not specified with 'inline' they accidentally
1132 got emitted. This change is non-ABI breaking because every "linkage unit"
1133 must contain its own definition.
1137 Symbol removed: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6insertIPKcEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr38__libcpp_string_gets_noexcept_iteratorISA_EE5valueENS_11__wrap_iterIPcEEE4typeENSB_IS8_EESA_SA_
1138 Symbol removed: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7replaceIPKcEENS_9enable_ifIXsr19__is_input_iteratorIT_EE5valueERS5_E4typeENS_11__wrap_iterIS8_EESF_SA_SA_
1139 Symbol removed: _ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6insertIPKwEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr38__libcpp_string_gets_noexcept_iteratorISA_EE5valueENS_11__wrap_iterIPwEEE4typeENSB_IS8_EESA_SA_
1140 Symbol removed: _ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE7replaceIPKwEENS_9enable_ifIXsr19__is_input_iteratorIT_EE5valueERS5_E4typeENS_11__wrap_iterIS8_EESF_SA_SA_