aboutsummaryrefslogtreecommitdiff
path: root/libcxx/lib/abi/CHANGELOG.TXT
blob: 5e65e943c6e950065e21278d4171c0c0c87a0cf4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
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, re-generate the new ABI list using the
`generate-cxx-abilist` target, and look at the diff.

New entries should be added directly below the "Version" header.

------------
Version 15.0
------------

* f1c30135417f - [libc++] Drop the legacy debug mode symbols by default

  This commit removed symbols implementing debug mode in the non-debug
  configuration of the library. Using the debug mode now requires a
  differently-configured version of libc++. This is technically an ABI
  break, however any user having been using the debug mode support previously
  was already at risk of non-benign ODR violations, and in practice we
  never found it to work reliably.

  All platforms
  -------------
  Symbol removed: _ZNKSt3__111__libcpp_db15__decrementableEPKv
  Symbol removed: _ZNKSt3__111__libcpp_db15__find_c_from_iEPv
  Symbol removed: _ZNKSt3__111__libcpp_db15__subscriptableEPKvl
  Symbol removed: _ZNKSt3__111__libcpp_db17__dereferenceableEPKv
  Symbol removed: _ZNKSt3__111__libcpp_db17__find_c_and_lockEPv
  Symbol removed: _ZNKSt3__111__libcpp_db22__less_than_comparableEPKvS2_
  Symbol removed: _ZNKSt3__111__libcpp_db6unlockEv
  Symbol removed: _ZNKSt3__111__libcpp_db8__find_cEPv
  Symbol removed: _ZNKSt3__111__libcpp_db9__addableEPKvl
  Symbol removed: _ZNKSt3__119__libcpp_debug_info4whatEv
  Symbol removed: _ZNSt3__111__libcpp_db10__insert_cEPvPFPNS_8__c_nodeES1_S1_S3_E
  Symbol removed: _ZNSt3__111__libcpp_db10__insert_iEPv
  Symbol removed: _ZNSt3__111__libcpp_db11__insert_icEPvPKv
  Symbol removed: _ZNSt3__111__libcpp_db15__iterator_copyEPvPKv
  Symbol removed: _ZNSt3__111__libcpp_db16__invalidate_allEPv
  Symbol removed: _ZNSt3__111__libcpp_db4swapEPvS1_
  Symbol removed: _ZNSt3__111__libcpp_db9__erase_cEPv
  Symbol removed: _ZNSt3__111__libcpp_db9__erase_iEPv
  Symbol removed: _ZNSt3__111__libcpp_dbC1Ev
  Symbol removed: _ZNSt3__111__libcpp_dbC2Ev
  Symbol removed: _ZNSt3__111__libcpp_dbD1Ev
  Symbol removed: _ZNSt3__111__libcpp_dbD2Ev
  Symbol removed: _ZNSt3__114__get_const_dbEv
  Symbol removed: _ZNSt3__123__libcpp_debug_functionE
  Symbol removed: _ZNSt3__127__libcpp_set_debug_functionEPFvRKNS_19__libcpp_debug_infoEE
  Symbol removed: _ZNSt3__129__libcpp_abort_debug_functionERKNS_19__libcpp_debug_infoE
  Symbol removed: _ZNSt3__18__c_node5__addEPNS_8__i_nodeE
  Symbol removed: _ZNSt3__18__c_nodeD0Ev
  Symbol removed: _ZNSt3__18__c_nodeD1Ev
  Symbol removed: _ZNSt3__18__c_nodeD2Ev
  Symbol removed: _ZNSt3__18__get_dbEv
  Symbol removed: _ZNSt3__18__i_nodeD1Ev
  Symbol removed: _ZNSt3__18__i_nodeD2Ev
  Symbol removed: _ZTINSt3__18__c_nodeE
  Symbol removed: _ZTSNSt3__18__c_nodeE
  Symbol removed: _ZTVNSt3__18__c_nodeE

* b0fd9497af6d, 7de5aca84c54 and XXXXXXXX - [libc++] Add a lightweight overridable assertion handler

  This patch adds a lightweight assertion handler mechanism that can be
  overriden at link-time in a fashion similar to `operator new`. A default
  assertion handler is provided in the shared library, hence the added
  symbol.

  All platforms
  -------------
  Symbol added: _ZNSt3__122__libcpp_verbose_abortEPKcz

------------
Version 14.0
------------

* abb5dd6e99df - [libc++] `to_chars` for floating point.

  This commit added the `to_chars` implementation for floating point values.
  The entire implementation resides in the dylib and the functions specified
  in the Standard are now part of the ABI.

  All platforms
  -------------
  Symbol added: _ZNSt3__18to_charsEPcS0_d
  Symbol added: _ZNSt3__18to_charsEPcS0_dNS_12chars_formatE
  Symbol added: _ZNSt3__18to_charsEPcS0_dNS_12chars_formatEi
  Symbol added: _ZNSt3__18to_charsEPcS0_e
  Symbol added: _ZNSt3__18to_charsEPcS0_eNS_12chars_formatE
  Symbol added: _ZNSt3__18to_charsEPcS0_eNS_12chars_formatEi
  Symbol added: _ZNSt3__18to_charsEPcS0_f
  Symbol added: _ZNSt3__18to_charsEPcS0_fNS_12chars_formatE
  Symbol added: _ZNSt3__18to_charsEPcS0_fNS_12chars_formatEi

* 049f6c29a6f0 - [libc++] Resolve missing table_size symbol

  This commit added an out-of-line definition for `table_size` in the library.
  This is not an ABI break since we are just adding a symbol to the library.
  In fact, any program that would have attempted to refer to that symbol would
  have previously failed to link.

  x86_64-apple-apple-darwin
  -------------------------
  Symbol added: _ZNSt3__15ctypeIcE10table_sizeE

  x86_64-unknown-linux-gnu
  ------------------------
  Symbol added: _ZNSt3__15ctypeIcE10table_sizeE

* 434dc0a5bcae - [libc++] Always define a key function for std::bad_function_call in the dylib

  This commit added a new explicit instantiation of std::bad_function_call's
  vtable in the shared library. This change is not an ABI break as it only
  adds symbols to the library. Programs compiled against the library will not
  rely on the vtable being defined in it by default. Reliance on the vtable
  being in the shared library can be enabled by defining the
  _LIBCPP_ABI_BAD_FUNCTION_CALL_KEY_FUNCTION macro.

  Note that this commit also causes the libc++ shared library to start relying
  on std::exception::what() being provided. This is due to the fact that the
  shared library now contains the vtable for std::bad_function_call, which
  references std::exception::what(). This shouldn't be an issue since that
  function needs to be available to users in order to use std::bad_function_call
  before this patch too.

  All platforms
  -------------
  Symbol added: _ZNSt3__117bad_function_callD0Ev
  Symbol added: _ZNSt3__117bad_function_callD1Ev
  Symbol added: _ZNSt3__117bad_function_callD2Ev
  Symbol added: _ZTINSt3__117bad_function_callE
  Symbol added: _ZTSNSt3__117bad_function_callE
  Symbol added: _ZTVNSt3__117bad_function_callE

  <arch>-unknown-linux-gnu
  ------------------------
  Added dependency on symbol: _ZNKSt9exception4whatEv

------------
Version 12.0
------------

* a984dcaf7c21 - [libc++] [P0482] [C++20] Implement missing bits for codecvt and codecvt_byname.

  This commit added new instantiations with char8_t for classes codecvt and
  codecvt_byname in <locale> in the library.

  All platforms
  -------------
  Symbol added: _ZNKSt3__17codecvtIDiDu11__mbstate_tE10do_unshiftERS1_PDuS4_RS4_
  Symbol added: _ZNKSt3__17codecvtIDiDu11__mbstate_tE11do_encodingEv
  Symbol added: _ZNKSt3__17codecvtIDiDu11__mbstate_tE13do_max_lengthEv
  Symbol added: _ZNKSt3__17codecvtIDiDu11__mbstate_tE16do_always_noconvEv
  Symbol added: _ZNKSt3__17codecvtIDiDu11__mbstate_tE5do_inERS1_PKDuS5_RS5_PDiS7_RS7_
  Symbol added: _ZNKSt3__17codecvtIDiDu11__mbstate_tE6do_outERS1_PKDiS5_RS5_PDuS7_RS7_
  Symbol added: _ZNKSt3__17codecvtIDiDu11__mbstate_tE9do_lengthERS1_PKDuS5_m
  Symbol added: _ZNKSt3__17codecvtIDsDu11__mbstate_tE10do_unshiftERS1_PDuS4_RS4_
  Symbol added: _ZNKSt3__17codecvtIDsDu11__mbstate_tE11do_encodingEv
  Symbol added: _ZNKSt3__17codecvtIDsDu11__mbstate_tE13do_max_lengthEv
  Symbol added: _ZNKSt3__17codecvtIDsDu11__mbstate_tE16do_always_noconvEv
  Symbol added: _ZNKSt3__17codecvtIDsDu11__mbstate_tE5do_inERS1_PKDuS5_RS5_PDsS7_RS7_
  Symbol added: _ZNKSt3__17codecvtIDsDu11__mbstate_tE6do_outERS1_PKDsS5_RS5_PDuS7_RS7_
  Symbol added: _ZNKSt3__17codecvtIDsDu11__mbstate_tE9do_lengthERS1_PKDuS5_m
  Symbol added: _ZNSt3__114codecvt_bynameIDiDu11__mbstate_tED0Ev
  Symbol added: _ZNSt3__114codecvt_bynameIDiDu11__mbstate_tED1Ev
  Symbol added: _ZNSt3__114codecvt_bynameIDiDu11__mbstate_tED2Ev
  Symbol added: _ZNSt3__114codecvt_bynameIDsDu11__mbstate_tED0Ev
  Symbol added: _ZNSt3__114codecvt_bynameIDsDu11__mbstate_tED1Ev
  Symbol added: _ZNSt3__114codecvt_bynameIDsDu11__mbstate_tED2Ev
  Symbol added: _ZNSt3__17codecvtIDiDu11__mbstate_tE2idE
  Symbol added: _ZNSt3__17codecvtIDiDu11__mbstate_tED0Ev
  Symbol added: _ZNSt3__17codecvtIDiDu11__mbstate_tED1Ev
  Symbol added: _ZNSt3__17codecvtIDiDu11__mbstate_tED2Ev
  Symbol added: _ZNSt3__17codecvtIDsDu11__mbstate_tE2idE
  Symbol added: _ZNSt3__17codecvtIDsDu11__mbstate_tED0Ev
  Symbol added: _ZNSt3__17codecvtIDsDu11__mbstate_tED1Ev
  Symbol added: _ZNSt3__17codecvtIDsDu11__mbstate_tED2Ev
  Symbol added: _ZTINSt3__114codecvt_bynameIDiDu11__mbstate_tEE
  Symbol added: _ZTINSt3__114codecvt_bynameIDsDu11__mbstate_tEE
  Symbol added: _ZTINSt3__17codecvtIDiDu11__mbstate_tEE
  Symbol added: _ZTINSt3__17codecvtIDsDu11__mbstate_tEE
  Symbol added: _ZTSNSt3__17codecvtIDiDu11__mbstate_tEE
  Symbol added: _ZTSNSt3__17codecvtIDsDu11__mbstate_tEE
  Symbol added: _ZTVNSt3__114codecvt_bynameIDiDu11__mbstate_tEE
  Symbol added: _ZTVNSt3__114codecvt_bynameIDsDu11__mbstate_tEE
  Symbol added: _ZTVNSt3__17codecvtIDiDu11__mbstate_tEE
  Symbol added: _ZTVNSt3__17codecvtIDsDu11__mbstate_tEE

  <arch>-unknown-linux-gnu
  ------------------------
  Symbol added: _ZTSNSt3__114codecvt_bynameIDiDu11__mbstate_tEE
  Symbol added: _ZTSNSt3__114codecvt_bynameIDsDu11__mbstate_tEE

* 997d41cdec53 - [libc++] Instantiate additional <iostream> members in the dylib

  This commit added new explicit instantiations for classes in <iostream> in
  the library. This was done after noticing that many programs that used streams
  ended up containing weak definitions of these classes, which has a negative
  impact on both code size and load times. This change is not an ABI break,
  since we are just adding additional symbols.

  All platforms
  -------------
  Symbol added: _ZNKSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE3strEv
  Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE11__read_modeEv
  Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE12__write_modeEv
  Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE4openEPKcj
  Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE4swapERS3_
  Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE4syncEv
  Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE5closeEv
  Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE5imbueERKNS_6localeE
  Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE6setbufEPcl
  Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE7seekoffExNS_8ios_base7seekdirEj
  Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE7seekposENS_4fposI11__mbstate_tEEj
  Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE8overflowEi
  Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE9pbackfailEi
  Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE9underflowEv
  Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEEC1EOS3_
  Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEEC1Ev
  Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEEC2EOS3_
  Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEEC2Ev
  Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEED0Ev
  Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEED1Ev
  Symbol added: _ZNSt3__113basic_filebufIcNS_11char_traitsIcEEED2Ev
  Symbol added: _ZNSt3__114basic_ifstreamIcNS_11char_traitsIcEEE4openEPKcj
  Symbol added: _ZNSt3__114basic_ifstreamIcNS_11char_traitsIcEEE4openERKNS_12basic_stringIcS2_NS_9allocatorIcEEEEj
  Symbol added: _ZNSt3__114basic_ofstreamIcNS_11char_traitsIcEEE4openEPKcj
  Symbol added: _ZNSt3__114basic_ofstreamIcNS_11char_traitsIcEEE4openERKNS_12basic_stringIcS2_NS_9allocatorIcEEEEj
  Symbol added: _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE3strERKNS_12basic_stringIcS2_S4_EE
  Symbol added: _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE4swapERS5_
  Symbol added: _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE7seekoffExNS_8ios_base7seekdirEj
  Symbol added: _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE8overflowEi
  Symbol added: _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE9pbackfailEi
  Symbol added: _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE9underflowEv
  Symbol added: _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEC1EOS5_
  Symbol added: _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEC2EOS5_
  Symbol added: _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_
  Symbol added: _ZNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_
  Symbol added: _ZNSt3__119basic_istringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_
  Symbol added: _ZNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEOS5_
  Symbol added: _ZTCNSt3__114basic_ifstreamIcNS_11char_traitsIcEEEE0_NS_13basic_istreamIcS2_EE
  Symbol added: _ZTCNSt3__114basic_ofstreamIcNS_11char_traitsIcEEEE0_NS_13basic_ostreamIcS2_EE
  Symbol added: _ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_13basic_istreamIcS2_EE
  Symbol added: _ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_14basic_iostreamIcS2_EE
  Symbol added: _ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE16_NS_13basic_ostreamIcS2_EE
  Symbol added: _ZTCNSt3__119basic_istringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_13basic_istreamIcS2_EE
  Symbol added: _ZTCNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_13basic_ostreamIcS2_EE
  Symbol added: _ZTINSt3__113basic_filebufIcNS_11char_traitsIcEEEE
  Symbol added: _ZTINSt3__114basic_ifstreamIcNS_11char_traitsIcEEEE
  Symbol added: _ZTINSt3__114basic_ofstreamIcNS_11char_traitsIcEEEE
  Symbol added: _ZTINSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEE
  Symbol added: _ZTINSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE
  Symbol added: _ZTINSt3__119basic_istringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE
  Symbol added: _ZTINSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE
  Symbol added: _ZTSNSt3__113basic_filebufIcNS_11char_traitsIcEEEE
  Symbol added: _ZTSNSt3__114basic_ifstreamIcNS_11char_traitsIcEEEE
  Symbol added: _ZTSNSt3__114basic_ofstreamIcNS_11char_traitsIcEEEE
  Symbol added: _ZTSNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEE
  Symbol added: _ZTSNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE
  Symbol added: _ZTSNSt3__119basic_istringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE
  Symbol added: _ZTSNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE
  Symbol added: _ZTTNSt3__114basic_ifstreamIcNS_11char_traitsIcEEEE
  Symbol added: _ZTTNSt3__114basic_ofstreamIcNS_11char_traitsIcEEEE
  Symbol added: _ZTTNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE
  Symbol added: _ZTTNSt3__119basic_istringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE
  Symbol added: _ZTTNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE
  Symbol added: _ZTVNSt3__113basic_filebufIcNS_11char_traitsIcEEEE
  Symbol added: _ZTVNSt3__114basic_ifstreamIcNS_11char_traitsIcEEEE
  Symbol added: _ZTVNSt3__114basic_ofstreamIcNS_11char_traitsIcEEEE
  Symbol added: _ZTVNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEE
  Symbol added: _ZTVNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE
  Symbol added: _ZTVNSt3__119basic_istringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE
  Symbol added: _ZTVNSt3__119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE

* 9b40ee8eb0c1 - [libc++] Define new/delete in libc++abi only by default

  By default, libc++ does not include the definition for new and delete anymore.
  Those were previously defined in both libc++ and libc++abi, which was an
  ODR violation.

  <arch>-apple-apple-darwin
  -------------------------
  The following symbols are now re-exported from libc++abi instead of exported
  by libc++ directly (this should not be an ABI break):

  Symbol moved: __ZdaPv
  Symbol moved: __ZdaPvm
  Symbol moved: __ZdaPvmSt11align_val_t
  Symbol moved: __ZdaPvRKSt9nothrow_t
  Symbol moved: __ZdaPvSt11align_val_t
  Symbol moved: __ZdaPvSt11align_val_tRKSt9nothrow_t
  Symbol moved: __ZdlPv
  Symbol moved: __ZdlPvm
  Symbol moved: __ZdlPvmSt11align_val_t
  Symbol moved: __ZdlPvRKSt9nothrow_t
  Symbol moved: __ZdlPvSt11align_val_t
  Symbol moved: __ZdlPvSt11align_val_tRKSt9nothrow_t
  Symbol moved: __Znam
  Symbol moved: __ZnamRKSt9nothrow_t
  Symbol moved: __ZnamSt11align_val_t
  Symbol moved: __ZnamSt11align_val_tRKSt9nothrow_t
  Symbol moved: __Znwm
  Symbol moved: __ZnwmRKSt9nothrow_t
  Symbol moved: __ZnwmSt11align_val_t
  Symbol moved: __ZnwmSt11align_val_tRKSt9nothrow_t

  <arch>-unknown-linux-gnu
  ------------------------
  The following symbols were moved to libc++abi, but are NOT being re-exported
  by libc++. This constitutes an ABI break if one links against libc++ but
  not libc++abi.

  Symbol moved: _ZdaPv
  Symbol moved: _ZdaPvm
  Symbol moved: _ZdaPvmSt11align_val_t
  Symbol moved: _ZdaPvRKSt9nothrow_t
  Symbol moved: _ZdaPvSt11align_val_t
  Symbol moved: _ZdaPvSt11align_val_tRKSt9nothrow_t
  Symbol moved: _ZdlPv
  Symbol moved: _ZdlPvm
  Symbol moved: _ZdlPvmSt11align_val_t
  Symbol moved: _ZdlPvRKSt9nothrow_t
  Symbol moved: _ZdlPvSt11align_val_t
  Symbol moved: _ZdlPvSt11align_val_tRKSt9nothrow_t
  Symbol moved: _Znam
  Symbol moved: _ZnamRKSt9nothrow_t
  Symbol moved: _ZnamSt11align_val_t
  Symbol moved: _ZnamSt11align_val_tRKSt9nothrow_t
  Symbol moved: _Znwm
  Symbol moved: _ZnwmRKSt9nothrow_t
  Symbol moved: _ZnwmSt11align_val_t
  Symbol moved: _ZnwmSt11align_val_tRKSt9nothrow_t

* 4f13b9992971 - [libc++] Simplify how we re-export symbols from libc++abi

  We re-export some symbols that were exported from libc++abi but not from
  libc++. Exporting new symbols is not an ABI break.

  x86_64-apple-apple-darwin
  -------------------------
  Symbol added: ___cxa_allocate_dependent_exception
  Symbol added: ___cxa_free_dependent_exception

------------
Version 10.0
------------

* 54fa9ecd3088 - [libc++] Implementation of C++20's P1135R6 for libcxx

  libc++ now implements P1135R6 (The C++20 Synchronization Library), which
  adds a few symbols to the dylib. This is backwards-compatible since we're
  just adding new symbols.

  x86_64-unknown-linux-gnu
  ------------------------
  TODO

  <arch>-apple-apple-darwin
  -------------------------
  Symbol added: __ZNSt3__120__libcpp_atomic_waitEPVKNS_17__cxx_atomic_implIxNS_22__cxx_atomic_base_implIxEEEEx
  Symbol added: __ZNSt3__120__libcpp_atomic_waitEPVKvx
  Symbol added: __ZNSt3__123__cxx_atomic_notify_allEPVKNS_17__cxx_atomic_implIxNS_22__cxx_atomic_base_implIxEEEE
  Symbol added: __ZNSt3__123__cxx_atomic_notify_allEPVKv
  Symbol added: __ZNSt3__123__cxx_atomic_notify_oneEPVKNS_17__cxx_atomic_implIxNS_22__cxx_atomic_base_implIxEEEE
  Symbol added: __ZNSt3__123__cxx_atomic_notify_oneEPVKv
  Symbol added: __ZNSt3__123__libcpp_atomic_monitorEPVKNS_17__cxx_atomic_implIxNS_22__cxx_atomic_base_implIxEEEE
  Symbol added: __ZNSt3__123__libcpp_atomic_monitorEPVKv
  Symbol added: __ZNSt3__131__arrive_barrier_algorithm_baseEPNS_24__barrier_algorithm_baseEh
  Symbol added: __ZNSt3__132__destroy_barrier_algorithm_baseEPNS_24__barrier_algorithm_baseE
  Symbol added: __ZNSt3__134__construct_barrier_algorithm_baseERl

-----------
Version 9.0
-----------

* r358690 - Re-rexport missing symbols from libc++abi

  libc++ now re-exports `__cxa_throw_bad_array_new_length` and `__cxa_uncaught_exceptions`,
  both of which are provided by libc++abi. This is not an ABI break because
  we're just adding symbols. Also, this does mean that libc++ can't be linked
  against an older version of libc++abi that doesn't provide those symbols,
  however doing so is not supported anyway.

  x86_64-unknown-linux-gnu
  ------------------------
  TODO

  x86_64-apple-apple-darwin
  -------------------------
  Symbol added: ___cxa_throw_bad_array_new_length
  Symbol added: ___cxa_uncaught_exceptions

* r356518 - Integrate <filesystem> support into the shared library

  This patch introduces support for <filesystem> into the shared library,
  instead of requiring users to manually link against a static archive. As
  such, new symbols required to implement <filesystem> are exported from
  the shared library.

  All platforms
  -------------
  Symbol added: _ZNKSt3__14__fs10filesystem18directory_iterator13__dereferenceEv
  Symbol added: _ZNKSt3__14__fs10filesystem28recursive_directory_iterator13__dereferenceEv
  Symbol added: _ZNKSt3__14__fs10filesystem28recursive_directory_iterator5depthEv
  Symbol added: _ZNKSt3__14__fs10filesystem28recursive_directory_iterator7optionsEv
  Symbol added: _ZNKSt3__14__fs10filesystem4path10__filenameEv
  Symbol added: _ZNKSt3__14__fs10filesystem4path11__extensionEv
  Symbol added: _ZNKSt3__14__fs10filesystem4path11__root_nameEv
  Symbol added: _ZNKSt3__14__fs10filesystem4path13__parent_pathEv
  Symbol added: _ZNKSt3__14__fs10filesystem4path15__relative_pathEv
  Symbol added: _ZNKSt3__14__fs10filesystem4path15__root_path_rawEv
  Symbol added: _ZNKSt3__14__fs10filesystem4path16__root_directoryEv
  Symbol added: _ZNKSt3__14__fs10filesystem4path16lexically_normalEv
  Symbol added: _ZNKSt3__14__fs10filesystem4path18lexically_relativeERKS2_
  Symbol added: _ZNKSt3__14__fs10filesystem4path3endEv
  Symbol added: _ZNKSt3__14__fs10filesystem4path5beginEv
  Symbol added: _ZNKSt3__14__fs10filesystem4path6__stemEv
  Symbol added: _ZNKSt3__14__fs10filesystem4path9__compareENS_17basic_string_viewIcNS_11char_traitsIcEEEE
  Symbol added: _ZNSt3__14__fs10filesystem10__absoluteERKNS1_4pathEPNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem10hash_valueERKNS1_4pathE
  Symbol added: _ZNSt3__14__fs10filesystem11__canonicalERKNS1_4pathEPNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem11__copy_fileERKNS1_4pathES4_NS1_12copy_optionsEPNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem11__file_sizeERKNS1_4pathEPNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem12__equivalentERKNS1_4pathES4_PNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem12__remove_allERKNS1_4pathEPNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem13__fs_is_emptyERKNS1_4pathEPNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem13__permissionsERKNS1_4pathENS1_5permsENS1_12perm_optionsEPNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem13__resize_fileERKNS1_4pathEmPNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem14__copy_symlinkERKNS1_4pathES4_PNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem14__current_pathEPNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem14__current_pathERKNS1_4pathEPNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem14__read_symlinkERKNS1_4pathEPNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem15directory_entry12__do_refreshEv
  Symbol added: _ZNSt3__14__fs10filesystem16__create_symlinkERKNS1_4pathES4_PNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem16__symlink_statusERKNS1_4pathEPNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem16_FilesystemClock3nowEv
  Symbol added: _ZNSt3__14__fs10filesystem16_FilesystemClock9is_steadyE
  Symbol added: _ZNSt3__14__fs10filesystem16filesystem_error13__create_whatEi
  Symbol added: _ZNSt3__14__fs10filesystem16filesystem_errorD0Ev
  Symbol added: _ZNSt3__14__fs10filesystem16filesystem_errorD1Ev
  Symbol added: _ZNSt3__14__fs10filesystem16filesystem_errorD2Ev
  Symbol added: _ZNSt3__14__fs10filesystem17__hard_link_countERKNS1_4pathEPNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem17__last_write_timeERKNS1_4pathENS_6chrono10time_pointINS1_16_FilesystemClockENS5_8durationInNS_5ratioILl1ELl1000000000EEEEEEEPNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem17__last_write_timeERKNS1_4pathEPNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem18__create_directoryERKNS1_4pathEPNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem18__create_directoryERKNS1_4pathES4_PNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem18__create_hard_linkERKNS1_4pathES4_PNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem18__weakly_canonicalERKNS1_4pathEPNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem18directory_iterator11__incrementEPNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem18directory_iteratorC1ERKNS1_4pathEPNS_10error_codeENS1_17directory_optionsE
  Symbol added: _ZNSt3__14__fs10filesystem18directory_iteratorC2ERKNS1_4pathEPNS_10error_codeENS1_17directory_optionsE
  Symbol added: _ZNSt3__14__fs10filesystem20__create_directoriesERKNS1_4pathEPNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem21__temp_directory_pathEPNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem26__create_directory_symlinkERKNS1_4pathES4_PNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem28recursive_directory_iterator11__incrementEPNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem28recursive_directory_iterator15__try_recursionEPNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem28recursive_directory_iterator5__popEPNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem28recursive_directory_iterator9__advanceEPNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem28recursive_directory_iteratorC1ERKNS1_4pathENS1_17directory_optionsEPNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem28recursive_directory_iteratorC2ERKNS1_4pathENS1_17directory_optionsEPNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem4path17replace_extensionERKS2_
  Symbol added: _ZNSt3__14__fs10filesystem4path19preferred_separatorE
  Symbol added: _ZNSt3__14__fs10filesystem4path8iterator11__decrementEv
  Symbol added: _ZNSt3__14__fs10filesystem4path8iterator11__incrementEv
  Symbol added: _ZNSt3__14__fs10filesystem6__copyERKNS1_4pathES4_NS1_12copy_optionsEPNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem7__spaceERKNS1_4pathEPNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem8__removeERKNS1_4pathEPNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem8__renameERKNS1_4pathES4_PNS_10error_codeE
  Symbol added: _ZNSt3__14__fs10filesystem8__statusERKNS1_4pathEPNS_10error_codeE
  Symbol added: _ZTINSt3__14__fs10filesystem16filesystem_errorE
  Symbol added: _ZTSNSt3__14__fs10filesystem16filesystem_errorE
  Symbol added: _ZTVNSt3__14__fs10filesystem16filesystem_errorE

* r356417 - Remove exception throwing debug mode handler support.

  The reason libc++ implemented a throwing debug mode handler was for ease of testing. Specifically,
  I thought that if a debug violation aborted, we could only test one violation per file. This made
  it impossible to test debug mode. Which throwing behavior we could test more!

  However, the throwing approach didn't work either, since there are debug violations underneath noexcept
  functions. This lead to the introduction of `_NOEXCEPT_DEBUG`, which was only noexcept when debug
  mode was off.

  Having thought more and having grown wiser, `_NOEXCEPT_DEBUG` was a horrible decision. It was
  viral, it didn't cover all the cases it needed to, and it was observable to the user -- at worst
  changing the behavior of their program.

  This patch removes the throwing debug handler, and rewrites the debug tests using 'fork-ing' style
  death tests.

  All Platforms (ignoring versioning namespaces)
  ----------------------------------------------
  Symbol added: _ZNKSt3__119__libcpp_debug_info4whatEv
  Symbol removed: _ZNKSt3__124__libcpp_debug_exception4whatEv
  Symbol removed: _ZNSt3__124__libcpp_debug_exceptionC1ERKNS_19__libcpp_debug_infoE
  Symbol removed: _ZNSt3__124__libcpp_debug_exceptionC1ERKS0_
  Symbol removed: _ZNSt3__124__libcpp_debug_exceptionC1Ev
  Symbol removed: _ZNSt3__124__libcpp_debug_exceptionC2ERKNS_19__libcpp_debug_infoE
  Symbol removed: _ZNSt3__124__libcpp_debug_exceptionC2ERKS0_
  Symbol removed: _ZNSt3__124__libcpp_debug_exceptionC2Ev
  Symbol removed: _ZNSt3__124__libcpp_debug_exceptionD0Ev
  Symbol removed: _ZNSt3__124__libcpp_debug_exceptionD1Ev
  Symbol removed: _ZNSt3__124__libcpp_debug_exceptionD2Ev
  Symbol removed: _ZNSt3__129__libcpp_throw_debug_functionERKNS_19__libcpp_debug_infoE
  Symbol removed: _ZTINSt3__124__libcpp_debug_exceptionE
  Symbol removed: _ZTSNSt3__124__libcpp_debug_exceptionE
  Symbol removed: _ZTVNSt3__124__libcpp_debug_exceptionE


    x86_64-apple-apple-darwin
    -------------------------
    Symbol added: __ZNSt3__111__libcpp_db10__insert_cEPvPFPNS_8__c_nodeES1_S1_S3_E
    Symbol removed: __ZNSt3__111__libcpp_db10__insert_cEPv

* r355367 - Fix -fsanitize=vptr badness in <__debug>

  This patch fixes a lifetime bug when inserting a new container into the debug database. It is
  diagnosed by UBSAN when debug mode is enabled. This patch corrects how nodes are constructed
  during insertion.

  The fix requires unconditionally breaking the debug mode ABI. Users should not expect ABI
  stability from debug mode.

  All platforms
  -------------
  Symbol added: _ZNSt3__111__libcpp_db10__insert_cEPvPFPNS_8__c_nodeES1_S1_S3_E
  Symbol removed: _ZNSt3__111__libcpp_db10__insert_cEPv

-----------
Version 8.0
-----------

* r347903 - Remove std::bad_array_length

  The change removes the definition of std::bad_array_length (which never made
  it into the standard) from the headers and the dylib. This is technically an
  ABI break because the symbols are shipped starting with mac OSX 10.13, however
  users couldn't be relying on the functionality because it is marked as being
  unavailable using Clang's availability attribute.

  x86_64-apple-darwin16.0
  -----------------------
  Symbol removed: __ZNKSt16bad_array_length4whatEv
  Symbol removed: __ZNKSt16bad_array_length4whatEv
  Symbol removed: __ZNSt16bad_array_lengthC1Ev
  Symbol removed: __ZNSt16bad_array_lengthC1Ev
  Symbol removed: __ZNSt16bad_array_lengthC2Ev
  Symbol removed: __ZNSt16bad_array_lengthC2Ev
  Symbol removed: __ZNSt16bad_array_lengthD0Ev
  Symbol removed: __ZNSt16bad_array_lengthD0Ev
  Symbol removed: __ZNSt16bad_array_lengthD1Ev
  Symbol removed: __ZNSt16bad_array_lengthD1Ev
  Symbol removed: __ZNSt16bad_array_lengthD2Ev
  Symbol removed: __ZNSt16bad_array_lengthD2Ev
  Symbol removed: __ZTISt16bad_array_length
  Symbol removed: __ZTISt16bad_array_length
  Symbol removed: __ZTSSt16bad_array_length
  Symbol removed: __ZTSSt16bad_array_length
  Symbol removed: __ZTVSt16bad_array_length
  Symbol removed: __ZTVSt16bad_array_length

* r347395 - Making libc++ build under -fvisibility=hidden on Linux

  The change marks several function templates as hidden. This removes symbols
  from the shared library, but this is not an ABI break because it's impossible
  for programs linking against libc++.so to actually depend on that symbol.
  The reason is that the symbol is exported from the shared library through
  an implicit instantiation present in the shared object itself only. Furthermore,
  if a user's shared object was implicitly instantiating one of these functions,
  marking that symbol as hidden would not be an ABI break for them because none
  of their users could actually be using the symbol in their dylib (because
  it's an implicit instantiation).

  x86_64-linux-gnu
  ----------------
  Symbol removed: _ZNSt3__125__num_get_signed_integralIlEET_PKcS3_Rji
  Symbol removed: _ZNSt3__125__num_get_signed_integralIxEET_PKcS3_Rji
  Symbol removed: _ZNSt3__127__num_get_unsigned_integralIjEET_PKcS3_Rji
  Symbol removed: _ZNSt3__127__num_get_unsigned_integralImEET_PKcS3_Rji
  Symbol removed: _ZNSt3__127__num_get_unsigned_integralItEET_PKcS3_Rji
  Symbol removed: _ZNSt3__127__num_get_unsigned_integralIyEET_PKcS3_Rji
  Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIaaEEPaEEjT0_S5_S5_S5_S5_T_
  Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIccEEPcEEjT0_S5_S5_S5_S5_T_
  Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIddEEPdEEjT0_S5_S5_S5_S5_T_
  Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIffEEPfEEjT0_S5_S5_S5_S5_T_
  Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIhhEEPhEEjT0_S5_S5_S5_S5_T_
  Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIiiEEPiEEjT0_S5_S5_S5_S5_T_
  Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIjjEEPjEEjT0_S5_S5_S5_S5_T_
  Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIllEEPlEEjT0_S5_S5_S5_S5_T_
  Symbol removed: _ZNSt3__17__sort5IRNS_6__lessImmEEPmEEjT0_S5_S5_S5_S5_T_
  Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIssEEPsEEjT0_S5_S5_S5_S5_T_
  Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIttEEPtEEjT0_S5_S5_S5_S5_T_
  Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIwwEEPwEEjT0_S5_S5_S5_S5_T_
  Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIxxEEPxEEjT0_S5_S5_S5_S5_T_
  Symbol removed: _ZNSt3__17__sort5IRNS_6__lessIyyEEPyEEjT0_S5_S5_S5_S5_T_
  Symbol removed: _ZNSt3__1plIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_12basic_stringIT_T0_T1_EERKS9_PKS6_
  Symbol removed: _ZSt18make_exception_ptrINSt3__112future_errorEESt13exception_ptrT_

* r345260 - Making libc++ build under -fvisibility=hidden on Mac OS

  The change marks __thread_specific_ptr<__thread_struct>::__at_thread_exit(void*)
  with hidden visibility. This removes a symbol from the shared libraries,
  however this is not an ABI break because it's impossible for programs linking
  against libc++.dylib to actually depend on that symbol. The reason is that
  the symbol is exported from the shared library through an implicit
  instantiation present in the dylib itself only. Furthermore, if a user's
  dylib was implicitly instantiating __thread_specific_ptr<T>::__at_thread_exit
  (because it's defined in the headers), marking that symbol as hidden would
  not be an ABI break for them because none of their users could actually be
  using the symbol in their dylib (because it's an implicit instantiation).

  This change also marks __start_std_streams as hidden -- this variable is
  only required to initialize the streams, and nobody should depend on it
  from outside the dylib.

  x86_64-linux-gnu
  ----------------
  Symbol removed: _ZNSt3__121__thread_specific_ptrINS_15__thread_structEE16__at_thread_exitEPv
  Symbol removed: _ZNSt3__119__start_std_streamsE

  x86_64-apple-darwin16.0
  -----------------------
  Symbol removed: __ZNSt3__221__thread_specific_ptrINS_15__thread_structEE16__at_thread_exitEPv
  Symbol removed: __ZNSt3__119__start_std_streamsE

-----------
Version 7.0
-----------

* r338479 - Elementary string conversions for integral types

  The change emits __u64toa and __u32toa under std::__1::__itoa.

  x86_64-linux-gnu
  ----------------
  Symbol added: _ZNSt3__16__itoa8__u64toaEmPc
  Symbol added: _ZNSt3__16__itoa8__u32toaEjPc

  x86_64-apple-darwin16.0
  -----------------------
  Symbol added: __ZNSt3__16__itoa8__u64toaEyPc
  Symbol added: __ZNSt3__16__itoa8__u32toaEjPc


* r333467 - Fix embarrasing typo in uncaught_exceptions.

  This bug caused __uncaught_exception to be ODR used instead of
  __uncaught_exceptions. This change is non-ABI breaking because the symbols
  for std::uncaught_exception and std::uncaught_exceptions haven't changed,
  and because users shouldn't be depending directly on libc++ exporting
  __uncaught_exception/__uncaught_exceptions.

  All Platforms
  ----------------
  Symbol removed: __cxa_uncaught_exception
  Symbol added: __cxa_uncaught_exceptions

-----------
Version 5.0
-----------

* r313500 - Fix undefined "___cxa_deleted_virtual" symbol in macosx

  x86_64-linux-gnu
  ----------------
  No changes

  x86_64-apple-darwin16.0
  -----------------------
  Symbol added: ___cxa_deleted_virtual

* r296729 - Remove std::num_get 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: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE15__do_get_signedIlEES4_S4_S4_RNS_8ios_baseERjRT_
  Symbol removed: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE15__do_get_signedIxEES4_S4_S4_RNS_8ios_baseERjRT_
  Symbol removed: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedIjEES4_S4_S4_RNS_8ios_baseERjRT_
  Symbol removed: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedImEES4_S4_S4_RNS_8ios_baseERjRT_
  Symbol removed: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedItEES4_S4_S4_RNS_8ios_baseERjRT_
  Symbol removed: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedIyEES4_S4_S4_RNS_8ios_baseERjRT_
  Symbol removed: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIdEES4_S4_S4_RNS_8ios_baseERjRT_
  Symbol removed: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIeEES4_S4_S4_RNS_8ios_baseERjRT_
  Symbol removed: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIfEES4_S4_S4_RNS_8ios_baseERjRT_
  Symbol removed: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE15__do_get_signedIlEES4_S4_S4_RNS_8ios_baseERjRT_
  Symbol removed: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE15__do_get_signedIxEES4_S4_S4_RNS_8ios_baseERjRT_
  Symbol removed: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedIjEES4_S4_S4_RNS_8ios_baseERjRT_
  Symbol removed: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedImEES4_S4_S4_RNS_8ios_baseERjRT_
  Symbol removed: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedItEES4_S4_S4_RNS_8ios_baseERjRT_
  Symbol removed: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedIyEES4_S4_S4_RNS_8ios_baseERjRT_
  Symbol removed: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIdEES4_S4_S4_RNS_8ios_baseERjRT_
  Symbol removed: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIeEES4_S4_S4_RNS_8ios_baseERjRT_
  Symbol removed: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIfEES4_S4_S4_RNS_8ios_baseERjRT_

  x86_64-apple-darwin16.0
  -----------------------
  No changes

-----------
Version 4.0
-----------

* r290651 - Add _LIBCPP_ASSERT debug handling functions

  All Platforms
  -------------
  Symbol added: _ZNSt3__124__libcpp_debug_exceptionC2ERKNS_19__libcpp_debug_infoE
  Symbol added: _ZNSt3__124__libcpp_debug_exceptionD1Ev
  Symbol added: _ZTINSt3__124__libcpp_debug_exceptionE
  Symbol added: _ZNSt3__129__libcpp_throw_debug_functionERKNS_19__libcpp_debug_infoE
  Symbol added: _ZNSt3__124__libcpp_debug_exceptionD2Ev
  Symbol added: _ZNSt3__129__libcpp_abort_debug_functionERKNS_19__libcpp_debug_infoE
  Symbol added: _ZNSt3__124__libcpp_debug_exceptionC2ERKS0_
  Symbol added: _ZNSt3__124__libcpp_debug_exceptionC1Ev
  Symbol added: _ZNSt3__124__libcpp_debug_exceptionC1ERKNS_19__libcpp_debug_infoE
  Symbol added: _ZNSt3__124__libcpp_debug_exceptionC2Ev
  Symbol added: _ZTSNSt3__124__libcpp_debug_exceptionE
  Symbol added: _ZNSt3__123__libcpp_debug_functionE
  Symbol added: _ZNKSt3__124__libcpp_debug_exception4whatEv
  Symbol added: _ZNSt3__124__libcpp_debug_exceptionC1ERKS0_
  Symbol added: _ZNSt3__124__libcpp_debug_exceptionD0Ev
  Symbol added: _ZTVNSt3__124__libcpp_debug_exceptionE
  Symbol added: _ZNSt3__127__libcpp_set_debug_functionEPFvRKNS_19__libcpp_debug_infoEE

* 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

* r285537 - 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: _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

* r295398 - Remove basic_string::insert and basic_string::replace 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_9allocatorIcEEE6insertIPKcEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr38__libcpp_string_gets_noexcept_iteratorISA_EE5valueENS_11__wrap_iterIPcEEE4typeENSB_IS8_EESA_SA_
  Symbol removed: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7replaceIPKcEENS_9enable_ifIXsr19__is_input_iteratorIT_EE5valueERS5_E4typeENS_11__wrap_iterIS8_EESF_SA_SA_
  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_
  Symbol removed: _ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE7replaceIPKwEENS_9enable_ifIXsr19__is_input_iteratorIT_EE5valueERS5_E4typeENS_11__wrap_iterIS8_EESF_SA_SA_