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 17.0 17------------ 18 19* [libc++] Remove explicit instantiations of __insertion_sort_incomplete and __sort5 from the dylib 20 21 These instantiations were never visible, because they are only used in `__sort`, which is also explicitly 22 instantiated in the dylib. 23 24 All platforms 25 ------------- 26 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessIaaEEPaEEbT0_S5_T_ 27 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessIccEEPcEEbT0_S5_T_ 28 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessIddEEPdEEbT0_S5_T_ 29 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessIeeEEPeEEbT0_S5_T_ 30 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessIffEEPfEEbT0_S5_T_ 31 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessIhhEEPhEEbT0_S5_T_ 32 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessIiiEEPiEEbT0_S5_T_ 33 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessIjjEEPjEEbT0_S5_T_ 34 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessIllEEPlEEbT0_S5_T_ 35 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessImmEEPmEEbT0_S5_T_ 36 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessIssEEPsEEbT0_S5_T_ 37 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessIttEEPtEEbT0_S5_T_ 38 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessIwwEEPwEEbT0_S5_T_ 39 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessIxxEEPxEEbT0_S5_T_ 40 Symbol removed: _ZNSt3__127__insertion_sort_incompleteIRNS_6__lessIyyEEPyEEbT0_S5_T_ 41 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIeeEEPeEEjT0_S5_S5_S5_S5_T_ 42 43------------ 44Version 16.0 45------------ 46 47* [libc++][PMR] Move the pmr::memory_resource destructor into the dylib 48 49 All platforms 50 ------------- 51 Symbol added: _ZNSt3__13pmr15memory_resourceD0Ev 52 Symbol added: _ZNSt3__13pmr15memory_resourceD1Ev 53 Symbol added: _ZNSt3__13pmr15memory_resourceD2Ev 54 Symbol added: _ZTVNSt3__13pmr15memory_resourceE 55 56* [libc++] [C++17] Implement <memory_resource>. 57 58 This commit adds <memory_resource> to the shared library. 59 60 All platforms 61 ------------- 62 Symbol added: _ZNKSt3__13pmr26synchronized_pool_resource11do_is_equalERKNS0_15memory_resourceE 63 Symbol added: _ZNKSt3__13pmr28unsynchronized_pool_resource12__pool_indexEmm 64 Symbol added: _ZNKSt3__13pmr28unsynchronized_pool_resource17__pool_block_sizeEi 65 Symbol added: _ZNKSt3__13pmr28unsynchronized_pool_resource22__log2_pool_block_sizeEi 66 Symbol added: _ZNKSt3__13pmr28unsynchronized_pool_resource7optionsEv 67 Symbol added: _ZNSt3__13pmr19new_delete_resourceEv 68 Symbol added: _ZNSt3__13pmr20get_default_resourceEv 69 Symbol added: _ZNSt3__13pmr20null_memory_resourceEv 70 Symbol added: _ZNSt3__13pmr20set_default_resourceEPNS0_15memory_resourceE 71 Symbol added: _ZNSt3__13pmr25monotonic_buffer_resource11do_allocateEmm 72 Symbol added: _ZNSt3__13pmr25monotonic_buffer_resource14__chunk_footer25__try_allocate_from_chunkEmm 73 Symbol added: _ZNSt3__13pmr25monotonic_buffer_resource20__initial_descriptor25__try_allocate_from_chunkEmm 74 Symbol added: _ZNSt3__13pmr28unsynchronized_pool_resource11do_allocateEmm 75 Symbol added: _ZNSt3__13pmr28unsynchronized_pool_resource12__adhoc_pool13__do_allocateEPNS0_15memory_resourceEmm 76 Symbol added: _ZNSt3__13pmr28unsynchronized_pool_resource12__adhoc_pool13__release_ptrEPNS0_15memory_resourceE 77 Symbol added: _ZNSt3__13pmr28unsynchronized_pool_resource12__adhoc_pool15__do_deallocateEPNS0_15memory_resourceEPvmm 78 Symbol added: _ZNSt3__13pmr28unsynchronized_pool_resource13do_deallocateEPvmm 79 Symbol added: _ZNSt3__13pmr28unsynchronized_pool_resource7releaseEv 80 Symbol added: _ZNSt3__13pmr28unsynchronized_pool_resourceC1ERKNS0_12pool_optionsEPNS0_15memory_resourceE 81 Symbol added: _ZNSt3__13pmr28unsynchronized_pool_resourceC2ERKNS0_12pool_optionsEPNS0_15memory_resourceE 82 Symbol added: _ZTINSt3__13pmr15memory_resourceE 83 Symbol added: _ZTINSt3__13pmr25monotonic_buffer_resourceE 84 Symbol added: _ZTINSt3__13pmr26__null_memory_resource_impE 85 Symbol added: _ZTINSt3__13pmr26synchronized_pool_resourceE 86 Symbol added: _ZTINSt3__13pmr28unsynchronized_pool_resourceE 87 Symbol added: _ZTINSt3__13pmr32__new_delete_memory_resource_impE 88 Symbol added: _ZTSNSt3__13pmr15memory_resourceE 89 Symbol added: _ZTSNSt3__13pmr25monotonic_buffer_resourceE 90 Symbol added: _ZTSNSt3__13pmr26__null_memory_resource_impE 91 Symbol added: _ZTSNSt3__13pmr26synchronized_pool_resourceE 92 Symbol added: _ZTSNSt3__13pmr28unsynchronized_pool_resourceE 93 Symbol added: _ZTSNSt3__13pmr32__new_delete_memory_resource_impE 94 Symbol added: _ZTVNSt3__13pmr25monotonic_buffer_resourceE 95 Symbol added: _ZTVNSt3__13pmr26synchronized_pool_resourceE 96 Symbol added: _ZTVNSt3__13pmr28unsynchronized_pool_resourceE 97 98------------ 99Version 15.0 100------------ 101 102* f1c30135417f - [libc++] Drop the legacy debug mode symbols by default 103 104 This commit removed symbols implementing debug mode in the non-debug 105 configuration of the library. Using the debug mode now requires a 106 differently-configured version of libc++. This is technically an ABI 107 break, however any user having been using the debug mode support previously 108 was already at risk of non-benign ODR violations, and in practice we 109 never found it to work reliably. 110 111 All platforms 112 ------------- 113 Symbol removed: _ZNKSt3__111__libcpp_db15__decrementableEPKv 114 Symbol removed: _ZNKSt3__111__libcpp_db15__find_c_from_iEPv 115 Symbol removed: _ZNKSt3__111__libcpp_db15__subscriptableEPKvl 116 Symbol removed: _ZNKSt3__111__libcpp_db17__dereferenceableEPKv 117 Symbol removed: _ZNKSt3__111__libcpp_db17__find_c_and_lockEPv 118 Symbol removed: _ZNKSt3__111__libcpp_db22__less_than_comparableEPKvS2_ 119 Symbol removed: _ZNKSt3__111__libcpp_db6unlockEv 120 Symbol removed: _ZNKSt3__111__libcpp_db8__find_cEPv 121 Symbol removed: _ZNKSt3__111__libcpp_db9__addableEPKvl 122 Symbol removed: _ZNKSt3__119__libcpp_debug_info4whatEv 123 Symbol removed: _ZNSt3__111__libcpp_db10__insert_cEPvPFPNS_8__c_nodeES1_S1_S3_E 124 Symbol removed: _ZNSt3__111__libcpp_db10__insert_iEPv 125 Symbol removed: _ZNSt3__111__libcpp_db11__insert_icEPvPKv 126 Symbol removed: _ZNSt3__111__libcpp_db15__iterator_copyEPvPKv 127 Symbol removed: _ZNSt3__111__libcpp_db16__invalidate_allEPv 128 Symbol removed: _ZNSt3__111__libcpp_db4swapEPvS1_ 129 Symbol removed: _ZNSt3__111__libcpp_db9__erase_cEPv 130 Symbol removed: _ZNSt3__111__libcpp_db9__erase_iEPv 131 Symbol removed: _ZNSt3__111__libcpp_dbC1Ev 132 Symbol removed: _ZNSt3__111__libcpp_dbC2Ev 133 Symbol removed: _ZNSt3__111__libcpp_dbD1Ev 134 Symbol removed: _ZNSt3__111__libcpp_dbD2Ev 135 Symbol removed: _ZNSt3__114__get_const_dbEv 136 Symbol removed: _ZNSt3__123__libcpp_debug_functionE 137 Symbol removed: _ZNSt3__127__libcpp_set_debug_functionEPFvRKNS_19__libcpp_debug_infoEE 138 Symbol removed: _ZNSt3__129__libcpp_abort_debug_functionERKNS_19__libcpp_debug_infoE 139 Symbol removed: _ZNSt3__18__c_node5__addEPNS_8__i_nodeE 140 Symbol removed: _ZNSt3__18__c_nodeD0Ev 141 Symbol removed: _ZNSt3__18__c_nodeD1Ev 142 Symbol removed: _ZNSt3__18__c_nodeD2Ev 143 Symbol removed: _ZNSt3__18__get_dbEv 144 Symbol removed: _ZNSt3__18__i_nodeD1Ev 145 Symbol removed: _ZNSt3__18__i_nodeD2Ev 146 Symbol removed: _ZTINSt3__18__c_nodeE 147 Symbol removed: _ZTSNSt3__18__c_nodeE 148 Symbol removed: _ZTVNSt3__18__c_nodeE 149 150* b0fd9497af6d, 7de5aca84c54 and 507125af3d0b - [libc++] Add a lightweight overridable assertion handler 151 152 This patch adds a lightweight assertion handler mechanism that can be 153 overriden at link-time in a fashion similar to `operator new`. A default 154 assertion handler is provided in the shared library, hence the added 155 symbol. 156 157 All platforms 158 ------------- 159 Symbol added: _ZNSt3__122__libcpp_verbose_abortEPKcz 160 161------------ 162Version 14.0 163------------ 164 165* abb5dd6e99df - [libc++] `to_chars` for floating point. 166 167 This commit added the `to_chars` implementation for floating point values. 168 The entire implementation resides in the dylib and the functions specified 169 in the Standard are now part of the ABI. 170 171 All platforms 172 ------------- 173 Symbol added: _ZNSt3__18to_charsEPcS0_d 174 Symbol added: _ZNSt3__18to_charsEPcS0_dNS_12chars_formatE 175 Symbol added: _ZNSt3__18to_charsEPcS0_dNS_12chars_formatEi 176 Symbol added: _ZNSt3__18to_charsEPcS0_e 177 Symbol added: _ZNSt3__18to_charsEPcS0_eNS_12chars_formatE 178 Symbol added: _ZNSt3__18to_charsEPcS0_eNS_12chars_formatEi 179 Symbol added: _ZNSt3__18to_charsEPcS0_f 180 Symbol added: _ZNSt3__18to_charsEPcS0_fNS_12chars_formatE 181 Symbol added: _ZNSt3__18to_charsEPcS0_fNS_12chars_formatEi 182 183* 049f6c29a6f0 - [libc++] Resolve missing table_size symbol 184 185 This commit added an out-of-line definition for `table_size` in the library. 186 This is not an ABI break since we are just adding a symbol to the library. 187 In fact, any program that would have attempted to refer to that symbol would 188 have previously failed to link. 189 190 <arch>-apple-darwin 191 ------------------------- 192 Symbol added: _ZNSt3__15ctypeIcE10table_sizeE 193 194 x86_64-unknown-linux-gnu 195 ------------------------ 196 Symbol added: _ZNSt3__15ctypeIcE10table_sizeE 197 198* 434dc0a5bcae - [libc++] Always define a key function for std::bad_function_call in the dylib 199 200 This commit added a new explicit instantiation of std::bad_function_call's 201 vtable in the shared library. This change is not an ABI break as it only 202 adds symbols to the library. Programs compiled against the library will not 203 rely on the vtable being defined in it by default. Reliance on the vtable 204 being in the shared library can be enabled by defining the 205 _LIBCPP_ABI_BAD_FUNCTION_CALL_KEY_FUNCTION macro. 206 207 Note that this commit also causes the libc++ shared library to start relying 208 on std::exception::what() being provided. This is due to the fact that the 209 shared library now contains the vtable for std::bad_function_call, which 210 references std::exception::what(). This shouldn't be an issue since that 211 function needs to be available to users in order to use std::bad_function_call 212 before this patch too. 213 214 All platforms 215 ------------- 216 Symbol added: _ZNSt3__117bad_function_callD0Ev 217 Symbol added: _ZNSt3__117bad_function_callD1Ev 218 Symbol added: _ZNSt3__117bad_function_callD2Ev 219 Symbol added: _ZTINSt3__117bad_function_callE 220 Symbol added: _ZTSNSt3__117bad_function_callE 221 Symbol added: _ZTVNSt3__117bad_function_callE 222 223 <arch>-unknown-linux-gnu 224 ------------------------ 225 Added dependency on symbol: _ZNKSt9exception4whatEv 226 227------------ 228Version 12.0 229------------ 230 231* a984dcaf7c21 - [libc++] [P0482] [C++20] Implement missing bits for codecvt and codecvt_byname. 232 233 This commit added new instantiations with char8_t for classes codecvt and 234 codecvt_byname in <locale> in the library. 235 236 All platforms 237 ------------- 238 Symbol added: _ZNKSt3__17codecvtIDiDu11__mbstate_tE10do_unshiftERS1_PDuS4_RS4_ 239 Symbol added: _ZNKSt3__17codecvtIDiDu11__mbstate_tE11do_encodingEv 240 Symbol added: _ZNKSt3__17codecvtIDiDu11__mbstate_tE13do_max_lengthEv 241 Symbol added: _ZNKSt3__17codecvtIDiDu11__mbstate_tE16do_always_noconvEv 242 Symbol added: _ZNKSt3__17codecvtIDiDu11__mbstate_tE5do_inERS1_PKDuS5_RS5_PDiS7_RS7_ 243 Symbol added: _ZNKSt3__17codecvtIDiDu11__mbstate_tE6do_outERS1_PKDiS5_RS5_PDuS7_RS7_ 244 Symbol added: _ZNKSt3__17codecvtIDiDu11__mbstate_tE9do_lengthERS1_PKDuS5_m 245 Symbol added: _ZNKSt3__17codecvtIDsDu11__mbstate_tE10do_unshiftERS1_PDuS4_RS4_ 246 Symbol added: _ZNKSt3__17codecvtIDsDu11__mbstate_tE11do_encodingEv 247 Symbol added: _ZNKSt3__17codecvtIDsDu11__mbstate_tE13do_max_lengthEv 248 Symbol added: _ZNKSt3__17codecvtIDsDu11__mbstate_tE16do_always_noconvEv 249 Symbol added: _ZNKSt3__17codecvtIDsDu11__mbstate_tE5do_inERS1_PKDuS5_RS5_PDsS7_RS7_ 250 Symbol added: _ZNKSt3__17codecvtIDsDu11__mbstate_tE6do_outERS1_PKDsS5_RS5_PDuS7_RS7_ 251 Symbol added: _ZNKSt3__17codecvtIDsDu11__mbstate_tE9do_lengthERS1_PKDuS5_m 252 Symbol added: _ZNSt3__114codecvt_bynameIDiDu11__mbstate_tED0Ev 253 Symbol added: _ZNSt3__114codecvt_bynameIDiDu11__mbstate_tED1Ev 254 Symbol added: _ZNSt3__114codecvt_bynameIDiDu11__mbstate_tED2Ev 255 Symbol added: _ZNSt3__114codecvt_bynameIDsDu11__mbstate_tED0Ev 256 Symbol added: _ZNSt3__114codecvt_bynameIDsDu11__mbstate_tED1Ev 257 Symbol added: _ZNSt3__114codecvt_bynameIDsDu11__mbstate_tED2Ev 258 Symbol added: _ZNSt3__17codecvtIDiDu11__mbstate_tE2idE 259 Symbol added: _ZNSt3__17codecvtIDiDu11__mbstate_tED0Ev 260 Symbol added: _ZNSt3__17codecvtIDiDu11__mbstate_tED1Ev 261 Symbol added: _ZNSt3__17codecvtIDiDu11__mbstate_tED2Ev 262 Symbol added: _ZNSt3__17codecvtIDsDu11__mbstate_tE2idE 263 Symbol added: _ZNSt3__17codecvtIDsDu11__mbstate_tED0Ev 264 Symbol added: _ZNSt3__17codecvtIDsDu11__mbstate_tED1Ev 265 Symbol added: _ZNSt3__17codecvtIDsDu11__mbstate_tED2Ev 266 Symbol added: _ZTINSt3__114codecvt_bynameIDiDu11__mbstate_tEE 267 Symbol added: _ZTINSt3__114codecvt_bynameIDsDu11__mbstate_tEE 268 Symbol added: _ZTINSt3__17codecvtIDiDu11__mbstate_tEE 269 Symbol added: _ZTINSt3__17codecvtIDsDu11__mbstate_tEE 270 Symbol added: _ZTSNSt3__17codecvtIDiDu11__mbstate_tEE 271 Symbol added: _ZTSNSt3__17codecvtIDsDu11__mbstate_tEE 272 Symbol added: _ZTVNSt3__114codecvt_bynameIDiDu11__mbstate_tEE 273 Symbol added: _ZTVNSt3__114codecvt_bynameIDsDu11__mbstate_tEE 274 Symbol added: _ZTVNSt3__17codecvtIDiDu11__mbstate_tEE 275 Symbol added: _ZTVNSt3__17codecvtIDsDu11__mbstate_tEE 276 277 <arch>-unknown-linux-gnu 278 ------------------------ 279 Symbol added: _ZTSNSt3__114codecvt_bynameIDiDu11__mbstate_tEE 280 Symbol added: _ZTSNSt3__114codecvt_bynameIDsDu11__mbstate_tEE 281 282* 997d41cdec53 - [libc++] Instantiate additional <iostream> members in the dylib 283 284 This commit added new explicit instantiations for classes in <iostream> in 285 the library. This was done after noticing that many programs that used streams 286 ended up containing weak definitions of these classes, which has a negative 287 impact on both code size and load times. This change is not an ABI break, 288 since we are just adding additional symbols. 289 290 All platforms 291 ------------- 292 Symbol added: _ZNKSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE3strEv 293 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE11__read_modeEv 294 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE12__write_modeEv 295 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE4openEPKcj 296 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE4swapERS3_ 297 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE4syncEv 298 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE5closeEv 299 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE5imbueERKNS_6localeE 300 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE6setbufEPcl 301 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE7seekoffExNS_8ios_base7seekdirEj 302 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE7seekposENS_4fposI11__mbstate_tEEj 303 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE8overflowEi 304 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE9pbackfailEi 305 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE9underflowEv 306 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEEC1EOS3_ 307 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEEC1Ev 308 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEEC2EOS3_ 309 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEEC2Ev 310 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEED0Ev 311 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEED1Ev 312 Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEED2Ev 313 Symbol added: _ZNSt3__114basic_ifstreamIcNS_11char_traitsIcEEE4openEPKcj 314 Symbol added: _ZNSt3__114basic_ifstreamIcNS_11char_traitsIcEEE4openERKNS_12basic_stringIcS2_NS_9allocatorIcEEEEj 315 Symbol added: _ZNSt3__114basic_ofstreamIcNS_11char_traitsIcEEE4openEPKcj 316 Symbol added: _ZNSt3__114basic_ofstreamIcNS_11char_traitsIcEEE4openERKNS_12basic_stringIcS2_NS_9allocatorIcEEEEj 317 Symbol added: _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE3strERKNS_12basic_stringIcS2_S4_EE 318 Symbol added: _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE4swapERS5_ 319 Symbol added: _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE7seekoffExNS_8ios_base7seekdirEj 320 Symbol added: _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE8overflowEi 321 Symbol added: _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE9pbackfailEi 322 Symbol added: _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE9underflowEv 323 Symbol added: _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEC1EOS5_ 324 Symbol added: _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEC2EOS5_ 325 Symbol added: _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_ 326 Symbol added: _ZNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_ 327 Symbol added: _ZNSt3__119basic_istringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_ 328 Symbol added: _ZNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_ 329 Symbol added: _ZTCNSt3__114basic_ifstreamIcNS_11char_traitsIcEEEE0_NS_13basic_istreamIcS2_EE 330 Symbol added: _ZTCNSt3__114basic_ofstreamIcNS_11char_traitsIcEEEE0_NS_13basic_ostreamIcS2_EE 331 Symbol added: _ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_13basic_istreamIcS2_EE 332 Symbol added: _ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_14basic_iostreamIcS2_EE 333 Symbol added: _ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE16_NS_13basic_ostreamIcS2_EE 334 Symbol added: _ZTCNSt3__119basic_istringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_13basic_istreamIcS2_EE 335 Symbol added: _ZTCNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_13basic_ostreamIcS2_EE 336 Symbol added: _ZTINSt3__113basic_filebufIcNS_11char_traitsIcEEEE 337 Symbol added: _ZTINSt3__114basic_ifstreamIcNS_11char_traitsIcEEEE 338 Symbol added: _ZTINSt3__114basic_ofstreamIcNS_11char_traitsIcEEEE 339 Symbol added: _ZTINSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEE 340 Symbol added: _ZTINSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE 341 Symbol added: _ZTINSt3__119basic_istringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE 342 Symbol added: _ZTINSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE 343 Symbol added: _ZTSNSt3__113basic_filebufIcNS_11char_traitsIcEEEE 344 Symbol added: _ZTSNSt3__114basic_ifstreamIcNS_11char_traitsIcEEEE 345 Symbol added: _ZTSNSt3__114basic_ofstreamIcNS_11char_traitsIcEEEE 346 Symbol added: _ZTSNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEE 347 Symbol added: _ZTSNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE 348 Symbol added: _ZTSNSt3__119basic_istringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE 349 Symbol added: _ZTSNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE 350 Symbol added: _ZTTNSt3__114basic_ifstreamIcNS_11char_traitsIcEEEE 351 Symbol added: _ZTTNSt3__114basic_ofstreamIcNS_11char_traitsIcEEEE 352 Symbol added: _ZTTNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE 353 Symbol added: _ZTTNSt3__119basic_istringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE 354 Symbol added: _ZTTNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE 355 Symbol added: _ZTVNSt3__113basic_filebufIcNS_11char_traitsIcEEEE 356 Symbol added: _ZTVNSt3__114basic_ifstreamIcNS_11char_traitsIcEEEE 357 Symbol added: _ZTVNSt3__114basic_ofstreamIcNS_11char_traitsIcEEEE 358 Symbol added: _ZTVNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEE 359 Symbol added: _ZTVNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE 360 Symbol added: _ZTVNSt3__119basic_istringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE 361 Symbol added: _ZTVNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE 362 363* 9b40ee8eb0c1 - [libc++] Define new/delete in libc++abi only by default 364 365 By default, libc++ does not include the definition for new and delete anymore. 366 Those were previously defined in both libc++ and libc++abi, which was an 367 ODR violation. 368 369 <arch>-apple-darwin 370 ------------------------- 371 The following symbols are now re-exported from libc++abi instead of exported 372 by libc++ directly (this should not be an ABI break): 373 374 Symbol moved: __ZdaPv 375 Symbol moved: __ZdaPvm 376 Symbol moved: __ZdaPvmSt11align_val_t 377 Symbol moved: __ZdaPvRKSt9nothrow_t 378 Symbol moved: __ZdaPvSt11align_val_t 379 Symbol moved: __ZdaPvSt11align_val_tRKSt9nothrow_t 380 Symbol moved: __ZdlPv 381 Symbol moved: __ZdlPvm 382 Symbol moved: __ZdlPvmSt11align_val_t 383 Symbol moved: __ZdlPvRKSt9nothrow_t 384 Symbol moved: __ZdlPvSt11align_val_t 385 Symbol moved: __ZdlPvSt11align_val_tRKSt9nothrow_t 386 Symbol moved: __Znam 387 Symbol moved: __ZnamRKSt9nothrow_t 388 Symbol moved: __ZnamSt11align_val_t 389 Symbol moved: __ZnamSt11align_val_tRKSt9nothrow_t 390 Symbol moved: __Znwm 391 Symbol moved: __ZnwmRKSt9nothrow_t 392 Symbol moved: __ZnwmSt11align_val_t 393 Symbol moved: __ZnwmSt11align_val_tRKSt9nothrow_t 394 395 <arch>-unknown-linux-gnu 396 ------------------------ 397 The following symbols were moved to libc++abi, but are NOT being re-exported 398 by libc++. This constitutes an ABI break if one links against libc++ but 399 not libc++abi. 400 401 Symbol moved: _ZdaPv 402 Symbol moved: _ZdaPvm 403 Symbol moved: _ZdaPvmSt11align_val_t 404 Symbol moved: _ZdaPvRKSt9nothrow_t 405 Symbol moved: _ZdaPvSt11align_val_t 406 Symbol moved: _ZdaPvSt11align_val_tRKSt9nothrow_t 407 Symbol moved: _ZdlPv 408 Symbol moved: _ZdlPvm 409 Symbol moved: _ZdlPvmSt11align_val_t 410 Symbol moved: _ZdlPvRKSt9nothrow_t 411 Symbol moved: _ZdlPvSt11align_val_t 412 Symbol moved: _ZdlPvSt11align_val_tRKSt9nothrow_t 413 Symbol moved: _Znam 414 Symbol moved: _ZnamRKSt9nothrow_t 415 Symbol moved: _ZnamSt11align_val_t 416 Symbol moved: _ZnamSt11align_val_tRKSt9nothrow_t 417 Symbol moved: _Znwm 418 Symbol moved: _ZnwmRKSt9nothrow_t 419 Symbol moved: _ZnwmSt11align_val_t 420 Symbol moved: _ZnwmSt11align_val_tRKSt9nothrow_t 421 422* 4f13b9992971 - [libc++] Simplify how we re-export symbols from libc++abi 423 424 We re-export some symbols that were exported from libc++abi but not from 425 libc++. Exporting new symbols is not an ABI break. 426 427 <arch>-apple-darwin 428 ------------------- 429 Symbol added: ___cxa_allocate_dependent_exception 430 Symbol added: ___cxa_free_dependent_exception 431 432------------ 433Version 10.0 434------------ 435 436* 54fa9ecd3088 - [libc++] Implementation of C++20's P1135R6 for libcxx 437 438 libc++ now implements P1135R6 (The C++20 Synchronization Library), which 439 adds a few symbols to the dylib. This is backwards-compatible since we're 440 just adding new symbols. 441 442 All platforms 443 ------------- 444 Symbol added: __ZNSt3__120__libcpp_atomic_waitEPVKNS_17__cxx_atomic_implIxNS_22__cxx_atomic_base_implIxEEEEx 445 Symbol added: __ZNSt3__120__libcpp_atomic_waitEPVKvx 446 Symbol added: __ZNSt3__123__cxx_atomic_notify_allEPVKNS_17__cxx_atomic_implIxNS_22__cxx_atomic_base_implIxEEEE 447 Symbol added: __ZNSt3__123__cxx_atomic_notify_allEPVKv 448 Symbol added: __ZNSt3__123__cxx_atomic_notify_oneEPVKNS_17__cxx_atomic_implIxNS_22__cxx_atomic_base_implIxEEEE 449 Symbol added: __ZNSt3__123__cxx_atomic_notify_oneEPVKv 450 Symbol added: __ZNSt3__123__libcpp_atomic_monitorEPVKNS_17__cxx_atomic_implIxNS_22__cxx_atomic_base_implIxEEEE 451 Symbol added: __ZNSt3__123__libcpp_atomic_monitorEPVKv 452 Symbol added: __ZNSt3__131__arrive_barrier_algorithm_baseEPNS_24__barrier_algorithm_baseEh 453 Symbol added: __ZNSt3__132__destroy_barrier_algorithm_baseEPNS_24__barrier_algorithm_baseE 454 Symbol added: __ZNSt3__134__construct_barrier_algorithm_baseERl 455 456----------- 457Version 9.0 458----------- 459 460* r358690 - Re-rexport missing symbols from libc++abi 461 462 libc++ now re-exports `__cxa_throw_bad_array_new_length` and `__cxa_uncaught_exceptions`, 463 both of which are provided by libc++abi. This is not an ABI break because 464 we're just adding symbols. Also, this does mean that libc++ can't be linked 465 against an older version of libc++abi that doesn't provide those symbols, 466 however doing so is not supported anyway. 467 468 <arch>-apple-darwin 469 ------------------- 470 Symbol added: ___cxa_throw_bad_array_new_length 471 Symbol added: ___cxa_uncaught_exceptions 472 473* r356518 - Integrate <filesystem> support into the shared library 474 475 This patch introduces support for <filesystem> into the shared library, 476 instead of requiring users to manually link against a static archive. As 477 such, new symbols required to implement <filesystem> are exported from 478 the shared library. 479 480 All platforms 481 ------------- 482 Symbol added: _ZNKSt3__14__fs10filesystem18directory_iterator13__dereferenceEv 483 Symbol added: _ZNKSt3__14__fs10filesystem28recursive_directory_iterator13__dereferenceEv 484 Symbol added: _ZNKSt3__14__fs10filesystem28recursive_directory_iterator5depthEv 485 Symbol added: _ZNKSt3__14__fs10filesystem28recursive_directory_iterator7optionsEv 486 Symbol added: _ZNKSt3__14__fs10filesystem4path10__filenameEv 487 Symbol added: _ZNKSt3__14__fs10filesystem4path11__extensionEv 488 Symbol added: _ZNKSt3__14__fs10filesystem4path11__root_nameEv 489 Symbol added: _ZNKSt3__14__fs10filesystem4path13__parent_pathEv 490 Symbol added: _ZNKSt3__14__fs10filesystem4path15__relative_pathEv 491 Symbol added: _ZNKSt3__14__fs10filesystem4path15__root_path_rawEv 492 Symbol added: _ZNKSt3__14__fs10filesystem4path16__root_directoryEv 493 Symbol added: _ZNKSt3__14__fs10filesystem4path16lexically_normalEv 494 Symbol added: _ZNKSt3__14__fs10filesystem4path18lexically_relativeERKS2_ 495 Symbol added: _ZNKSt3__14__fs10filesystem4path3endEv 496 Symbol added: _ZNKSt3__14__fs10filesystem4path5beginEv 497 Symbol added: _ZNKSt3__14__fs10filesystem4path6__stemEv 498 Symbol added: _ZNKSt3__14__fs10filesystem4path9__compareENS_17basic_string_viewIcNS_11char_traitsIcEEEE 499 Symbol added: _ZNSt3__14__fs10filesystem10__absoluteERKNS1_4pathEPNS_10error_codeE 500 Symbol added: _ZNSt3__14__fs10filesystem10hash_valueERKNS1_4pathE 501 Symbol added: _ZNSt3__14__fs10filesystem11__canonicalERKNS1_4pathEPNS_10error_codeE 502 Symbol added: _ZNSt3__14__fs10filesystem11__copy_fileERKNS1_4pathES4_NS1_12copy_optionsEPNS_10error_codeE 503 Symbol added: _ZNSt3__14__fs10filesystem11__file_sizeERKNS1_4pathEPNS_10error_codeE 504 Symbol added: _ZNSt3__14__fs10filesystem12__equivalentERKNS1_4pathES4_PNS_10error_codeE 505 Symbol added: _ZNSt3__14__fs10filesystem12__remove_allERKNS1_4pathEPNS_10error_codeE 506 Symbol added: _ZNSt3__14__fs10filesystem13__fs_is_emptyERKNS1_4pathEPNS_10error_codeE 507 Symbol added: _ZNSt3__14__fs10filesystem13__permissionsERKNS1_4pathENS1_5permsENS1_12perm_optionsEPNS_10error_codeE 508 Symbol added: _ZNSt3__14__fs10filesystem13__resize_fileERKNS1_4pathEmPNS_10error_codeE 509 Symbol added: _ZNSt3__14__fs10filesystem14__copy_symlinkERKNS1_4pathES4_PNS_10error_codeE 510 Symbol added: _ZNSt3__14__fs10filesystem14__current_pathEPNS_10error_codeE 511 Symbol added: _ZNSt3__14__fs10filesystem14__current_pathERKNS1_4pathEPNS_10error_codeE 512 Symbol added: _ZNSt3__14__fs10filesystem14__read_symlinkERKNS1_4pathEPNS_10error_codeE 513 Symbol added: _ZNSt3__14__fs10filesystem15directory_entry12__do_refreshEv 514 Symbol added: _ZNSt3__14__fs10filesystem16__create_symlinkERKNS1_4pathES4_PNS_10error_codeE 515 Symbol added: _ZNSt3__14__fs10filesystem16__symlink_statusERKNS1_4pathEPNS_10error_codeE 516 Symbol added: _ZNSt3__14__fs10filesystem16_FilesystemClock3nowEv 517 Symbol added: _ZNSt3__14__fs10filesystem16_FilesystemClock9is_steadyE 518 Symbol added: _ZNSt3__14__fs10filesystem16filesystem_error13__create_whatEi 519 Symbol added: _ZNSt3__14__fs10filesystem16filesystem_errorD0Ev 520 Symbol added: _ZNSt3__14__fs10filesystem16filesystem_errorD1Ev 521 Symbol added: _ZNSt3__14__fs10filesystem16filesystem_errorD2Ev 522 Symbol added: _ZNSt3__14__fs10filesystem17__hard_link_countERKNS1_4pathEPNS_10error_codeE 523 Symbol added: _ZNSt3__14__fs10filesystem17__last_write_timeERKNS1_4pathENS_6chrono10time_pointINS1_16_FilesystemClockENS5_8durationInNS_5ratioILl1ELl1000000000EEEEEEEPNS_10error_codeE 524 Symbol added: _ZNSt3__14__fs10filesystem17__last_write_timeERKNS1_4pathEPNS_10error_codeE 525 Symbol added: _ZNSt3__14__fs10filesystem18__create_directoryERKNS1_4pathEPNS_10error_codeE 526 Symbol added: _ZNSt3__14__fs10filesystem18__create_directoryERKNS1_4pathES4_PNS_10error_codeE 527 Symbol added: _ZNSt3__14__fs10filesystem18__create_hard_linkERKNS1_4pathES4_PNS_10error_codeE 528 Symbol added: _ZNSt3__14__fs10filesystem18__weakly_canonicalERKNS1_4pathEPNS_10error_codeE 529 Symbol added: _ZNSt3__14__fs10filesystem18directory_iterator11__incrementEPNS_10error_codeE 530 Symbol added: _ZNSt3__14__fs10filesystem18directory_iteratorC1ERKNS1_4pathEPNS_10error_codeENS1_17directory_optionsE 531 Symbol added: _ZNSt3__14__fs10filesystem18directory_iteratorC2ERKNS1_4pathEPNS_10error_codeENS1_17directory_optionsE 532 Symbol added: _ZNSt3__14__fs10filesystem20__create_directoriesERKNS1_4pathEPNS_10error_codeE 533 Symbol added: _ZNSt3__14__fs10filesystem21__temp_directory_pathEPNS_10error_codeE 534 Symbol added: _ZNSt3__14__fs10filesystem26__create_directory_symlinkERKNS1_4pathES4_PNS_10error_codeE 535 Symbol added: _ZNSt3__14__fs10filesystem28recursive_directory_iterator11__incrementEPNS_10error_codeE 536 Symbol added: _ZNSt3__14__fs10filesystem28recursive_directory_iterator15__try_recursionEPNS_10error_codeE 537 Symbol added: _ZNSt3__14__fs10filesystem28recursive_directory_iterator5__popEPNS_10error_codeE 538 Symbol added: _ZNSt3__14__fs10filesystem28recursive_directory_iterator9__advanceEPNS_10error_codeE 539 Symbol added: _ZNSt3__14__fs10filesystem28recursive_directory_iteratorC1ERKNS1_4pathENS1_17directory_optionsEPNS_10error_codeE 540 Symbol added: _ZNSt3__14__fs10filesystem28recursive_directory_iteratorC2ERKNS1_4pathENS1_17directory_optionsEPNS_10error_codeE 541 Symbol added: _ZNSt3__14__fs10filesystem4path17replace_extensionERKS2_ 542 Symbol added: _ZNSt3__14__fs10filesystem4path19preferred_separatorE 543 Symbol added: _ZNSt3__14__fs10filesystem4path8iterator11__decrementEv 544 Symbol added: _ZNSt3__14__fs10filesystem4path8iterator11__incrementEv 545 Symbol added: _ZNSt3__14__fs10filesystem6__copyERKNS1_4pathES4_NS1_12copy_optionsEPNS_10error_codeE 546 Symbol added: _ZNSt3__14__fs10filesystem7__spaceERKNS1_4pathEPNS_10error_codeE 547 Symbol added: _ZNSt3__14__fs10filesystem8__removeERKNS1_4pathEPNS_10error_codeE 548 Symbol added: _ZNSt3__14__fs10filesystem8__renameERKNS1_4pathES4_PNS_10error_codeE 549 Symbol added: _ZNSt3__14__fs10filesystem8__statusERKNS1_4pathEPNS_10error_codeE 550 Symbol added: _ZTINSt3__14__fs10filesystem16filesystem_errorE 551 Symbol added: _ZTSNSt3__14__fs10filesystem16filesystem_errorE 552 Symbol added: _ZTVNSt3__14__fs10filesystem16filesystem_errorE 553 554* r356417 - Remove exception throwing debug mode handler support. 555 556 The reason libc++ implemented a throwing debug mode handler was for ease of testing. Specifically, 557 I thought that if a debug violation aborted, we could only test one violation per file. This made 558 it impossible to test debug mode. Which throwing behavior we could test more! 559 560 However, the throwing approach didn't work either, since there are debug violations underneath noexcept 561 functions. This lead to the introduction of `_NOEXCEPT_DEBUG`, which was only noexcept when debug 562 mode was off. 563 564 Having thought more and having grown wiser, `_NOEXCEPT_DEBUG` was a horrible decision. It was 565 viral, it didn't cover all the cases it needed to, and it was observable to the user -- at worst 566 changing the behavior of their program. 567 568 This patch removes the throwing debug handler, and rewrites the debug tests using 'fork-ing' style 569 death tests. 570 571 All Platforms (ignoring versioning namespaces) 572 ---------------------------------------------- 573 Symbol added: _ZNKSt3__119__libcpp_debug_info4whatEv 574 Symbol removed: _ZNKSt3__124__libcpp_debug_exception4whatEv 575 Symbol removed: _ZNSt3__124__libcpp_debug_exceptionC1ERKNS_19__libcpp_debug_infoE 576 Symbol removed: _ZNSt3__124__libcpp_debug_exceptionC1ERKS0_ 577 Symbol removed: _ZNSt3__124__libcpp_debug_exceptionC1Ev 578 Symbol removed: _ZNSt3__124__libcpp_debug_exceptionC2ERKNS_19__libcpp_debug_infoE 579 Symbol removed: _ZNSt3__124__libcpp_debug_exceptionC2ERKS0_ 580 Symbol removed: _ZNSt3__124__libcpp_debug_exceptionC2Ev 581 Symbol removed: _ZNSt3__124__libcpp_debug_exceptionD0Ev 582 Symbol removed: _ZNSt3__124__libcpp_debug_exceptionD1Ev 583 Symbol removed: _ZNSt3__124__libcpp_debug_exceptionD2Ev 584 Symbol removed: _ZNSt3__129__libcpp_throw_debug_functionERKNS_19__libcpp_debug_infoE 585 Symbol removed: _ZTINSt3__124__libcpp_debug_exceptionE 586 Symbol removed: _ZTSNSt3__124__libcpp_debug_exceptionE 587 Symbol removed: _ZTVNSt3__124__libcpp_debug_exceptionE 588 589 <arch>-apple-darwin 590 ------------------- 591 Symbol added: __ZNSt3__111__libcpp_db10__insert_cEPvPFPNS_8__c_nodeES1_S1_S3_E 592 Symbol removed: __ZNSt3__111__libcpp_db10__insert_cEPv 593 594* r355367 - Fix -fsanitize=vptr badness in <__debug> 595 596 This patch fixes a lifetime bug when inserting a new container into the debug database. It is 597 diagnosed by UBSAN when debug mode is enabled. This patch corrects how nodes are constructed 598 during insertion. 599 600 The fix requires unconditionally breaking the debug mode ABI. Users should not expect ABI 601 stability from debug mode. 602 603 All platforms 604 ------------- 605 Symbol added: _ZNSt3__111__libcpp_db10__insert_cEPvPFPNS_8__c_nodeES1_S1_S3_E 606 Symbol removed: _ZNSt3__111__libcpp_db10__insert_cEPv 607 608----------- 609Version 8.0 610----------- 611 612* r347903 - Remove std::bad_array_length 613 614 The change removes the definition of std::bad_array_length (which never made 615 it into the standard) from the headers and the dylib. This is technically an 616 ABI break because the symbols are shipped starting with mac OSX 10.13, however 617 users couldn't be relying on the functionality because it is marked as being 618 unavailable using Clang's availability attribute. 619 620 <arch>-apple-darwin 621 ------------------- 622 Symbol removed: __ZNKSt16bad_array_length4whatEv 623 Symbol removed: __ZNKSt16bad_array_length4whatEv 624 Symbol removed: __ZNSt16bad_array_lengthC1Ev 625 Symbol removed: __ZNSt16bad_array_lengthC1Ev 626 Symbol removed: __ZNSt16bad_array_lengthC2Ev 627 Symbol removed: __ZNSt16bad_array_lengthC2Ev 628 Symbol removed: __ZNSt16bad_array_lengthD0Ev 629 Symbol removed: __ZNSt16bad_array_lengthD0Ev 630 Symbol removed: __ZNSt16bad_array_lengthD1Ev 631 Symbol removed: __ZNSt16bad_array_lengthD1Ev 632 Symbol removed: __ZNSt16bad_array_lengthD2Ev 633 Symbol removed: __ZNSt16bad_array_lengthD2Ev 634 Symbol removed: __ZTISt16bad_array_length 635 Symbol removed: __ZTISt16bad_array_length 636 Symbol removed: __ZTSSt16bad_array_length 637 Symbol removed: __ZTSSt16bad_array_length 638 Symbol removed: __ZTVSt16bad_array_length 639 Symbol removed: __ZTVSt16bad_array_length 640 641* r347395 - Making libc++ build under -fvisibility=hidden on Linux 642 643 The change marks several function templates as hidden. This removes symbols 644 from the shared library, but this is not an ABI break because it's impossible 645 for programs linking against libc++.so to actually depend on that symbol. 646 The reason is that the symbol is exported from the shared library through 647 an implicit instantiation present in the shared object itself only. Furthermore, 648 if a user's shared object was implicitly instantiating one of these functions, 649 marking that symbol as hidden would not be an ABI break for them because none 650 of their users could actually be using the symbol in their dylib (because 651 it's an implicit instantiation). 652 653 x86_64-linux-gnu 654 ---------------- 655 Symbol removed: _ZNSt3__125__num_get_signed_integralIlEET_PKcS3_Rji 656 Symbol removed: _ZNSt3__125__num_get_signed_integralIxEET_PKcS3_Rji 657 Symbol removed: _ZNSt3__127__num_get_unsigned_integralIjEET_PKcS3_Rji 658 Symbol removed: _ZNSt3__127__num_get_unsigned_integralImEET_PKcS3_Rji 659 Symbol removed: _ZNSt3__127__num_get_unsigned_integralItEET_PKcS3_Rji 660 Symbol removed: _ZNSt3__127__num_get_unsigned_integralIyEET_PKcS3_Rji 661 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIaaEEPaEEjT0_S5_S5_S5_S5_T_ 662 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIccEEPcEEjT0_S5_S5_S5_S5_T_ 663 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIddEEPdEEjT0_S5_S5_S5_S5_T_ 664 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIffEEPfEEjT0_S5_S5_S5_S5_T_ 665 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIhhEEPhEEjT0_S5_S5_S5_S5_T_ 666 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIiiEEPiEEjT0_S5_S5_S5_S5_T_ 667 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIjjEEPjEEjT0_S5_S5_S5_S5_T_ 668 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIllEEPlEEjT0_S5_S5_S5_S5_T_ 669 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessImmEEPmEEjT0_S5_S5_S5_S5_T_ 670 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIssEEPsEEjT0_S5_S5_S5_S5_T_ 671 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIttEEPtEEjT0_S5_S5_S5_S5_T_ 672 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIwwEEPwEEjT0_S5_S5_S5_S5_T_ 673 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIxxEEPxEEjT0_S5_S5_S5_S5_T_ 674 Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIyyEEPyEEjT0_S5_S5_S5_S5_T_ 675 Symbol removed: _ZNSt3__1plIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_12basic_stringIT_T0_T1_EERKS9_PKS6_ 676 Symbol removed: _ZSt18make_exception_ptrINSt3__112future_errorEESt13exception_ptrT_ 677 678* r345260 - Making libc++ build under -fvisibility=hidden on Mac OS 679 680 The change marks __thread_specific_ptr<__thread_struct>::__at_thread_exit(void*) 681 with hidden visibility. This removes a symbol from the shared libraries, 682 however this is not an ABI break because it's impossible for programs linking 683 against libc++.dylib to actually depend on that symbol. The reason is that 684 the symbol is exported from the shared library through an implicit 685 instantiation present in the dylib itself only. Furthermore, if a user's 686 dylib was implicitly instantiating __thread_specific_ptr<T>::__at_thread_exit 687 (because it's defined in the headers), marking that symbol as hidden would 688 not be an ABI break for them because none of their users could actually be 689 using the symbol in their dylib (because it's an implicit instantiation). 690 691 This change also marks __start_std_streams as hidden -- this variable is 692 only required to initialize the streams, and nobody should depend on it 693 from outside the dylib. 694 695 x86_64-linux-gnu 696 ---------------- 697 Symbol removed: _ZNSt3__121__thread_specific_ptrINS_15__thread_structEE16__at_thread_exitEPv 698 Symbol removed: _ZNSt3__119__start_std_streamsE 699 700 <arch>-apple-darwin 701 ------------------- 702 Symbol removed: __ZNSt3__221__thread_specific_ptrINS_15__thread_structEE16__at_thread_exitEPv 703 Symbol removed: __ZNSt3__119__start_std_streamsE 704 705----------- 706Version 7.0 707----------- 708 709* r338479 - Elementary string conversions for integral types 710 711 The change emits __u64toa and __u32toa under std::__1::__itoa. 712 713 x86_64-linux-gnu 714 ---------------- 715 Symbol added: _ZNSt3__16__itoa8__u64toaEmPc 716 Symbol added: _ZNSt3__16__itoa8__u32toaEjPc 717 718 <arch>-apple-darwin 719 ------------------- 720 Symbol added: __ZNSt3__16__itoa8__u64toaEyPc 721 Symbol added: __ZNSt3__16__itoa8__u32toaEjPc 722 723 724* r333467 - Fix embarrasing typo in uncaught_exceptions. 725 726 This bug caused __uncaught_exception to be ODR used instead of 727 __uncaught_exceptions. This change is non-ABI breaking because the symbols 728 for std::uncaught_exception and std::uncaught_exceptions haven't changed, 729 and because users shouldn't be depending directly on libc++ exporting 730 __uncaught_exception/__uncaught_exceptions. 731 732 All Platforms 733 ---------------- 734 Symbol removed: __cxa_uncaught_exception 735 Symbol added: __cxa_uncaught_exceptions 736 737----------- 738Version 5.0 739----------- 740 741* r313500 - Fix undefined "___cxa_deleted_virtual" symbol in macosx 742 743 x86_64-linux-gnu 744 ---------------- 745 No changes 746 747 <arch>-apple-darwin 748 ------------------- 749 Symbol added: ___cxa_deleted_virtual 750 751* r296729 - Remove std::num_get template methods which should be inline 752 753 These functions should never have had visible definitions in the dylib but 754 since they were previously not specified with 'inline' they accidentally 755 got emitted. This change is non-ABI breaking because every "linkage unit" 756 must contain its own definition. 757 758 x86_64-linux-gnu 759 ---------------- 760 Symbol removed: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE15__do_get_signedIlEES4_S4_S4_RNS_8ios_baseERjRT_ 761 Symbol removed: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE15__do_get_signedIxEES4_S4_S4_RNS_8ios_baseERjRT_ 762 Symbol removed: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedIjEES4_S4_S4_RNS_8ios_baseERjRT_ 763 Symbol removed: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedImEES4_S4_S4_RNS_8ios_baseERjRT_ 764 Symbol removed: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedItEES4_S4_S4_RNS_8ios_baseERjRT_ 765 Symbol removed: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedIyEES4_S4_S4_RNS_8ios_baseERjRT_ 766 Symbol removed: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIdEES4_S4_S4_RNS_8ios_baseERjRT_ 767 Symbol removed: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIeEES4_S4_S4_RNS_8ios_baseERjRT_ 768 Symbol removed: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIfEES4_S4_S4_RNS_8ios_baseERjRT_ 769 Symbol removed: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE15__do_get_signedIlEES4_S4_S4_RNS_8ios_baseERjRT_ 770 Symbol removed: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE15__do_get_signedIxEES4_S4_S4_RNS_8ios_baseERjRT_ 771 Symbol removed: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedIjEES4_S4_S4_RNS_8ios_baseERjRT_ 772 Symbol removed: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedImEES4_S4_S4_RNS_8ios_baseERjRT_ 773 Symbol removed: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedItEES4_S4_S4_RNS_8ios_baseERjRT_ 774 Symbol removed: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedIyEES4_S4_S4_RNS_8ios_baseERjRT_ 775 Symbol removed: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIdEES4_S4_S4_RNS_8ios_baseERjRT_ 776 Symbol removed: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIeEES4_S4_S4_RNS_8ios_baseERjRT_ 777 Symbol removed: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIfEES4_S4_S4_RNS_8ios_baseERjRT_ 778 779 <arch>-apple-darwin 780 ------------------- 781 No changes 782 783----------- 784Version 4.0 785----------- 786 787* r290651 - Add _LIBCPP_ASSERT debug handling functions 788 789 All Platforms 790 ------------- 791 Symbol added: _ZNSt3__124__libcpp_debug_exceptionC2ERKNS_19__libcpp_debug_infoE 792 Symbol added: _ZNSt3__124__libcpp_debug_exceptionD1Ev 793 Symbol added: _ZTINSt3__124__libcpp_debug_exceptionE 794 Symbol added: _ZNSt3__129__libcpp_throw_debug_functionERKNS_19__libcpp_debug_infoE 795 Symbol added: _ZNSt3__124__libcpp_debug_exceptionD2Ev 796 Symbol added: _ZNSt3__129__libcpp_abort_debug_functionERKNS_19__libcpp_debug_infoE 797 Symbol added: _ZNSt3__124__libcpp_debug_exceptionC2ERKS0_ 798 Symbol added: _ZNSt3__124__libcpp_debug_exceptionC1Ev 799 Symbol added: _ZNSt3__124__libcpp_debug_exceptionC1ERKNS_19__libcpp_debug_infoE 800 Symbol added: _ZNSt3__124__libcpp_debug_exceptionC2Ev 801 Symbol added: _ZTSNSt3__124__libcpp_debug_exceptionE 802 Symbol added: _ZNSt3__123__libcpp_debug_functionE 803 Symbol added: _ZNKSt3__124__libcpp_debug_exception4whatEv 804 Symbol added: _ZNSt3__124__libcpp_debug_exceptionC1ERKS0_ 805 Symbol added: _ZNSt3__124__libcpp_debug_exceptionD0Ev 806 Symbol added: _ZTVNSt3__124__libcpp_debug_exceptionE 807 Symbol added: _ZNSt3__127__libcpp_set_debug_functionEPFvRKNS_19__libcpp_debug_infoEE 808 809* r288547 - Implement C++17 <variant> 810 811 All Platforms 812 ------------- 813 Symbol added: _ZTVSt18bad_variant_access 814 Symbol added: _ZTISt18bad_variant_access 815 Symbol added: _ZTSSt18bad_variant_access 816 Symbol added: _ZNKSt18bad_variant_access4whatEv 817 818* r285537 - Remove std::string::append template methods which should be inline 819 820 These functions should never have had visible definitions in the dylib but 821 since they were previously not specified with 'inline' they accidentally 822 got emitted. This change is non-ABI breaking because every "linkage unit" 823 must contain its own definition. 824 825 x86_64-linux-gnu 826 ---------------- 827 Symbol removed: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendIPcEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr38__libcpp_string_gets_noexcept_iteratorIS9_EE5valueERS5_E4typeES9_S9_ 828 Symbol removed: _ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6appendIPwEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr38__libcpp_string_gets_noexcept_iteratorIS9_EE5valueERS5_E4typeES9_S9_ 829 830 <arch>-apple-darwin 831 ------------------- 832 No changes 833 834* r285101 - Add -fvisibility-inlines-hidden when building libc++. 835 836 Although this change removes symbols, it should still be non-ABI breaking 837 since all of the definitions removed are inline functions. For this reason 838 removing these symbols is safe because every "linkage unit" which uses these 839 functions will contain their own definition. 840 841 x86_64-linux-gnu 842 ---------------- 843 Symbol removed: _ZNSt12bad_any_castD0Ev 844 Symbol removed: _ZNSt12experimental15fundamentals_v112bad_any_castD0Ev 845 Symbol removed: _ZNSt3__114__codecvt_utf8IDiED0Ev 846 Symbol removed: _ZNSt3__114__codecvt_utf8IDsED0Ev 847 Symbol removed: _ZNSt3__114__codecvt_utf8IwED0Ev 848 Symbol removed: _ZNSt3__115__codecvt_utf16IDiLb0EED0Ev 849 Symbol removed: _ZNSt3__115__codecvt_utf16IDiLb1EED0Ev 850 Symbol removed: _ZNSt3__115__codecvt_utf16IDsLb0EED0Ev 851 Symbol removed: _ZNSt3__115__codecvt_utf16IDsLb1EED0Ev 852 Symbol removed: _ZNSt3__115__codecvt_utf16IwLb0EED0Ev 853 Symbol removed: _ZNSt3__115__codecvt_utf16IwLb1EED0Ev 854 Symbol removed: _ZNSt3__117__assoc_sub_stateD0Ev 855 Symbol removed: _ZNSt3__117__assoc_sub_stateD2Ev 856 Symbol removed: _ZNSt3__117__libcpp_sscanf_lEPKcP15__locale_structS1_z 857 Symbol removed: _ZNSt3__119__libcpp_asprintf_lEPPcP15__locale_structPKcz 858 Symbol removed: _ZNSt3__119__libcpp_snprintf_lEPcmP15__locale_structPKcz 859 Symbol removed: _ZNSt3__120__codecvt_utf8_utf16IDiED0Ev 860 Symbol removed: _ZNSt3__120__codecvt_utf8_utf16IDsED0Ev 861 Symbol removed: _ZNSt3__120__codecvt_utf8_utf16IwED0Ev 862 863 <arch>-apple-darwin 864 ------------------- 865 No Changes - inline symbols are already hidden 866 867* r284206 - Implement C++17 aligned allocation in <new> 868 869 x86_64-linux-gnu 870 ---------------- 871 Symbol added: _ZdaPvSt11align_val_t 872 Symbol added: _ZdlPvSt11align_val_t 873 Symbol added: _ZnamSt11align_val_t 874 Symbol added: _ZdaPvmSt11align_val_t 875 Symbol added: _ZdlPvmSt11align_val_t 876 Symbol added: _ZdlPvSt11align_val_tRKSt9nothrow_t 877 Symbol added: _ZnwmSt11align_val_tRKSt9nothrow_t 878 Symbol added: _ZnamSt11align_val_tRKSt9nothrow_t 879 Symbol added: _ZdaPvSt11align_val_tRKSt9nothrow_t 880 Symbol added: _ZnwmSt11align_val_t 881 882* r283980 - Implement C++17 <optional> 883 884 x86_64-linux-gnu 885 ---------------- 886 Symbol added: _ZTISt19bad_optional_access 887 Symbol added: _ZNSt19bad_optional_accessD0Ev 888 Symbol added: _ZNSt19bad_optional_accessD1Ev 889 Symbol added: _ZNSt19bad_optional_accessD2Ev 890 Symbol added: _ZTVSt19bad_optional_access 891 Symbol added: _ZTSSt19bad_optional_access 892 893* r278310 - Implement C++17 <any> 894 895 x86_64-linux-gnu 896 ---------------- 897 Symbol added: _ZNKSt12bad_any_cast4whatEv 898 Symbol added: _ZNSt12bad_any_castD0Ev 899 Symbol added: _ZTISt12bad_any_cast 900 Symbol added: _ZTSSt12bad_any_cast 901 Symbol added: _ZTVSt12bad_any_cast 902 903* r295398 - Remove basic_string::insert and basic_string::replace template methods which should be inline. 904 905 These functions should never have had visible definitions in the dylib but 906 since they were previously not specified with 'inline' they accidentally 907 got emitted. This change is non-ABI breaking because every "linkage unit" 908 must contain its own definition. 909 910 x86_64-linux-gnu 911 ---------------- 912 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_ 913 Symbol removed: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7replaceIPKcEENS_9enable_ifIXsr19__is_input_iteratorIT_EE5valueERS5_E4typeENS_11__wrap_iterIS8_EESF_SA_SA_ 914 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_ 915 Symbol removed: _ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE7replaceIPKwEENS_9enable_ifIXsr19__is_input_iteratorIT_EE5valueERS5_E4typeENS_11__wrap_iterIS8_EESF_SA_SA_ 916