xref: /aosp_15_r20/external/libcxx/lib/abi/CHANGELOG.TXT (revision 58b9f456b02922dfdb1fad8a988d5fd8765ecb80)
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