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