Home | History | Annotate | Download | only in abi
      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