Add the initializes attribute inference (#117104)
[llvm-project.git] / libcxx / lib / abi / CHANGELOG.TXT
blobe27eb5fa046ff235fbfd292409da60e814f94886
1 ABI Changelog
2 ==============
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.
15 ------------
16 Version 20.0
17 ------------
19 * [libcxx][libc] Implements from_chars floating-point
21   All platforms
22   -------------
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.
36   <arch>-apple-darwin
37   -------------------
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
63 ------------
64 Version 19.0
65 ------------
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
88   on.
90   <arch>-apple-darwin
91   -------------------
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
102   is not an ABI break.
104   <arch>-apple-darwin
105   -------------------
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
158 ------------
159 Version 18.0
160 ------------
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.
167   All platforms
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.
178   All platforms
179   -------------
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.
189   All platforms
190   -------------
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.
204   All platforms
205   -------------
206   Symbol removed: _ZNSt3__112system_error6__initERKNS_10error_codeENS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE
208 ------------
209 Version 17.0
210 ------------
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
231   to pass anyway.
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).
236   All platforms
237   -------------
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.
249   All platforms
250   -------------
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_
268 ------------
269 Version 16.0
270 ------------
272 * [libc++][PMR] Move the pmr::memory_resource destructor into the dylib
274   All platforms
275   -------------
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.
285   All platforms
286   -------------
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
323 ------------
324 Version 15.0
325 ------------
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.
336   All platforms
337   -------------
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
380   symbol.
382   All platforms
383   -------------
384   Symbol added: _ZNSt3__122__libcpp_verbose_abortEPKcz
386 ------------
387 Version 14.0
388 ------------
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.
396   All platforms
397   -------------
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.
415   <arch>-apple-darwin
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.
439   All platforms
440   -------------
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
452 ------------
453 Version 12.0
454 ------------
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.
461   All platforms
462   -------------
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.
515   All platforms
516   -------------
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
592   ODR violation.
594   <arch>-apple-darwin
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
611   Symbol moved: __Znam
612   Symbol moved: __ZnamRKSt9nothrow_t
613   Symbol moved: __ZnamSt11align_val_t
614   Symbol moved: __ZnamSt11align_val_tRKSt9nothrow_t
615   Symbol moved: __Znwm
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
624   not libc++abi.
626   Symbol moved: _ZdaPv
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
632   Symbol moved: _ZdlPv
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
638   Symbol moved: _Znam
639   Symbol moved: _ZnamRKSt9nothrow_t
640   Symbol moved: _ZnamSt11align_val_t
641   Symbol moved: _ZnamSt11align_val_tRKSt9nothrow_t
642   Symbol moved: _Znwm
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.
652   <arch>-apple-darwin
653   -------------------
654   Symbol added: ___cxa_allocate_dependent_exception
655   Symbol added: ___cxa_free_dependent_exception
657 ------------
658 Version 11.0
659 ------------
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.
667   All platforms
668   -------------
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
681 -----------
682 Version 9.0
683 -----------
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.
693   <arch>-apple-darwin
694   -------------------
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
703   the shared library.
705   All platforms
706   -------------
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
787   mode was off.
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
794   death tests.
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
814   <arch>-apple-darwin
815   -------------------
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
823   during insertion.
825   The fix requires unconditionally breaking the debug mode ABI. Users should not expect ABI
826   stability from debug mode.
828   All platforms
829   -------------
830   Symbol added: _ZNSt3__111__libcpp_db10__insert_cEPvPFPNS_8__c_nodeES1_S1_S3_E
831   Symbol removed: _ZNSt3__111__libcpp_db10__insert_cEPv
833 -----------
834 Version 8.0
835 -----------
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.
845   <arch>-apple-darwin
846   -------------------
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).
878   x86_64-linux-gnu
879   ----------------
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.
920   x86_64-linux-gnu
921   ----------------
922   Symbol removed: _ZNSt3__121__thread_specific_ptrINS_15__thread_structEE16__at_thread_exitEPv
923   Symbol removed: _ZNSt3__119__start_std_streamsE
925   <arch>-apple-darwin
926   -------------------
927   Symbol removed: __ZNSt3__221__thread_specific_ptrINS_15__thread_structEE16__at_thread_exitEPv
928   Symbol removed: __ZNSt3__119__start_std_streamsE
930 -----------
931 Version 7.0
932 -----------
934 * r338479 - Elementary string conversions for integral types
936   The change emits __u64toa and __u32toa under std::__1::__itoa.
938   x86_64-linux-gnu
939   ----------------
940   Symbol added: _ZNSt3__16__itoa8__u64toaEmPc
941   Symbol added: _ZNSt3__16__itoa8__u32toaEjPc
943   <arch>-apple-darwin
944   -------------------
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.
957   All Platforms
958   ----------------
959   Symbol removed: __cxa_uncaught_exception
960   Symbol added: __cxa_uncaught_exceptions
962 -----------
963 Version 5.0
964 -----------
966 * r313500 - Fix undefined "___cxa_deleted_virtual" symbol in macosx
968   x86_64-linux-gnu
969   ----------------
970   No changes
972   <arch>-apple-darwin
973   -------------------
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.
983   x86_64-linux-gnu
984   ----------------
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_
1004   <arch>-apple-darwin
1005   -------------------
1006   No changes
1008 -----------
1009 Version 4.0
1010 -----------
1012 * r290651 - Add _LIBCPP_ASSERT debug handling functions
1014   All Platforms
1015   -------------
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>
1036   All Platforms
1037   -------------
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.
1050   x86_64-linux-gnu
1051   ----------------
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_
1055   <arch>-apple-darwin
1056   -------------------
1057   No changes
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.
1066   x86_64-linux-gnu
1067   ----------------
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
1088   <arch>-apple-darwin
1089   -------------------
1090   No Changes - inline symbols are already hidden
1092 * r284206 - Implement C++17 aligned allocation in <new>
1094   x86_64-linux-gnu
1095   ----------------
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>
1109   x86_64-linux-gnu
1110   ----------------
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>
1120   x86_64-linux-gnu
1121   ----------------
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.
1135   x86_64-linux-gnu
1136   ----------------
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_