| ABI Changelog |
| ============== |
| This changelog contains information about ABI changes in libc++. Specifically |
| the addition and deletion of symbols from the libc++ dylib. |
| |
| Each entry should start with the revision number followed by a description of |
| the change. The entry should contain a summary of the ABI changes made, |
| including what symbols were added, removed, or changed. |
| |
| To generate a summary use "sym_diff.py" diffing against the appropriate ABI list. |
| Afterwards the ABI list should be updated to include the new changes. |
| |
| New entries should be added directly below the "Version" header. |
| |
| ----------- |
| Version 4.0 |
| ----------- |
| |
| * r288547 - Implement C++17 <variant> |
| |
| All Platforms |
| ------------- |
| Symbol added: _ZTVSt18bad_variant_access |
| Symbol added: _ZTISt18bad_variant_access |
| Symbol added: _ZTSSt18bad_variant_access |
| Symbol added: _ZNKSt18bad_variant_access4whatEv |
| |
| * rTBD - Remove std::string::append template methods which should be inline |
| |
| These functions should never have had visible definitions in the dylib but |
| since they were previously not specified with 'inline' they accidentally |
| got emitted. This change is non-ABI breaking because every "linkage unit" |
| must contain its own definition. |
| |
| x86_64-linux-gnu |
| ---------------- |
| SYMBOL REMOVED: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendIPcEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr38__libcpp_string_gets_noexcept_iteratorIS9_EE5valueERS5_E4typeES9_S9_ |
| SYMBOL REMOVED: _ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6appendIPwEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr38__libcpp_string_gets_noexcept_iteratorIS9_EE5valueERS5_E4typeES9_S9_ |
| |
| x86_64-apple-darwin16.0 |
| ----------------------- |
| No changes |
| |
| * r285101 - Add -fvisibility-inlines-hidden when building libc++. |
| |
| Although this change removes symbols, it should still be non-ABI breaking |
| since all of the definitions removed are inline functions. For this reason |
| removing these symbols is safe because every "linkage unit" which uses these |
| functions will contain their own definition. |
| |
| x86_64-linux-gnu |
| ---------------- |
| SYMBOL REMOVED: _ZNSt12bad_any_castD0Ev |
| SYMBOL REMOVED: _ZNSt12experimental15fundamentals_v112bad_any_castD0Ev |
| SYMBOL REMOVED: _ZNSt3__114__codecvt_utf8IDiED0Ev |
| SYMBOL REMOVED: _ZNSt3__114__codecvt_utf8IDsED0Ev |
| SYMBOL REMOVED: _ZNSt3__114__codecvt_utf8IwED0Ev |
| SYMBOL REMOVED: _ZNSt3__115__codecvt_utf16IDiLb0EED0Ev |
| SYMBOL REMOVED: _ZNSt3__115__codecvt_utf16IDiLb1EED0Ev |
| SYMBOL REMOVED: _ZNSt3__115__codecvt_utf16IDsLb0EED0Ev |
| SYMBOL REMOVED: _ZNSt3__115__codecvt_utf16IDsLb1EED0Ev |
| SYMBOL REMOVED: _ZNSt3__115__codecvt_utf16IwLb0EED0Ev |
| SYMBOL REMOVED: _ZNSt3__115__codecvt_utf16IwLb1EED0Ev |
| SYMBOL REMOVED: _ZNSt3__117__assoc_sub_stateD0Ev |
| SYMBOL REMOVED: _ZNSt3__117__assoc_sub_stateD2Ev |
| SYMBOL REMOVED: _ZNSt3__117__libcpp_sscanf_lEPKcP15__locale_structS1_z |
| SYMBOL REMOVED: _ZNSt3__119__libcpp_asprintf_lEPPcP15__locale_structPKcz |
| SYMBOL REMOVED: _ZNSt3__119__libcpp_snprintf_lEPcmP15__locale_structPKcz |
| SYMBOL REMOVED: _ZNSt3__120__codecvt_utf8_utf16IDiED0Ev |
| SYMBOL REMOVED: _ZNSt3__120__codecvt_utf8_utf16IDsED0Ev |
| SYMBOL REMOVED: _ZNSt3__120__codecvt_utf8_utf16IwED0Ev |
| |
| x86_64-apple-darwin16.0 |
| ----------------------- |
| No Changes - inline symbols are already hidden |
| |
| |
| * r284206 - Implement C++17 aligned allocation in <new> |
| |
| x86_64-linux-gnu |
| ---------------- |
| Symbol added: posix_memalign@GLIBC_2.2.5 |
| Symbol added: _ZdaPvSt11align_val_t |
| Symbol added: _ZdlPvSt11align_val_t |
| Symbol added: _ZnamSt11align_val_t |
| Symbol added: _ZdaPvmSt11align_val_t |
| Symbol added: _ZdlPvmSt11align_val_t |
| Symbol added: _ZdlPvSt11align_val_tRKSt9nothrow_t |
| Symbol added: _ZnwmSt11align_val_tRKSt9nothrow_t |
| Symbol added: _ZnamSt11align_val_tRKSt9nothrow_t |
| Symbol added: _ZdaPvSt11align_val_tRKSt9nothrow_t |
| Symbol added: _ZnwmSt11align_val_t |
| |
| * r283980 - Implement C++17 <optional> |
| |
| x86_64-linux-gnu |
| ---------------- |
| Symbol added: _ZTISt19bad_optional_access |
| Symbol added: _ZNSt19bad_optional_accessD0Ev |
| Symbol added: _ZNSt19bad_optional_accessD1Ev |
| Symbol added: _ZNSt19bad_optional_accessD2Ev |
| Symbol added: _ZTVSt19bad_optional_access |
| Symbol added: _ZTSSt19bad_optional_access |
| |
| * r278310 - Implement C++17 <any> |
| |
| x86_64-linux-gnu |
| ---------------- |
| Symbol added: _ZNKSt12bad_any_cast4whatEv |
| Symbol added: _ZNSt12bad_any_castD0Ev |
| Symbol added: _ZTISt12bad_any_cast |
| Symbol added: _ZTSSt12bad_any_cast |
| Symbol added: _ZTVSt12bad_any_cast |