1 ABI Changelog 2 ============== 3 This changelog contains information about ABI changes in libc++. Specifically 4 the addition and deletion of symbols from the libc++ dylib. 5 6 Each entry should start with the revision number followed by a description of 7 the change. The entry should contain a summary of the ABI changes made, 8 including what symbols were added, removed, or changed. 9 10 To generate a summary use "sym_diff.py" diffing against the appropriate ABI list. 11 Afterwards the ABI list should be updated to include the new changes. 12 13 New entries should be added directly below the "Version" header. 14 15 ----------- 16 Version 5.0 17 ----------- 18 19 * r313500 - Fix undefined "___cxa_deleted_virtual" symbol in macosx 20 21 x86_64-linux-gnu 22 ---------------- 23 No changes 24 25 x86_64-apple-darwin16.0 26 ----------------------- 27 Symbol added: ___cxa_deleted_virtual 28 29 * r296729 - Remove std::num_get template methods which should be inline 30 31 These functions should never have had visible definitions in the dylib but 32 since they were previously not specified with 'inline' they accidentally 33 got emitted. This change is non-ABI breaking because every "linkage unit" 34 must contain its own definition. 35 36 x86_64-linux-gnu 37 ---------------- 38 SYMBOL REMOVED: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE15__do_get_signedIlEES4_S4_S4_RNS_8ios_baseERjRT_ 39 SYMBOL REMOVED: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE15__do_get_signedIxEES4_S4_S4_RNS_8ios_baseERjRT_ 40 SYMBOL REMOVED: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedIjEES4_S4_S4_RNS_8ios_baseERjRT_ 41 SYMBOL REMOVED: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedImEES4_S4_S4_RNS_8ios_baseERjRT_ 42 SYMBOL REMOVED: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedItEES4_S4_S4_RNS_8ios_baseERjRT_ 43 SYMBOL REMOVED: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedIyEES4_S4_S4_RNS_8ios_baseERjRT_ 44 SYMBOL REMOVED: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIdEES4_S4_S4_RNS_8ios_baseERjRT_ 45 SYMBOL REMOVED: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIeEES4_S4_S4_RNS_8ios_baseERjRT_ 46 SYMBOL REMOVED: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIfEES4_S4_S4_RNS_8ios_baseERjRT_ 47 SYMBOL REMOVED: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE15__do_get_signedIlEES4_S4_S4_RNS_8ios_baseERjRT_ 48 SYMBOL REMOVED: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE15__do_get_signedIxEES4_S4_S4_RNS_8ios_baseERjRT_ 49 SYMBOL REMOVED: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedIjEES4_S4_S4_RNS_8ios_baseERjRT_ 50 SYMBOL REMOVED: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedImEES4_S4_S4_RNS_8ios_baseERjRT_ 51 SYMBOL REMOVED: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedItEES4_S4_S4_RNS_8ios_baseERjRT_ 52 SYMBOL REMOVED: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedIyEES4_S4_S4_RNS_8ios_baseERjRT_ 53 SYMBOL REMOVED: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIdEES4_S4_S4_RNS_8ios_baseERjRT_ 54 SYMBOL REMOVED: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIeEES4_S4_S4_RNS_8ios_baseERjRT_ 55 SYMBOL REMOVED: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIfEES4_S4_S4_RNS_8ios_baseERjRT_ 56 57 x86_64-apple-darwin16.0 58 ----------------------- 59 No changes 60 61 ----------- 62 Version 4.0 63 ----------- 64 65 * r290651 - Add _LIBCPP_ASSERT debug handling functions 66 67 All Platforms 68 ------------- 69 Symbol added: _ZNSt3__124__libcpp_debug_exceptionC2ERKNS_19__libcpp_debug_infoE 70 Symbol added: _ZNSt3__124__libcpp_debug_exceptionD1Ev 71 Symbol added: _ZTINSt3__124__libcpp_debug_exceptionE 72 Symbol added: _ZNSt3__129__libcpp_throw_debug_functionERKNS_19__libcpp_debug_infoE 73 Symbol added: _ZNSt3__124__libcpp_debug_exceptionD2Ev 74 Symbol added: _ZNSt3__129__libcpp_abort_debug_functionERKNS_19__libcpp_debug_infoE 75 Symbol added: _ZNSt3__124__libcpp_debug_exceptionC2ERKS0_ 76 Symbol added: _ZNSt3__124__libcpp_debug_exceptionC1Ev 77 Symbol added: _ZNSt3__124__libcpp_debug_exceptionC1ERKNS_19__libcpp_debug_infoE 78 Symbol added: _ZNSt3__124__libcpp_debug_exceptionC2Ev 79 Symbol added: _ZTSNSt3__124__libcpp_debug_exceptionE 80 Symbol added: _ZNSt3__123__libcpp_debug_functionE 81 Symbol added: _ZNKSt3__124__libcpp_debug_exception4whatEv 82 Symbol added: _ZNSt3__124__libcpp_debug_exceptionC1ERKS0_ 83 Symbol added: _ZNSt3__124__libcpp_debug_exceptionD0Ev 84 Symbol added: _ZTVNSt3__124__libcpp_debug_exceptionE 85 Symbol added: _ZNSt3__127__libcpp_set_debug_functionEPFvRKNS_19__libcpp_debug_infoEE 86 87 * r288547 - Implement C++17 <variant> 88 89 All Platforms 90 ------------- 91 Symbol added: _ZTVSt18bad_variant_access 92 Symbol added: _ZTISt18bad_variant_access 93 Symbol added: _ZTSSt18bad_variant_access 94 Symbol added: _ZNKSt18bad_variant_access4whatEv 95 96 * r285537 - Remove std::string::append template methods which should be inline 97 98 These functions should never have had visible definitions in the dylib but 99 since they were previously not specified with 'inline' they accidentally 100 got emitted. This change is non-ABI breaking because every "linkage unit" 101 must contain its own definition. 102 103 x86_64-linux-gnu 104 ---------------- 105 SYMBOL REMOVED: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendIPcEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr38__libcpp_string_gets_noexcept_iteratorIS9_EE5valueERS5_E4typeES9_S9_ 106 SYMBOL REMOVED: _ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6appendIPwEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr38__libcpp_string_gets_noexcept_iteratorIS9_EE5valueERS5_E4typeES9_S9_ 107 108 x86_64-apple-darwin16.0 109 ----------------------- 110 No changes 111 112 * r285101 - Add -fvisibility-inlines-hidden when building libc++. 113 114 Although this change removes symbols, it should still be non-ABI breaking 115 since all of the definitions removed are inline functions. For this reason 116 removing these symbols is safe because every "linkage unit" which uses these 117 functions will contain their own definition. 118 119 x86_64-linux-gnu 120 ---------------- 121 SYMBOL REMOVED: _ZNSt12bad_any_castD0Ev 122 SYMBOL REMOVED: _ZNSt12experimental15fundamentals_v112bad_any_castD0Ev 123 SYMBOL REMOVED: _ZNSt3__114__codecvt_utf8IDiED0Ev 124 SYMBOL REMOVED: _ZNSt3__114__codecvt_utf8IDsED0Ev 125 SYMBOL REMOVED: _ZNSt3__114__codecvt_utf8IwED0Ev 126 SYMBOL REMOVED: _ZNSt3__115__codecvt_utf16IDiLb0EED0Ev 127 SYMBOL REMOVED: _ZNSt3__115__codecvt_utf16IDiLb1EED0Ev 128 SYMBOL REMOVED: _ZNSt3__115__codecvt_utf16IDsLb0EED0Ev 129 SYMBOL REMOVED: _ZNSt3__115__codecvt_utf16IDsLb1EED0Ev 130 SYMBOL REMOVED: _ZNSt3__115__codecvt_utf16IwLb0EED0Ev 131 SYMBOL REMOVED: _ZNSt3__115__codecvt_utf16IwLb1EED0Ev 132 SYMBOL REMOVED: _ZNSt3__117__assoc_sub_stateD0Ev 133 SYMBOL REMOVED: _ZNSt3__117__assoc_sub_stateD2Ev 134 SYMBOL REMOVED: _ZNSt3__117__libcpp_sscanf_lEPKcP15__locale_structS1_z 135 SYMBOL REMOVED: _ZNSt3__119__libcpp_asprintf_lEPPcP15__locale_structPKcz 136 SYMBOL REMOVED: _ZNSt3__119__libcpp_snprintf_lEPcmP15__locale_structPKcz 137 SYMBOL REMOVED: _ZNSt3__120__codecvt_utf8_utf16IDiED0Ev 138 SYMBOL REMOVED: _ZNSt3__120__codecvt_utf8_utf16IDsED0Ev 139 SYMBOL REMOVED: _ZNSt3__120__codecvt_utf8_utf16IwED0Ev 140 141 x86_64-apple-darwin16.0 142 ----------------------- 143 No Changes - inline symbols are already hidden 144 145 146 * r284206 - Implement C++17 aligned allocation in <new> 147 148 x86_64-linux-gnu 149 ---------------- 150 Symbol added: posix_memalign (a] GLIBC_2.2.5 151 Symbol added: _ZdaPvSt11align_val_t 152 Symbol added: _ZdlPvSt11align_val_t 153 Symbol added: _ZnamSt11align_val_t 154 Symbol added: _ZdaPvmSt11align_val_t 155 Symbol added: _ZdlPvmSt11align_val_t 156 Symbol added: _ZdlPvSt11align_val_tRKSt9nothrow_t 157 Symbol added: _ZnwmSt11align_val_tRKSt9nothrow_t 158 Symbol added: _ZnamSt11align_val_tRKSt9nothrow_t 159 Symbol added: _ZdaPvSt11align_val_tRKSt9nothrow_t 160 Symbol added: _ZnwmSt11align_val_t 161 162 * r283980 - Implement C++17 <optional> 163 164 x86_64-linux-gnu 165 ---------------- 166 Symbol added: _ZTISt19bad_optional_access 167 Symbol added: _ZNSt19bad_optional_accessD0Ev 168 Symbol added: _ZNSt19bad_optional_accessD1Ev 169 Symbol added: _ZNSt19bad_optional_accessD2Ev 170 Symbol added: _ZTVSt19bad_optional_access 171 Symbol added: _ZTSSt19bad_optional_access 172 173 * r278310 - Implement C++17 <any> 174 175 x86_64-linux-gnu 176 ---------------- 177 Symbol added: _ZNKSt12bad_any_cast4whatEv 178 Symbol added: _ZNSt12bad_any_castD0Ev 179 Symbol added: _ZTISt12bad_any_cast 180 Symbol added: _ZTSSt12bad_any_cast 181 Symbol added: _ZTVSt12bad_any_cast 182 183 * r295398 - Remove basic_string::insert and basic_string::replace template methods 184 which should be inline. 185 186 These functions should never have had visible definitions in the dylib but 187 since they were previously not specified with 'inline' they accidentally 188 got emitted. This change is non-ABI breaking because every "linkage unit" 189 must contain its own definition. 190 191 x86_64-linux-gnu 192 ---------------- 193 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_ 194 SYMBOL REMOVED: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7replaceIPKcEENS_9enable_ifIXsr19__is_input_iteratorIT_EE5valueERS5_E4typeENS_11__wrap_iterIS8_EESF_SA_SA_ 195 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_ 196 SYMBOL REMOVED: _ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE7replaceIPKwEENS_9enable_ifIXsr19__is_input_iteratorIT_EE5valueERS5_E4typeENS_11__wrap_iterIS8_EESF_SA_SA_ 197