1*58b9f456SAndroid Build Coastguard WorkerABI Changelog 2*58b9f456SAndroid Build Coastguard Worker============== 3*58b9f456SAndroid Build Coastguard WorkerThis changelog contains information about ABI changes in libc++. Specifically 4*58b9f456SAndroid Build Coastguard Workerthe addition and deletion of symbols from the libc++ dylib. 5*58b9f456SAndroid Build Coastguard Worker 6*58b9f456SAndroid Build Coastguard WorkerEach entry should start with the revision number followed by a description of 7*58b9f456SAndroid Build Coastguard Workerthe change. The entry should contain a summary of the ABI changes made, 8*58b9f456SAndroid Build Coastguard Workerincluding what symbols were added, removed, or changed. 9*58b9f456SAndroid Build Coastguard Worker 10*58b9f456SAndroid Build Coastguard WorkerTo generate a summary use "sym_diff.py" diffing against the appropriate ABI list. 11*58b9f456SAndroid Build Coastguard WorkerAfterwards the ABI list should be updated to include the new changes. 12*58b9f456SAndroid Build Coastguard Worker 13*58b9f456SAndroid Build Coastguard WorkerNew entries should be added directly below the "Version" header. 14*58b9f456SAndroid Build Coastguard Worker 15*58b9f456SAndroid Build Coastguard Worker----------- 16*58b9f456SAndroid Build Coastguard WorkerVersion 8.0 17*58b9f456SAndroid Build Coastguard Worker----------- 18*58b9f456SAndroid Build Coastguard Worker 19*58b9f456SAndroid Build Coastguard Worker* rXXXXX - Remove std::bad_array_length 20*58b9f456SAndroid Build Coastguard Worker 21*58b9f456SAndroid Build Coastguard Worker The change removes the definition of std::bad_array_length (which never made 22*58b9f456SAndroid Build Coastguard Worker it into the standard) from the headers and the dylib. This is technically an 23*58b9f456SAndroid Build Coastguard Worker ABI break because the symbols are shipped starting with mac OSX 10.13, however 24*58b9f456SAndroid Build Coastguard Worker users couldn't be relying on the functionality because it is marked as being 25*58b9f456SAndroid Build Coastguard Worker unavailable using Clang's availability attribute. 26*58b9f456SAndroid Build Coastguard Worker 27*58b9f456SAndroid Build Coastguard Worker x86_64-apple-darwin16.0 28*58b9f456SAndroid Build Coastguard Worker ----------------------- 29*58b9f456SAndroid Build Coastguard Worker Symbol removed: __ZNKSt16bad_array_length4whatEv 30*58b9f456SAndroid Build Coastguard Worker Symbol removed: __ZNKSt16bad_array_length4whatEv 31*58b9f456SAndroid Build Coastguard Worker Symbol removed: __ZNSt16bad_array_lengthC1Ev 32*58b9f456SAndroid Build Coastguard Worker Symbol removed: __ZNSt16bad_array_lengthC1Ev 33*58b9f456SAndroid Build Coastguard Worker Symbol removed: __ZNSt16bad_array_lengthC2Ev 34*58b9f456SAndroid Build Coastguard Worker Symbol removed: __ZNSt16bad_array_lengthC2Ev 35*58b9f456SAndroid Build Coastguard Worker Symbol removed: __ZNSt16bad_array_lengthD0Ev 36*58b9f456SAndroid Build Coastguard Worker Symbol removed: __ZNSt16bad_array_lengthD0Ev 37*58b9f456SAndroid Build Coastguard Worker Symbol removed: __ZNSt16bad_array_lengthD1Ev 38*58b9f456SAndroid Build Coastguard Worker Symbol removed: __ZNSt16bad_array_lengthD1Ev 39*58b9f456SAndroid Build Coastguard Worker Symbol removed: __ZNSt16bad_array_lengthD2Ev 40*58b9f456SAndroid Build Coastguard Worker Symbol removed: __ZNSt16bad_array_lengthD2Ev 41*58b9f456SAndroid Build Coastguard Worker Symbol removed: __ZTISt16bad_array_length 42*58b9f456SAndroid Build Coastguard Worker Symbol removed: __ZTISt16bad_array_length 43*58b9f456SAndroid Build Coastguard Worker Symbol removed: __ZTSSt16bad_array_length 44*58b9f456SAndroid Build Coastguard Worker Symbol removed: __ZTSSt16bad_array_length 45*58b9f456SAndroid Build Coastguard Worker Symbol removed: __ZTVSt16bad_array_length 46*58b9f456SAndroid Build Coastguard Worker Symbol removed: __ZTVSt16bad_array_length 47*58b9f456SAndroid Build Coastguard Worker 48*58b9f456SAndroid Build Coastguard Worker* r347395 - Making libc++ build under -fvisibility=hidden on Linux 49*58b9f456SAndroid Build Coastguard Worker 50*58b9f456SAndroid Build Coastguard Worker The change marks several function templates as hidden. This removes symbols 51*58b9f456SAndroid Build Coastguard Worker from the shared library, but this is not an ABI break because it's impossible 52*58b9f456SAndroid Build Coastguard Worker for programs linking against libc++.so to actually depend on that symbol. 53*58b9f456SAndroid Build Coastguard Worker The reason is that the symbol is exported from the shared library through 54*58b9f456SAndroid Build Coastguard Worker an implicit instantiation present in the shared object itself only. Furthermore, 55*58b9f456SAndroid Build Coastguard Worker if a user's shared object was implicitly instantiating one of these functions, 56*58b9f456SAndroid Build Coastguard Worker marking that symbol as hidden would not be an ABI break for them because none 57*58b9f456SAndroid Build Coastguard Worker of their users could actually be using the symbol in their dylib (because 58*58b9f456SAndroid Build Coastguard Worker it's an implicit instantiation). 59*58b9f456SAndroid Build Coastguard Worker 60*58b9f456SAndroid Build Coastguard Worker x86_64-linux-gnu 61*58b9f456SAndroid Build Coastguard Worker ---------------- 62*58b9f456SAndroid Build Coastguard Worker Symbol removed: _ZNSt3__125__num_get_signed_integralIlEET_PKcS3_Rji 63*58b9f456SAndroid Build Coastguard Worker Symbol removed: _ZNSt3__125__num_get_signed_integralIxEET_PKcS3_Rji 64*58b9f456SAndroid Build Coastguard Worker Symbol removed: _ZNSt3__127__num_get_unsigned_integralIjEET_PKcS3_Rji 65*58b9f456SAndroid Build Coastguard Worker Symbol removed: _ZNSt3__127__num_get_unsigned_integralImEET_PKcS3_Rji 66*58b9f456SAndroid Build Coastguard Worker Symbol removed: _ZNSt3__127__num_get_unsigned_integralItEET_PKcS3_Rji 67*58b9f456SAndroid Build Coastguard Worker Symbol removed: _ZNSt3__127__num_get_unsigned_integralIyEET_PKcS3_Rji 68*58b9f456SAndroid Build Coastguard Worker Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIaaEEPaEEjT0_S5_S5_S5_S5_T_ 69*58b9f456SAndroid Build Coastguard Worker Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIccEEPcEEjT0_S5_S5_S5_S5_T_ 70*58b9f456SAndroid Build Coastguard Worker Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIddEEPdEEjT0_S5_S5_S5_S5_T_ 71*58b9f456SAndroid Build Coastguard Worker Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIffEEPfEEjT0_S5_S5_S5_S5_T_ 72*58b9f456SAndroid Build Coastguard Worker Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIhhEEPhEEjT0_S5_S5_S5_S5_T_ 73*58b9f456SAndroid Build Coastguard Worker Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIiiEEPiEEjT0_S5_S5_S5_S5_T_ 74*58b9f456SAndroid Build Coastguard Worker Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIjjEEPjEEjT0_S5_S5_S5_S5_T_ 75*58b9f456SAndroid Build Coastguard Worker Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIllEEPlEEjT0_S5_S5_S5_S5_T_ 76*58b9f456SAndroid Build Coastguard Worker Symbol removed: _ZNSt3__17__sort5IRNS_6__lessImmEEPmEEjT0_S5_S5_S5_S5_T_ 77*58b9f456SAndroid Build Coastguard Worker Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIssEEPsEEjT0_S5_S5_S5_S5_T_ 78*58b9f456SAndroid Build Coastguard Worker Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIttEEPtEEjT0_S5_S5_S5_S5_T_ 79*58b9f456SAndroid Build Coastguard Worker Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIwwEEPwEEjT0_S5_S5_S5_S5_T_ 80*58b9f456SAndroid Build Coastguard Worker Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIxxEEPxEEjT0_S5_S5_S5_S5_T_ 81*58b9f456SAndroid Build Coastguard Worker Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIyyEEPyEEjT0_S5_S5_S5_S5_T_ 82*58b9f456SAndroid Build Coastguard Worker Symbol removed: _ZNSt3__1plIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_12basic_stringIT_T0_T1_EERKS9_PKS6_ 83*58b9f456SAndroid Build Coastguard Worker Symbol removed: _ZSt18make_exception_ptrINSt3__112future_errorEESt13exception_ptrT_ 84*58b9f456SAndroid Build Coastguard Worker 85*58b9f456SAndroid Build Coastguard Worker* r345260 - Making libc++ build under -fvisibility=hidden on Mac OS 86*58b9f456SAndroid Build Coastguard Worker 87*58b9f456SAndroid Build Coastguard Worker The change marks __thread_specific_ptr<__thread_struct>::__at_thread_exit(void*) 88*58b9f456SAndroid Build Coastguard Worker with hidden visibility. This removes a symbol from the shared libraries, 89*58b9f456SAndroid Build Coastguard Worker however this is not an ABI break because it's impossible for programs linking 90*58b9f456SAndroid Build Coastguard Worker against libc++.dylib to actually depend on that symbol. The reason is that 91*58b9f456SAndroid Build Coastguard Worker the symbol is exported from the shared library through an implicit 92*58b9f456SAndroid Build Coastguard Worker instantiation present in the dylib itself only. Furthermore, if a user's 93*58b9f456SAndroid Build Coastguard Worker dylib was implicitly instantiating __thread_specific_ptr<T>::__at_thread_exit 94*58b9f456SAndroid Build Coastguard Worker (because it's defined in the headers), marking that symbol as hidden would 95*58b9f456SAndroid Build Coastguard Worker not be an ABI break for them because none of their users could actually be 96*58b9f456SAndroid Build Coastguard Worker using the symbol in their dylib (because it's an implicit instantiation). 97*58b9f456SAndroid Build Coastguard Worker 98*58b9f456SAndroid Build Coastguard Worker This change also marks __start_std_streams as hidden -- this variable is 99*58b9f456SAndroid Build Coastguard Worker only required to initialize the streams, and nobody should depend on it 100*58b9f456SAndroid Build Coastguard Worker from outside the dylib. 101*58b9f456SAndroid Build Coastguard Worker 102*58b9f456SAndroid Build Coastguard Worker x86_64-linux-gnu 103*58b9f456SAndroid Build Coastguard Worker ---------------- 104*58b9f456SAndroid Build Coastguard Worker Symbol removed: _ZNSt3__121__thread_specific_ptrINS_15__thread_structEE16__at_thread_exitEPv 105*58b9f456SAndroid Build Coastguard Worker Symbol removed: _ZNSt3__119__start_std_streamsE 106*58b9f456SAndroid Build Coastguard Worker 107*58b9f456SAndroid Build Coastguard Worker x86_64-apple-darwin16.0 108*58b9f456SAndroid Build Coastguard Worker ----------------------- 109*58b9f456SAndroid Build Coastguard Worker Symbol removed: __ZNSt3__221__thread_specific_ptrINS_15__thread_structEE16__at_thread_exitEPv 110*58b9f456SAndroid Build Coastguard Worker Symbol removed: __ZNSt3__119__start_std_streamsE 111*58b9f456SAndroid Build Coastguard Worker 112*58b9f456SAndroid Build Coastguard Worker----------- 113*58b9f456SAndroid Build Coastguard WorkerVersion 7.0 114*58b9f456SAndroid Build Coastguard Worker----------- 115*58b9f456SAndroid Build Coastguard Worker 116*58b9f456SAndroid Build Coastguard Worker* r338479 - Elementary string conversions for integral types 117*58b9f456SAndroid Build Coastguard Worker 118*58b9f456SAndroid Build Coastguard Worker The change emits __u64toa and __u32toa under std::__1::__itoa. 119*58b9f456SAndroid Build Coastguard Worker 120*58b9f456SAndroid Build Coastguard Worker x86_64-linux-gnu 121*58b9f456SAndroid Build Coastguard Worker ---------------- 122*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZNSt3__16__itoa8__u64toaEmPc 123*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZNSt3__16__itoa8__u32toaEjPc 124*58b9f456SAndroid Build Coastguard Worker 125*58b9f456SAndroid Build Coastguard Worker x86_64-apple-darwin16.0 126*58b9f456SAndroid Build Coastguard Worker ----------------------- 127*58b9f456SAndroid Build Coastguard Worker Symbol added: __ZNSt3__16__itoa8__u64toaEyPc 128*58b9f456SAndroid Build Coastguard Worker Symbol added: __ZNSt3__16__itoa8__u32toaEjPc 129*58b9f456SAndroid Build Coastguard Worker 130*58b9f456SAndroid Build Coastguard Worker 131*58b9f456SAndroid Build Coastguard Worker* r333467 - Fix embarrasing typo in uncaught_exceptions. 132*58b9f456SAndroid Build Coastguard Worker 133*58b9f456SAndroid Build Coastguard Worker This bug caused __uncaught_exception to be ODR used instead of 134*58b9f456SAndroid Build Coastguard Worker __uncaught_exceptions. This change is non-ABI breaking because the symbols 135*58b9f456SAndroid Build Coastguard Worker for std::uncaught_exception and std::uncaught_exceptions haven't changed, 136*58b9f456SAndroid Build Coastguard Worker and because users shouldn't be depending directly on libc++ exporting 137*58b9f456SAndroid Build Coastguard Worker __uncaught_exception/__uncaught_exceptions. 138*58b9f456SAndroid Build Coastguard Worker 139*58b9f456SAndroid Build Coastguard Worker All Platforms 140*58b9f456SAndroid Build Coastguard Worker ---------------- 141*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: __cxa_uncaught_exception 142*58b9f456SAndroid Build Coastguard Worker Symbol added: __cxa_uncaught_exceptions 143*58b9f456SAndroid Build Coastguard Worker 144*58b9f456SAndroid Build Coastguard Worker 145*58b9f456SAndroid Build Coastguard Worker----------- 146*58b9f456SAndroid Build Coastguard WorkerVersion 5.0 147*58b9f456SAndroid Build Coastguard Worker----------- 148*58b9f456SAndroid Build Coastguard Worker 149*58b9f456SAndroid Build Coastguard Worker* r313500 - Fix undefined "___cxa_deleted_virtual" symbol in macosx 150*58b9f456SAndroid Build Coastguard Worker 151*58b9f456SAndroid Build Coastguard Worker x86_64-linux-gnu 152*58b9f456SAndroid Build Coastguard Worker ---------------- 153*58b9f456SAndroid Build Coastguard Worker No changes 154*58b9f456SAndroid Build Coastguard Worker 155*58b9f456SAndroid Build Coastguard Worker x86_64-apple-darwin16.0 156*58b9f456SAndroid Build Coastguard Worker ----------------------- 157*58b9f456SAndroid Build Coastguard Worker Symbol added: ___cxa_deleted_virtual 158*58b9f456SAndroid Build Coastguard Worker 159*58b9f456SAndroid Build Coastguard Worker* r296729 - Remove std::num_get template methods which should be inline 160*58b9f456SAndroid Build Coastguard Worker 161*58b9f456SAndroid Build Coastguard Worker These functions should never have had visible definitions in the dylib but 162*58b9f456SAndroid Build Coastguard Worker since they were previously not specified with 'inline' they accidentally 163*58b9f456SAndroid Build Coastguard Worker got emitted. This change is non-ABI breaking because every "linkage unit" 164*58b9f456SAndroid Build Coastguard Worker must contain its own definition. 165*58b9f456SAndroid Build Coastguard Worker 166*58b9f456SAndroid Build Coastguard Worker x86_64-linux-gnu 167*58b9f456SAndroid Build Coastguard Worker ---------------- 168*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE15__do_get_signedIlEES4_S4_S4_RNS_8ios_baseERjRT_ 169*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE15__do_get_signedIxEES4_S4_S4_RNS_8ios_baseERjRT_ 170*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedIjEES4_S4_S4_RNS_8ios_baseERjRT_ 171*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedImEES4_S4_S4_RNS_8ios_baseERjRT_ 172*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedItEES4_S4_S4_RNS_8ios_baseERjRT_ 173*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedIyEES4_S4_S4_RNS_8ios_baseERjRT_ 174*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIdEES4_S4_S4_RNS_8ios_baseERjRT_ 175*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIeEES4_S4_S4_RNS_8ios_baseERjRT_ 176*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIfEES4_S4_S4_RNS_8ios_baseERjRT_ 177*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE15__do_get_signedIlEES4_S4_S4_RNS_8ios_baseERjRT_ 178*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE15__do_get_signedIxEES4_S4_S4_RNS_8ios_baseERjRT_ 179*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedIjEES4_S4_S4_RNS_8ios_baseERjRT_ 180*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedImEES4_S4_S4_RNS_8ios_baseERjRT_ 181*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedItEES4_S4_S4_RNS_8ios_baseERjRT_ 182*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedIyEES4_S4_S4_RNS_8ios_baseERjRT_ 183*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIdEES4_S4_S4_RNS_8ios_baseERjRT_ 184*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIeEES4_S4_S4_RNS_8ios_baseERjRT_ 185*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIfEES4_S4_S4_RNS_8ios_baseERjRT_ 186*58b9f456SAndroid Build Coastguard Worker 187*58b9f456SAndroid Build Coastguard Worker x86_64-apple-darwin16.0 188*58b9f456SAndroid Build Coastguard Worker ----------------------- 189*58b9f456SAndroid Build Coastguard Worker No changes 190*58b9f456SAndroid Build Coastguard Worker 191*58b9f456SAndroid Build Coastguard Worker----------- 192*58b9f456SAndroid Build Coastguard WorkerVersion 4.0 193*58b9f456SAndroid Build Coastguard Worker----------- 194*58b9f456SAndroid Build Coastguard Worker 195*58b9f456SAndroid Build Coastguard Worker* r290651 - Add _LIBCPP_ASSERT debug handling functions 196*58b9f456SAndroid Build Coastguard Worker 197*58b9f456SAndroid Build Coastguard Worker All Platforms 198*58b9f456SAndroid Build Coastguard Worker ------------- 199*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZNSt3__124__libcpp_debug_exceptionC2ERKNS_19__libcpp_debug_infoE 200*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZNSt3__124__libcpp_debug_exceptionD1Ev 201*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZTINSt3__124__libcpp_debug_exceptionE 202*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZNSt3__129__libcpp_throw_debug_functionERKNS_19__libcpp_debug_infoE 203*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZNSt3__124__libcpp_debug_exceptionD2Ev 204*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZNSt3__129__libcpp_abort_debug_functionERKNS_19__libcpp_debug_infoE 205*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZNSt3__124__libcpp_debug_exceptionC2ERKS0_ 206*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZNSt3__124__libcpp_debug_exceptionC1Ev 207*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZNSt3__124__libcpp_debug_exceptionC1ERKNS_19__libcpp_debug_infoE 208*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZNSt3__124__libcpp_debug_exceptionC2Ev 209*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZTSNSt3__124__libcpp_debug_exceptionE 210*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZNSt3__123__libcpp_debug_functionE 211*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZNKSt3__124__libcpp_debug_exception4whatEv 212*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZNSt3__124__libcpp_debug_exceptionC1ERKS0_ 213*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZNSt3__124__libcpp_debug_exceptionD0Ev 214*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZTVNSt3__124__libcpp_debug_exceptionE 215*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZNSt3__127__libcpp_set_debug_functionEPFvRKNS_19__libcpp_debug_infoEE 216*58b9f456SAndroid Build Coastguard Worker 217*58b9f456SAndroid Build Coastguard Worker* r288547 - Implement C++17 <variant> 218*58b9f456SAndroid Build Coastguard Worker 219*58b9f456SAndroid Build Coastguard Worker All Platforms 220*58b9f456SAndroid Build Coastguard Worker ------------- 221*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZTVSt18bad_variant_access 222*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZTISt18bad_variant_access 223*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZTSSt18bad_variant_access 224*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZNKSt18bad_variant_access4whatEv 225*58b9f456SAndroid Build Coastguard Worker 226*58b9f456SAndroid Build Coastguard Worker* r285537 - Remove std::string::append template methods which should be inline 227*58b9f456SAndroid Build Coastguard Worker 228*58b9f456SAndroid Build Coastguard Worker These functions should never have had visible definitions in the dylib but 229*58b9f456SAndroid Build Coastguard Worker since they were previously not specified with 'inline' they accidentally 230*58b9f456SAndroid Build Coastguard Worker got emitted. This change is non-ABI breaking because every "linkage unit" 231*58b9f456SAndroid Build Coastguard Worker must contain its own definition. 232*58b9f456SAndroid Build Coastguard Worker 233*58b9f456SAndroid Build Coastguard Worker x86_64-linux-gnu 234*58b9f456SAndroid Build Coastguard Worker ---------------- 235*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendIPcEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr38__libcpp_string_gets_noexcept_iteratorIS9_EE5valueERS5_E4typeES9_S9_ 236*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6appendIPwEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr38__libcpp_string_gets_noexcept_iteratorIS9_EE5valueERS5_E4typeES9_S9_ 237*58b9f456SAndroid Build Coastguard Worker 238*58b9f456SAndroid Build Coastguard Worker x86_64-apple-darwin16.0 239*58b9f456SAndroid Build Coastguard Worker ----------------------- 240*58b9f456SAndroid Build Coastguard Worker No changes 241*58b9f456SAndroid Build Coastguard Worker 242*58b9f456SAndroid Build Coastguard Worker* r285101 - Add -fvisibility-inlines-hidden when building libc++. 243*58b9f456SAndroid Build Coastguard Worker 244*58b9f456SAndroid Build Coastguard Worker Although this change removes symbols, it should still be non-ABI breaking 245*58b9f456SAndroid Build Coastguard Worker since all of the definitions removed are inline functions. For this reason 246*58b9f456SAndroid Build Coastguard Worker removing these symbols is safe because every "linkage unit" which uses these 247*58b9f456SAndroid Build Coastguard Worker functions will contain their own definition. 248*58b9f456SAndroid Build Coastguard Worker 249*58b9f456SAndroid Build Coastguard Worker x86_64-linux-gnu 250*58b9f456SAndroid Build Coastguard Worker ---------------- 251*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNSt12bad_any_castD0Ev 252*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNSt12experimental15fundamentals_v112bad_any_castD0Ev 253*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNSt3__114__codecvt_utf8IDiED0Ev 254*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNSt3__114__codecvt_utf8IDsED0Ev 255*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNSt3__114__codecvt_utf8IwED0Ev 256*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNSt3__115__codecvt_utf16IDiLb0EED0Ev 257*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNSt3__115__codecvt_utf16IDiLb1EED0Ev 258*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNSt3__115__codecvt_utf16IDsLb0EED0Ev 259*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNSt3__115__codecvt_utf16IDsLb1EED0Ev 260*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNSt3__115__codecvt_utf16IwLb0EED0Ev 261*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNSt3__115__codecvt_utf16IwLb1EED0Ev 262*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNSt3__117__assoc_sub_stateD0Ev 263*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNSt3__117__assoc_sub_stateD2Ev 264*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNSt3__117__libcpp_sscanf_lEPKcP15__locale_structS1_z 265*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNSt3__119__libcpp_asprintf_lEPPcP15__locale_structPKcz 266*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNSt3__119__libcpp_snprintf_lEPcmP15__locale_structPKcz 267*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNSt3__120__codecvt_utf8_utf16IDiED0Ev 268*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNSt3__120__codecvt_utf8_utf16IDsED0Ev 269*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNSt3__120__codecvt_utf8_utf16IwED0Ev 270*58b9f456SAndroid Build Coastguard Worker 271*58b9f456SAndroid Build Coastguard Worker x86_64-apple-darwin16.0 272*58b9f456SAndroid Build Coastguard Worker ----------------------- 273*58b9f456SAndroid Build Coastguard Worker No Changes - inline symbols are already hidden 274*58b9f456SAndroid Build Coastguard Worker 275*58b9f456SAndroid Build Coastguard Worker 276*58b9f456SAndroid Build Coastguard Worker* r284206 - Implement C++17 aligned allocation in <new> 277*58b9f456SAndroid Build Coastguard Worker 278*58b9f456SAndroid Build Coastguard Worker x86_64-linux-gnu 279*58b9f456SAndroid Build Coastguard Worker ---------------- 280*58b9f456SAndroid Build Coastguard Worker Symbol added: posix_memalign@GLIBC_2.2.5 281*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZdaPvSt11align_val_t 282*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZdlPvSt11align_val_t 283*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZnamSt11align_val_t 284*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZdaPvmSt11align_val_t 285*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZdlPvmSt11align_val_t 286*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZdlPvSt11align_val_tRKSt9nothrow_t 287*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZnwmSt11align_val_tRKSt9nothrow_t 288*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZnamSt11align_val_tRKSt9nothrow_t 289*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZdaPvSt11align_val_tRKSt9nothrow_t 290*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZnwmSt11align_val_t 291*58b9f456SAndroid Build Coastguard Worker 292*58b9f456SAndroid Build Coastguard Worker* r283980 - Implement C++17 <optional> 293*58b9f456SAndroid Build Coastguard Worker 294*58b9f456SAndroid Build Coastguard Worker x86_64-linux-gnu 295*58b9f456SAndroid Build Coastguard Worker ---------------- 296*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZTISt19bad_optional_access 297*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZNSt19bad_optional_accessD0Ev 298*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZNSt19bad_optional_accessD1Ev 299*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZNSt19bad_optional_accessD2Ev 300*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZTVSt19bad_optional_access 301*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZTSSt19bad_optional_access 302*58b9f456SAndroid Build Coastguard Worker 303*58b9f456SAndroid Build Coastguard Worker* r278310 - Implement C++17 <any> 304*58b9f456SAndroid Build Coastguard Worker 305*58b9f456SAndroid Build Coastguard Worker x86_64-linux-gnu 306*58b9f456SAndroid Build Coastguard Worker ---------------- 307*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZNKSt12bad_any_cast4whatEv 308*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZNSt12bad_any_castD0Ev 309*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZTISt12bad_any_cast 310*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZTSSt12bad_any_cast 311*58b9f456SAndroid Build Coastguard Worker Symbol added: _ZTVSt12bad_any_cast 312*58b9f456SAndroid Build Coastguard Worker 313*58b9f456SAndroid Build Coastguard Worker* r295398 - Remove basic_string::insert and basic_string::replace template methods 314*58b9f456SAndroid Build Coastguard Worker which should be inline. 315*58b9f456SAndroid Build Coastguard Worker 316*58b9f456SAndroid Build Coastguard Worker These functions should never have had visible definitions in the dylib but 317*58b9f456SAndroid Build Coastguard Worker since they were previously not specified with 'inline' they accidentally 318*58b9f456SAndroid Build Coastguard Worker got emitted. This change is non-ABI breaking because every "linkage unit" 319*58b9f456SAndroid Build Coastguard Worker must contain its own definition. 320*58b9f456SAndroid Build Coastguard Worker 321*58b9f456SAndroid Build Coastguard Worker x86_64-linux-gnu 322*58b9f456SAndroid Build Coastguard Worker ---------------- 323*58b9f456SAndroid Build Coastguard Worker 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_ 324*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7replaceIPKcEENS_9enable_ifIXsr19__is_input_iteratorIT_EE5valueERS5_E4typeENS_11__wrap_iterIS8_EESF_SA_SA_ 325*58b9f456SAndroid Build Coastguard Worker 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_ 326*58b9f456SAndroid Build Coastguard Worker SYMBOL REMOVED: _ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE7replaceIPKwEENS_9enable_ifIXsr19__is_input_iteratorIT_EE5valueERS5_E4typeENS_11__wrap_iterIS8_EESF_SA_SA_ 327