1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 3<head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <meta name="description" content="Changelog for ABI Compliance Checker" /> 6 <title>ABI Compliance Checker: History</title> 7 8 <style type="text/css"> 9 body { 10 margin-top: 1.0em; 11 background-color: #deeef7; 12 font-family: Helvetica, Arial, FreeSans, san-serif; 13 color: #000000; 14 } 15 #container { 16 margin: 0 auto; 17 width: 700px; 18 } 19 h1 { font-size: 3.8em; color: #211108; margin-bottom: 3px;margin-top:0px;padding-top:0px;} 20 h1 .small { font-size: 0.4em; } 21 h1 a { text-decoration: none } 22 h2 { font-size: 1.5em; color: #211108; } 23 h3 { text-align: center; color: #211108; } 24 a { color: #211108; } 25 .description { font-size: 1.2em; margin-bottom: 30px; margin-top: 30px; font-style: italic;} 26 .download { float: right; } 27 pre {padding: 0px;margin: 0px;padding-left: 10px;word-wrap:break-word;white-space: pre-wrap;} 28 hr { border: 0; width: 80%; border-bottom: 1px solid #aaa} 29 .footer { text-align:center; padding-top:30px; font-style: italic; } 30 .code {border: dashed 1px gray; background-color: #f0f0f0;} 31 .listing {padding: 10px;border: 1px solid black;width: 70%;font-family:"DejaVu Sans Mono", "Monaco", "Courier New", monospace;font-size:14px;} 32 .summary {border:1px solid black;border-collapse:collapse;} 33 table.summary td, table.summary th {border:1px solid black;padding:2px;} 34 </style> 35 36</head> 37 38<body> 39<a href="https://github.com/lvc/abi-compliance-checker"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub" /></a> 40 41<div id="container"> 42 43<h1>ABI Compliance<br/>Checker: History</h1> 44<p/> 45<br/> 46 47<b>Version 1.99.25 (October 07, 2016)</b><br/> 48<b>New Options</b> 49<ul> 50 <li> 51 -test-abi-dumper: compare ABI dumps created by the ABI Dumper tool 52 </li> 53</ul> 54<b>Bug Fixes</b> 55<ul> 56 <li> 57 Do not list a symbol as removed in the source-compatibility report if it is presented in the dynsym table 58 </li> 59</ul> 60<br/> 61 62<b>Version 1.99.24 (October 04, 2016)</b><br/> 63<b>Improvements</b> 64<ul> 65 <li> 66 Support for Clang 67 </li> 68 <li> 69 Improved a module to compare operating systems 70 </li> 71 <li> 72 Improved support for C++ keywords in C code 73 </li> 74 <li> 75 Improved support for Windows 76 </li> 77 <li> 78 Improved support for MinGW 79 </li> 80</ul> 81<b>New Options</b> 82<ul> 83 <li> 84 -skip-typedef-uncover: do not report a problem if type is covered or uncovered by typedef (useful for broken debug info) 85 </li> 86 <li> 87 -mingw-compatible: if input header files are compatible with the MinGW GCC compiler, then you can tell the tool about this and speedup the analysis 88 </li> 89 <li> 90 -skip-unidentified: skip header files in 'headers' and 'include_preamble' sections of the XML descriptor that cannot be found 91 </li> 92 <li> 93 -disable-constants-check: do not check for changes in constants 94 </li> 95 <li> 96 -skip-added-constants: do not detect added constants 97 </li> 98 <li> 99 -skip-removed-constants: do not detect removed constants 100 </li> 101</ul> 102<b>Bug Fixes</b> 103<ul> 104 <li> 105 Do not show GCC version in the source compatibility report 106 </li> 107 <li> 108 Renamed CPU Type column to Arch in the report 109 </li> 110 <li> 111 Support for ABI dumps v3.3 112 </li> 113 <li> 114 The -cpp-compatible option is now enabled by default 115 </li> 116</ul> 117<br/> 118 119<b>Version 1.99.23 (August 15, 2016)</b><br/> 120<b>Improvements</b> 121<ul> 122 <li> 123 Improved generation of quick empty reports 124 </li> 125 <li> 126 Improved SysCheck.pm module for analysis of operating systems 127 </li> 128 <li> 129 Improved support for Windows 10 130 </li> 131</ul> 132<b>New Options</b> 133<ul> 134 <li> 135 -disable-quick-empty-report: do not generate quick empty report if input ABI dumps are equal 136 </li> 137</ul> 138<b>Bug Fixes</b> 139<ul> 140 <li> 141 Fixed lists of affected symbols in the XML-format report. 142 </li> 143</ul> 144<br/> 145 146<b>Version 1.99.22 (July 04, 2016)</b><br/> 147<b>Improvements</b> 148<ul> 149 <li> 150 New style of the report 151 </li> 152</ul> 153<b>New Options</b> 154<ul> 155 <li> 156 -old-style: generate old-style report 157 </li> 158</ul> 159<b>Bug Fixes</b> 160<ul> 161 <li> 162 Fixed handling of patterns in -skip-* options 163 </li> 164 <li> 165 Fixed rounding of the BC rate in the report 166 </li> 167</ul> 168<br/> 169 170<b>Version 1.99.21 (May 26, 2016)</b><br/> 171<b>Improvements</b> 172<ul> 173 <li> 174 Up to 4 times faster on big libraries 175 </li> 176 <li> 177 Show compatibility rate instead of verdict in the report 178 </li> 179 <li> 180 Highlight the numbers of high/medium/low severity problems in the report 181 </li> 182 <li> 183 Show percentage of affected methods in the problem description 184 </li> 185</ul> 186<b>New Options</b> 187<ul> 188 <li> 189 -count-symbols: count public symbols in the ABI dump 190 </li> 191</ul> 192<b>Bug Fixes</b> 193<ul> 194 <li> 195 Fixed quick comparison of equal ABI dumps 196 </li> 197</ul> 198<br/> 199 200<b>Version 1.99.20 (May 14, 2016)</b><br/> 201<b>Improvements</b> 202<ul> 203 <li> 204 Use regular expressions instead of wildcards in -skip-* options 205 </li> 206</ul> 207<br/> 208 209<b>Version 1.99.19 (April 18, 2016)</b><br/> 210<b>Improvements</b> 211<ul> 212 <li> 213 Support for GCC 5.1 214 </li> 215</ul> 216<b>Misc</b> 217<ul> 218 <li> 219 Separated LICENSE file 220 </li> 221 <li> 222 Removed obsolete descriptors from the package 223 </li> 224 <li> 225 Updated docs 226 </li> 227</ul> 228<br/> 229 230<b>Version 1.99.18 (April 03, 2016)</b><br/> 231<b>Bug Fixes</b> 232<ul> 233 <li> 234 Fixed comparison of qualifiers in parameter data types 235 </li> 236 <li> 237 Fixed problem descriptions in the report 238 </li> 239 <li> 240 Reduced size of the report 241 </li> 242 <li> 243 Fixed console output 244 </li> 245</ul> 246<br/> 247 248<b>Version 1.99.17 (March 12, 2016)</b><br/> 249<b>Improvements</b> 250<ul> 251 <li> 252 Added a check for changes in parameters of function pointers 253 </li> 254</ul> 255<b>Bug Fixes</b> 256<ul> 257 <li> 258 Fixed comparison of virtual table entries 259 </li> 260 <li> 261 Do not show time stamp in the report 262 </li> 263 <li> 264 Fixed -skip-symbols option 265 </li> 266 <li> 267 Fixed detection of the GCC version number 268 </li> 269</ul> 270<br/> 271 272<b>Version 1.99.16 (January 28, 2016)</b><br/> 273<b>Improvements</b> 274<ul> 275 <li> 276 Do not check private part of the ABI when comparing ABI dumps created by the ABI Dumper tool with use of the -public-headers option 277 </li> 278</ul> 279<b>New Options</b> 280<ul> 281 <li> 282 -check-private-abi: enable check of the private ABI 283 </li> 284</ul> 285<b>Bug Fixes</b> 286<ul> 287 <li> 288 Fixed counting of checked data types 289 </li> 290</ul> 291<br/> 292 293<b>Version 1.99.15 (December 11, 2015)</b><br/> 294<b>Bug Fixes</b> 295<ul> 296 <li> 297 Fixed hang on some template instances 298 </li> 299 <li> 300 Fixed support for old ABI dumps (formatting of data types) 301 </li> 302 <li> 303 Fixed false positives in the report if input ABI dumps contain __unknown__ types 304 </li> 305</ul> 306<br/> 307 308<b>Version 1.99.14 (November 01, 2015)</b><br/> 309<b>New Options</b> 310<ul> 311 <li> 312 -skip-types: set list of types that should not be checked 313 </li> 314</ul> 315<b>Bug Fixes</b> 316<ul> 317 <li> 318 Fixed formatting of symbol signatures 319 </li> 320 <li> 321 Fixed checks of template types 322 </li> 323</ul> 324<br/> 325 326<b>Version 1.99.13 (October 18, 2015)</b><br/> 327<b>Improvements</b> 328<ul> 329 <li> 330 Check public symbols only if comparing public ABI dumps generated by the ABI dumper (with -public-headers option) 331 </li> 332 <li> 333 Added more metadata to the report 334 </li> 335</ul> 336<b>New Options</b> 337<ul> 338 <li> 339 -skip-internal-types: do not check data types matched by the pattern 340 </li> 341</ul> 342<b>Bug Fixes</b> 343<ul> 344 <li> 345 Fixed Type_Became_Opaque, Parameter_Changed_Register, Parameter_From_Register and Parameter_To_Register rules 346 </li> 347 <li> 348 Fixed method signatures in the report (C++) 349 </li> 350 <li> 351 Fixed -headers-list option 352 </li> 353 <li> 354 Option -skip-internal renamed to -skip-internal-symbols 355 </li> 356 <li> 357 Fixed false positives if vtable-dumper generates incomplete data 358 </li> 359 <li> 360 Fixed Makefile 361 </li> 362</ul> 363<br/> 364 365<b>Version 1.99.12 (September 20, 2015)</b><br/> 366<b>Bug Fixes</b> 367<ul> 368 <li> 369 Fixed title of the report 370 </li> 371 <li> 372 Print warning if version number is not set in the ABI dump 373 </li> 374</ul> 375<br/> 376 377<b>Version 1.99.11 (September 12, 2015)</b><br/> 378<b>Bug Fixes</b> 379<ul> 380 <li> 381 Fixed Removed_Field_And_Layout rule 382 </li> 383 <li> 384 Fixed -skip-symbols option 385 </li> 386</ul> 387<br/> 388 389<b>Version 1.99.10 (September 08, 2015)</b><br/> 390<b>Improvements</b> 391<ul> 392 <li> 393 Improved style of the report 394 </li> 395 <li> 396 New documentation 397 </li> 398 <li> 399 Added more test cases 400 </li> 401</ul> 402<b>New Options</b> 403<ul> 404 <li> 405 -types-list: specify a list of types that should be checked 406 </li> 407 <li> 408 -gcc-options: specify additional compiler options 409 </li> 410</ul> 411<b>Bug Fixes</b> 412<ul> 413 <li> 414 Limited number of affected symbols shown for each BC problem in the report 415 </li> 416 <li> 417 Fixed check of the DataType_Size_And_Stack rule 418 </li> 419 <li> 420 Fixed checks of base classes 421 </li> 422 <li> 423 Carefully substitute parameters in rules 424 </li> 425 <li> 426 Allow to check for source-compatibility in the -cmp-systems mode by specifying both -bin and -src options 427 </li> 428 <li> 429 Fixed sorting of problems listed in the report 430 </li> 431 <li> 432 Limit number of checked types if -headers-list option is specified 433 </li> 434 <li> 435 Fixed -headers-list and -skip-symbols options 436 </li> 437 <li> 438 Fixed cross-platform issues 439 </li> 440 <li> 441 Set LANG=C.UTF-8 for objdump 442 </li> 443 <li> 444 Fixed list of headers in the report 445 </li> 446 <li> 447 Fixed number of checked headers in the report summary. Removed support for old dumps < 1.18 448 </li> 449 <li> 450 Renamed -lib-full option to -title 451 </li> 452 <li> 453 Carefully detect architecture of input objects and word size 454 </li> 455 <li> 456 Corrected detection of the GCC target architecture 457 </li> 458 <li> 459 More accurate checking of ABI dump names 460 </li> 461 <li> 462 Fixed regressions with SysCheck.pm module 463 </li> 464 <li> 465 Removed obsolete code and options 466 </li> 467 <li> 468 Fixed the objdump command line when the path contains spaces 469 </li> 470 <li> 471 Simplified Makefile 472 </li> 473 <li> 474 Do not install system descriptors to PREFIX/share 475 </li> 476 <li> 477 Take -relpath option into account in the SysCheck.pm module 478 </li> 479 <li> 480 Fixed CSS styles of the CmpSystems module 481 </li> 482</ul> 483<br/> 484 485<b>Version 1.99.9 (January 23, 2014)</b><br/> 486<b>New Options</b> 487<ul> 488 <li> 489 -skip-internal: do not check internal interfaces matched by the pattern 490 </li> 491</ul> 492<b>Bug Fixes</b> 493<ul> 494 <li> 495 Fixed duplicated entries in the XML report 496 </li> 497 <li> 498 Reduced size of the XML report 499 </li> 500 <li> 501 Fixed duplicated problems related to changed size of a global data 502 </li> 503 <li> 504 Options -v1 and -v2 can now be used when comparing ABI dumps to change library versions shown in the report 505 </li> 506 <li> 507 Fixed false positives with the size change of a template instance type 508 </li> 509 <li> 510 Fixed false positives with the change of a parameter/field type name 511 </li> 512</ul> 513<br/> 514 515<b>Version 1.99.8.5 (October 03, 2013)</b><br/> 516<b>Improvements</b> 517<ul> 518 <li> 519 Optimized performance and memory usage (up to 90%) on input objects with a huge number of changes and deep data type trees (e.g. Linux kernel) 520 </li> 521 <li> 522 Partial support for GCC 4.8.{0-1}, waiting for a fix for the bug <a href='http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57850'>57850</a> in the next GCC versions 523 </li> 524 <li> 525 Support for incomplete ABI dumps 526 </li> 527</ul> 528<b>New Options</b> 529<ul> 530 <li> 531 -affected-limit 532 </li> 533 <li> 534 -cpp-incompatible 535 </li> 536</ul> 537<b>Bug Fixes</b> 538<ul> 539 <li> 540 Fixed identification of template constructors and destructors 541 </li> 542 <li> 543 Do not show "this" first argument of methods in the report 544 </li> 545 <li> 546 Corrected descriptions of affected symbols in the report 547 </li> 548 <li> 549 Fixed false alarms on changed offset of parameters 550 </li> 551 <li> 552 Do not hang on class A<N>:public A<N-1> 553 </li> 554 <li> 555 Corrected identification of header files in the include_preamble 556 </li> 557 <li> 558 Corrected comparison of function pointer types 559 </li> 560 <li> 561 Corrected rule Global_Data_Size 562 </li> 563</ul> 564<b>Other</b> 565<ul> 566 <li> 567 Code refactoring 568 </li> 569</ul> 570<br/> 571 572<b>Version 1.99.7 (July 01, 2013)</b><br/> 573<b>Improvements</b> 574<ul> 575 <li> 576 Added missed fields of template instance types to the ABI dump 577 </li> 578 <li> 579 Improved support for old ABI dumps 580 </li> 581 <li> 582 Added Struct_Field_Size_Increased rule 583 </li> 584 <li> 585 Support for vector types (GCC extension) 586 </li> 587 <li> 588 Removed duplicates from the ABI dump 589 </li> 590 <li> 591 Corrected visualization of v-table content in the report 592 </li> 593 <li> 594 Corrected identification of target headers 595 </li> 596 <li> 597 Corrected source-compatibility check 598 </li> 599 <li> 600 Performance optimization (5%) 601 </li> 602</ul> 603<b>New Options</b> 604<ul> 605 <li> 606 -check - to check completeness of the ABI dump 607 </li> 608</ul> 609<b>Bug Fixes</b> 610<ul> 611 <li> 612 Fixed default arguments of methods (broken in 1.99.1 due to added "this" parameter) 613 </li> 614</ul> 615<b>Other</b> 616<ul> 617 <li> 618 Extended test suite 619 </li> 620</ul> 621<br/> 622 623<b>Version 1.99.1 (June 07, 2013)</b><br/> 624<b>Improvements</b> 625<ul> 626 <li> 627 Support for ABI Dumper 0.97 628 </li> 629 <li> 630 Show added/removed inline virtual functions in the binary compatibility report 631 </li> 632 <li> 633 Added "this" hidden parameter to non-static class methods in the ABI dump 634 </li> 635</ul> 636<b>Bug Fixes</b> 637<ul> 638 <li> 639 Fixed XmlDump module 640 </li> 641 <li> 642 Fixed CallConv module 643 </li> 644</ul> 645<b>Other</b> 646<ul> 647 <li> 648 Support for old ABI dumps 649 </li> 650</ul> 651<br/> 652 653<b>Version 1.99 (May 24, 2013)</b><br/> 654<b>Improvements</b> 655<ul> 656 <li> 657 Support for ABI Dumper 0.95 658 </li> 659 <li> 660 Added 14 binary-compatibility rules 661 </li> 662 <li> 663 Added 10 source-compatibility rules 664 </li> 665 <li> 666 Improved model of type alignment 667 </li> 668 <li> 669 Changed version of ABI dump format to 3.0 670 </li> 671 <li> 672 Added _vptr member to virtual classes 673 </li> 674 <li> 675 Added constants defined by GCC to ABI dump 676 </li> 677 <li> 678 Improved analysis of constants 679 </li> 680</ul> 681<b>New Options</b> 682<ul> 683 <li> 684 -skip-symbols 685 </li> 686</ul> 687<b>Bug Fixes</b> 688<ul> 689 <li> 690 Increased severity of Field_Became_Non_Mutable rule 691 </li> 692</ul> 693<b>Other</b> 694<ul> 695 <li> 696 Support for old ABI dumps 697 </li> 698 <li> 699 Extended test suite (+11 test cases) 700 </li> 701 <li> 702 Code cleaning 703 </li> 704</ul> 705<br/> 706 707<b>Version 1.98.8 (February 07, 2013)</b><br/> 708<b>Improvements</b> 709<ul> 710 <li> 711 Show added and removed constants (#defines) in the report 712 </li> 713 <li> 714 Show changes in unnamed enumerations 715 </li> 716 <li> 717 Avoid false alarm about renamed field if old name of this field is defined to new (SC) 718 </li> 719 <li> 720 Recursive comparing of structured data types in *_Format rules 721 </li> 722 <li> 723 Added Typedef_BaseType_Format rule to check format changes in the typedef base type 724 </li> 725</ul> 726<b>New Options</b> 727<ul> 728 <li> 729 -tolerant 730 </li> 731 <li> 732 -tolerance 733 </li> 734</ul> 735<b>Bug Fixes</b> 736<ul> 737 <li> 738 Increased severity of Parameter_BaseType_And_Size BC rule (Low to Medium) 739 </li> 740 <li> 741 Increased severity of Added_Field SC rule (Safe to Low) 742 </li> 743 <li> 744 Corrected handling of the tool error codes in the test suite 745 </li> 746 <li> 747 Corrected handling of relative paths in the descriptor options 748 </li> 749 <li> 750 Skipping linker-related options in gcc_options option of the descriptor 751 </li> 752 <li> 753 Corrected internal mangler for C++ functions 754 </li> 755 <li> 756 Corrected conditions for enabling of C++ compatibility mode 757 </li> 758 <li> 759 Corrected handling of C++ keywords in C-code 760 </li> 761 <li> 762 Corrected -extended option 763 </li> 764 <li> 765 Corrected Typedef_BaseType rule 766 </li> 767 <li> 768 Corrected parsing of default function arguments 769 </li> 770 <li> 771 Do not check presence of archive utilities if not used 772 </li> 773 <li> 774 Other fixes 775 </li> 776</ul> 777<b>Other</b> 778<ul> 779 <li> 780 Extended test suite 781 </li> 782 <li> 783 Code cleaning 784 </li> 785</ul> 786<br/> 787 788<b>Version 1.98.7 (December 14, 2012)</b><br/> 789<b>Improvements</b> 790<ul> 791 <li> 792 Extended extra info dumped by -extra-info option 793 </li> 794 <li> 795 Extended additional info dumped by -extra-dump option 796 </li> 797 <li> 798 Added specifiers for structs, unions and enums in the report and ABI dump 799 </li> 800 <li> 801 Improved support for old ABI dumps 802 </li> 803</ul> 804<b>Bug Fixes</b> 805<ul> 806 <li> 807 Corrected -debug option 808 </li> 809 <li> 810 Corrected creating of archives with ABI dumps 811 </li> 812 <li> 813 Corrected parsing of includes in header files 814 </li> 815 <li> 816 Corrected processing of undefined symbols 817 </li> 818 <li> 819 Corrected -app option 820 </li> 821 <li> 822 Corrected processing of default paths to system libraries 823 </li> 824 <li> 825 Corrected Makefile 826 </li> 827 <li> 828 Other fixes 829 </li> 830</ul> 831<b>Other</b> 832<ul> 833 <li> 834 Code cleaning and refactoring 835 </li> 836</ul> 837<br/> 838 839<b>Version 1.98.6 (December 04, 2012)</b><br/> 840<b>Improvements</b> 841<ul> 842 <li> 843 Extended -extra-info and -extra-dump options 844 </li> 845</ul> 846<b>Bug Fixes</b> 847<ul> 848 <li> 849 Corrected processing of input XML descriptor 850 </li> 851 <li> 852 Corrected "Parameter_Default_Value_Removed" rule 853 </li> 854 <li> 855 Other fixes 856 </li> 857</ul> 858<b>Other</b> 859<ul> 860 <li> 861 Code cleaning 862 </li> 863</ul> 864<br/> 865 866<b>Version 1.98.5 (November 30, 2012)</b><br/> 867<b>Improvements</b> 868<ul> 869 <li> 870 Support for Mac OS X 10.8 871 </li> 872 <li> 873 Support for OpenBSD 874 </li> 875 <li> 876 Support for old GCC versions <= 4.2 877 </li> 878 <li> 879 Added "throw" and "weak" attributes of methods to ABI dump 880 </li> 881</ul> 882<b>New Options</b> 883<ul> 884 <li> 885 -extra-info 886 </li> 887 <li> 888 -extra-dump 889 </li> 890 <li> 891 -force 892 </li> 893</ul> 894<b>Bug Fixes</b> 895<ul> 896 <li> 897 Corrected order of user-defined include paths 898 </li> 899 <li> 900 Corrected internal C++ mangler 901 </li> 902 <li> 903 Removed false positives of the "Parameter_Type_Format" rule 904 </li> 905 <li> 906 Other fixes 907 </li> 908</ul> 909<b>Other</b> 910<ul> 911 <li> 912 Extended test suite 913 </li> 914 <li> 915 Code cleaning 916 </li> 917 <li> 918 Docs cleaning 919 </li> 920</ul> 921<br/> 922 923<b>Version 1.98.4 (October 18, 2012)</b><br/> 924<b>Improvements</b> 925<ul> 926 <li> 927 Optimization of memory usage (5%-10%) and performance (5%-10%) 928 </li> 929 <li> 930 Added "Used Reserved Field" rule of binary compatibility analysis 931 </li> 932 <li> 933 Improved design of the operating system compatibility report 934 </li> 935 <li> 936 Added meta descriptors for 334 libraries 937 </li> 938</ul> 939<b>Bug Fixes</b> 940<ul> 941 <li> 942 Fixed an issue with diagnostics of added virtual functions 943 </li> 944 <li> 945 Corrected the list of functions affected by the compatibility problem 946 </li> 947 <li> 948 Avoid false alarm about removed function if this function became macro (SC) 949 </li> 950 <li> 951 Corrected parser of C header files 952 </li> 953 <li> 954 Other fixes 955 </li> 956</ul> 957<b>Other</b> 958<ul> 959 <li> 960 Extended test suite 961 </li> 962 <li> 963 Code cleaning 964 </li> 965</ul> 966<br/> 967 968<b>Version 1.98.3 (July 19, 2012)</b><br/> 969<b>Improvements</b> 970<ul> 971 <li> 972 Implemented a model of calling conventions on x86 and x86_64 973 </li> 974 <li> 975 Improved diagnostics of changes in function parameters and return value (distribution on registers and stack) 976 </li> 977</ul> 978<b>Bug Fixes</b> 979<ul> 980 <li> 981 Corrected parser of C++ header files to detect non-member functions inside namespaces 982 </li> 983</ul> 984<b>Other</b> 985<ul> 986 <li> 987 Added requirement for Ctags (5.8 or newer) 988 </li> 989 <li> 990 Code cleaning 991 </li> 992</ul> 993<br/> 994 995<b>Version 1.98.2 (June 26, 2012)</b><br/> 996<b>Improvements</b> 997<ul> 998 <li> 999 Support for reading ABI dumps in XML format 1000 </li> 1001 <li> 1002 Automatic enabling of c++0x support if needed to compile headers 1003 </li> 1004</ul> 1005<b>Bug Fixes</b> 1006<ul> 1007 <li> 1008 Corrected XML and Perl (default) formats of ABI dumps 1009 </li> 1010 <li> 1011 Improved support for old ABI dumps 1012 </li> 1013 <li> 1014 Improved -dump-system option 1015 </li> 1016</ul> 1017<b>Other</b> 1018<ul> 1019 <li> 1020 Improved documentation 1021 </li> 1022</ul> 1023<br/> 1024 1025<b>Version 1.98.1 (June 18, 2012)</b><br/> 1026<b>Bug Fixes</b> 1027<ul> 1028 <li> 1029 Removed symbols marked as LOCAL in a shared library from lists of added/removed symbols in source-compatibility report 1030 </li> 1031 <li> 1032 Fixed a false positive with some removed extern "C" symbols in source-compatibility report 1033 </li> 1034 <li> 1035 Fixed a bug with removed debug/ directory when using -use-dumps and -debug options together 1036 </li> 1037 <li> 1038 Added support for "skip_including" section of target system XML descriptors (modules/Targets) used by -dump-system option 1039 </li> 1040 <li> 1041 Extended XML ABI dumps by size attribute of library symbols 1042 </li> 1043</ul> 1044<br/> 1045 1046<b>Version 1.98.0 (June 14, 2012)</b><br/> 1047<b>New Features</b> 1048<ul> 1049 <li> 1050 Implemented XML format of ABI dumps 1051 </li> 1052</ul> 1053<b>New Options</b> 1054<ul> 1055 <li> 1056 -dump-format 1057 </li> 1058</ul> 1059<b>Bug Fixes</b> 1060<ul> 1061 <li> 1062 Improved support for old ABI dumps 1063 </li> 1064 <li> 1065 Other fixes 1066 </li> 1067</ul> 1068<br/> 1069 1070<b>Version 1.97.8 (June 08, 2012)</b><br/> 1071<b>Improvements</b> 1072<ul> 1073 <li> 1074 Redesigned format of ABI dump 1075 </li> 1076 <li> 1077 Optimization of memory usage (5%-10%) and performance (5%-10%) 1078 </li> 1079 <li> 1080 Improved support for GCC 4.0-4.5 1081 </li> 1082 <li> 1083 Added "add_namespaces" section of the XML descriptor 1084 </li> 1085</ul> 1086<b>New Options</b> 1087<ul> 1088 <li> 1089 -open 1090 </li> 1091 <li> 1092 -sort 1093 </li> 1094</ul> 1095<b>Bug Fixes</b> 1096<ul> 1097 <li> 1098 Improved support for old ABI dumps 1099 </li> 1100 <li> 1101 Fixed a bug with auto-detection of include paths when comparing two XML descriptors 1102 </li> 1103 <li> 1104 Corrected output of -debug option 1105 </li> 1106 <li> 1107 Corrected -dump-system and -cmp-systems options 1108 </li> 1109 <li> 1110 Other fixes 1111 </li> 1112</ul> 1113<b>Other</b> 1114<ul> 1115 <li> 1116 Code cleaning 1117 </li> 1118</ul> 1119<br/> 1120 1121<b>Version 1.97.5 (May 14, 2012)</b><br/> 1122<b>Improvements</b> 1123<ul> 1124 <li> 1125 Extended ABI dumps by source-level type declarations 1126 </li> 1127 <li> 1128 Improved support for old ABI dumps 1129 </li> 1130 <li> 1131 Optimization of memory usage (20%-30%) and performance (10%-20%) 1132 </li> 1133</ul> 1134<b>Bug Fixes</b> 1135<ul> 1136 <li> 1137 Corrected auto-detection of a set of target headers to check/dump in -headers-only mode 1138 </li> 1139 <li> 1140 Other fixes 1141 </li> 1142</ul> 1143<b>Other</b> 1144<ul> 1145 <li> 1146 Extended regression test suite 1147 </li> 1148 <li> 1149 Code cleaning 1150 </li> 1151</ul> 1152<br/> 1153 1154<b>Version 1.97.4 (April 16, 2012)</b><br/> 1155<b>New Features</b> 1156<ul> 1157 <li> 1158 Added 16 new binary-compatibility rules 1159 </li> 1160 <li> 1161 Added 17 new source-compatibility rules 1162 </li> 1163</ul> 1164<b>Bug Fixes</b> 1165<ul> 1166 <li> 1167 Added some missed typedef types to function signatures 1168 </li> 1169</ul> 1170<b>Other</b> 1171<ul> 1172 <li> 1173 Improved support for old ABI dumps 1174 </li> 1175 <li> 1176 Support for GCC 4.7 1177 </li> 1178 <li> 1179 Extended regression test suite 1180 </li> 1181 <li> 1182 Code cleaning 1183 </li> 1184</ul> 1185<br/> 1186 1187<b>Version 1.97.3 (April 03, 2012)</b><br/> 1188<b>Completed Tasks</b> 1189<ul> 1190 <li> 1191 Implement source-level compatibility checks 1192 </li> 1193 <li> 1194 Implement 2.0 architecture 1195 </li> 1196</ul> 1197<b>New Features</b> 1198<ul> 1199 <li> 1200 Added -browse=PROG option 1201 </li> 1202 <li> 1203 Added -xml alias option for --report-format=xml 1204 </li> 1205 <li> 1206 Added -binary option to generate binary-compatibility report only 1207 </li> 1208 <li> 1209 Added -source option to generate source-compatibility report only 1210 </li> 1211 <li> 1212 Added -bin-report-path option: path to binary-compatibility report 1213 </li> 1214 <li> 1215 Added -src-report-path option: path to source-compatibility report 1216 </li> 1217</ul> 1218<b>Other Features</b> 1219<ul> 1220 <li> 1221 Improved debug mode (-debug) 1222 </li> 1223 <li> 1224 Improved mark-up of the HTML report 1225 </li> 1226 <li> 1227 Improved mark-up of the HTML report 1228 </li> 1229 <li> 1230 Improved support for old ABI dumps 1231 </li> 1232</ul> 1233<b>Bug Fixes</b> 1234<ul> 1235 <li> 1236 Corrected ABI dumps 1237 </li> 1238</ul> 1239<br/> 1240 1241<b>Version 1.96.8 (February 17, 2012)</b><br/> 1242<b>Completed Tasks</b> 1243<ul> 1244 <li> 1245 Implement XML format of compatibility report 1246 </li> 1247 <li> 1248 Testing on MeeGo 1.2 Harmattan Beta2 1249 </li> 1250</ul> 1251<b>New Features</b> 1252<ul> 1253 <li> 1254 Added hidden statistics line to compatibility report for operating systems 1255 </li> 1256 <li> 1257 Added -headers-list option 1258 </li> 1259 <li> 1260 Added -lang option 1261 </li> 1262 <li> 1263 Support for symbolic links in /usr/include and /usr/lib 1264 </li> 1265 <li> 1266 Added "skip_include_paths" section of the XML-descriptor 1267 </li> 1268 <li> 1269 Added "skip_including" section of the XML-descriptor 1270 </li> 1271 <li> 1272 Added -list-affected option to create plain list of incompatible symbols 1273 </li> 1274 <li> 1275 Added -quiet option to print all errors and warnings to the log file instead of stderr and stdout 1276 </li> 1277 <li> 1278 Added -stdout option to print results to stdout 1279 </li> 1280 <li> 1281 Added an option to check binary compatibility in the extended sense 1282 </li> 1283 <li> 1284 Improve diagnostic messages for added base classes with virtual functions 1285 </li> 1286 <li> 1287 Added -update option to installer 1288 </li> 1289 <li> 1290 Added a relative default directory to locate modules after installation 1291 </li> 1292 <li> 1293 Compatibility rate = (high+1/2*medium+1/4*low) / number of symbols 1294 </li> 1295</ul> 1296<b>Bug Fixes</b> 1297<ul> 1298 <li> 1299 Some symbols with extern "C" linkage are missed in -headers-only mode 1300 </li> 1301 <li> 1302 Changes in global data are not detected under Windows 1303 </li> 1304 <li> 1305 False negative: change global data to be "const" 1306 </li> 1307 <li> 1308 Removed middle enumeration value is reported as renamed 1309 </li> 1310 <li> 1311 False positive: change parameter type from "const int" to "int" 1312 </li> 1313 <li> 1314 Support for old ABI dump format of ACC 1.21.6 1315 </li> 1316 <li> 1317 The tool doesn't search for included headers in /usr/lib/qt4/include/ 1318 </li> 1319 <li> 1320 False Negative: Header is incompatible with itself 1321 </li> 1322 <li> 1323 Check libstdc++ in -headers-only mode 1324 </li> 1325 <li> 1326 Restrict checked header files in the -headers-only mode 1327 </li> 1328 <li> 1329 Problem with mangled C++ functions using old ABI dump formats in -headers-only mode 1330 </li> 1331 <li> 1332 Incorrect size of method pointer in ABI dumps 1333 </li> 1334 <li> 1335 False negative: add/remove "register" modifier of the parameter 1336 </li> 1337 <li> 1338 Incorrect WORD size when using old ABI dump format 1339 </li> 1340 <li> 1341 Conflict of a static method with a function of the same name in the ABI dump 1342 </li> 1343 <li> 1344 Missed right bracket of "func-ptr" type in HTML report 1345 </li> 1346 <li> 1347 Incorrect report for overridden methods 1348 </li> 1349 <li> 1350 False negative: override a virtual that doesn't come from a primary base 1351 </li> 1352 <li> 1353 False negative: change a function parameter to be "restrict" 1354 </li> 1355 <li> 1356 False negative: change a field to be "volatile" 1357 </li> 1358 <li> 1359 False negative: change "const"-ness of a return value 1360 </li> 1361 <li> 1362 False negative: change "volatile" attribute of a method 1363 </li> 1364 <li> 1365 False positive: removed symbols with inline virtual prototype in the leaf class with default constructor 1366 </li> 1367</ul> 1368<br/> 1369 1370<b>Version 1.94 (September 09, 2011)</b><br/> 1371<b>Completed Tasks</b> 1372<ul> 1373 <li> 1374 Separated regression tests into the module 1375 </li> 1376</ul> 1377<b>New Features</b> 1378<ul> 1379 <li> 1380 Added Makefile.pl installer 1381 </li> 1382</ul> 1383<br/> 1384 1385<b>Version 1.93.8 (September 08, 2011)</b><br/> 1386<b>Completed Tasks</b> 1387<ul> 1388 <li> 1389 Separated rules DB 1390 </li> 1391 <li> 1392 Testing on Symbian SDK 1393 </li> 1394 <li> 1395 Testing on Windows SDK 1396 </li> 1397 <li> 1398 Support for OS3000 1399 </li> 1400</ul> 1401<b>New Features</b> 1402<ul> 1403 <li> 1404 SONAME change in the OS comparison table 1405 </li> 1406 <li> 1407 Added a compatibility percentage to the OS comparison table 1408 </li> 1409 <li> 1410 Added -debug option 1411 </li> 1412 <li> 1413 Added listing of symbols in OS comparison table 1414 </li> 1415 <li> 1416 Use zip format of dumps in Windows 1417 </li> 1418 <li> 1419 Added -dump-system descriptor.xml option 1420 </li> 1421 <li> 1422 Analysis of static libraries 1423 </li> 1424 <li> 1425 Added -sysinfo option 1426 </li> 1427 <li> 1428 Added -component option 1429 </li> 1430 <li> 1431 Added -nostdinc option 1432 </li> 1433 <li> 1434 Added "weakly"- and "almost"-compatible verdicts 1435 </li> 1436 <li> 1437 Added "skip_namespaces" section of the library XML-descriptor 1438 </li> 1439 <li> 1440 Search for modules/ directory in the system 1441 </li> 1442</ul> 1443<b>Bug Fixes</b> 1444<ul> 1445 <li> 1446 Missed typedefs in the ABI dump using GCC 4.4.1 1447 </li> 1448 <li> 1449 False negative: change enum member value from zero to non-zero 1450 </li> 1451 <li> 1452 False negative: interchange the positions of two fields in a structure 1453 </li> 1454 <li> 1455 False positive: add a field instead of padding fields 1456 </li> 1457 <li> 1458 Problems with "copied" classes 1459 </li> 1460 <li> 1461 Changes in "private" fields 1462 </li> 1463 <li> 1464 Illegal modulus zero at abi-compliance-checker.pl 1465 </li> 1466 <li> 1467 Incorrect order of include paths 1468 </li> 1469 <li> 1470 Change constness of a class method 1471 </li> 1472 <li> 1473 False negative: change "struct Type" to "union Type" 1474 </li> 1475 <li> 1476 Change parameter type from "..." to "int" 1477 </li> 1478 <li> 1479 Remove/add "const"-qualifier of a method 1480 </li> 1481 <li> 1482 False negative: renamed parameters 1483 </li> 1484</ul> 1485<b>Other</b> 1486<ul> 1487 <li> 1488 Improved debug mode 1489 </li> 1490</ul> 1491<br/> 1492 1493<b>Version 1.23.5 (July 01, 2011)</b><br/> 1494<b>Bug Fixes</b> 1495<ul> 1496 <li> 1497 Corrected exit codes: 0 - compatible, 1 - incompatible, 2 - error, ... 1498 </li> 1499 <li> 1500 Corrected diagnostic messages for C++ functions with changed signature 1501 </li> 1502 <li> 1503 Fixed regression with C++ non-member functions 1504 </li> 1505 <li> 1506 Removed false positive with overridden private methods 1507 </li> 1508 <li> 1509 Corrected functionality for checking binary compatibility of operating systems 1510 </li> 1511 <li> 1512 Removed false positive for removed default version of a symbol 1513 </li> 1514 <li> 1515 Adapted -dump-system option for MeeGo 1.2 Harmattan 1516 </li> 1517 <li> 1518 Fixed hanging execution on "#include "../../file.h" 1519 </li> 1520 <li> 1521 Fixed incorrect automatic include paths 1522 </li> 1523</ul> 1524<br/> 1525 1526<b>Version 1.23 (June 07, 2011)</b><br/> 1527<b>New Features</b> 1528<ul> 1529 <li> 1530 Added 42 compatibility checks (total: 83) 1531 </li> 1532 <li> 1533 Improved diagnostics of compatibility problems 1534 </li> 1535 <li> 1536 Opened an issue tracker 1537 </li> 1538 <li> 1539 Support for cross-compilers 1540 </li> 1541 <li> 1542 Ported to Mac OS X (10.5) and MS Windows (Xp, Vista, 7) 1543 </li> 1544 <li> 1545 Added a viewer of "real" v-table layouts for changed C++ classes 1546 </li> 1547 <li> 1548 Added functionality to check OS backward compatibility 1549 </li> 1550 <li> 1551 Supports for old-version dump formats (>=1.18) 1552 </li> 1553 <li> 1554 Separated versioning of dump formats 1555 </li> 1556 <li> 1557 Improved design of the compatibility report 1558 </li> 1559 <li> 1560 Improved performance 1561 </li> 1562 <li> 1563 Support for old GCC 3.4.4 1564 </li> 1565</ul> 1566<b>New Options</b> 1567<ul> 1568 <li> 1569 -cross-gcc: support for cross-compilers 1570 </li> 1571 <li> 1572 -sysroot: specify the alternative system root directory 1573 </li> 1574 <li> 1575 -dump-system, -cmp-systems: checking OS backward compatibility 1576 </li> 1577 <li> 1578 -use-dumps: check for compatibility using the intermediate dumping 1579 </li> 1580 <li> 1581 -show-retval: show symbol's return value type in the report 1582 </li> 1583 <li> 1584 -old-dumps: support for old-version dumps 1585 </li> 1586 <li> 1587 -test-dump: test for dumping functionality 1588 </li> 1589 <li> 1590 -report-path: change the location of output compatibility report 1591 </li> 1592 <li> 1593 -dump-path: change the location of output ABI dump 1594 </li> 1595 <li> 1596 -log1-path, -log2-path: change the location of output logs 1597 </li> 1598</ul> 1599<b>Bug Fixes</b> 1600<ul> 1601 <li> 1602 Reduced false positives 1603 </li> 1604 <li> 1605 Support for C-headers containing C++ keywords 1606 </li> 1607 <li> 1608 Corrected automatic include paths for headers 1609 </li> 1610</ul> 1611<br/> 1612 1613<b>Version 1.21.12 (April 29, 2011)</b><br/> 1614<b>Bug Fixes</b> 1615<ul> 1616 <li> 1617 Corrected automatic detection of include paths for header files 1618 </li> 1619 <li> 1620 Removed false positives with overridden virtual functions 1621 </li> 1622 <li> 1623 Corrected processing of typedef type names, fixed potential program hangup 1624 </li> 1625 <li> 1626 Added some missed problems relating to the return type changes of a function 1627 </li> 1628 <li> 1629 Corrected processing of a translation unit dump generated by modern GCC versions 1630 </li> 1631 <li> 1632 Corrected identifying of inline functions (using the -fkeep-inline-functions GCC option) 1633 </li> 1634 <li> 1635 Corrected parser for C++: analysis of const global data and functions inside a namespace 1636 </li> 1637 <li> 1638 Corrected names and v-table checks for template types 1639 </li> 1640 <li> 1641 Corrected checks for changes in enumerations 1642 </li> 1643 <li> 1644 Corrected ABI dumping and sorting of dumps 1645 </li> 1646 <li> 1647 Corrected analysis of added/removed virtual functions 1648 </li> 1649 <li> 1650 Corrected help message and documentation 1651 </li> 1652 <li> 1653 Documentation has been moved to "doc/" subdirectory 1654 </li> 1655 <li> 1656 Using File::Temp for storing temporary files 1657 </li> 1658 <li> 1659 Support for latest GCC 4.6.0 and old GCC v3.x series 1660 </li> 1661 <li> 1662 Fixed infinite loop finding the path for "which" command in the system 1663 </li> 1664 <li> 1665 Corrected distinction of descriptor kinds (headers, libraries, directories and XML-descriptors) 1666 </li> 1667 <li> 1668 Corrected processing of "include_paths" section of the XML-descriptor 1669 </li> 1670</ul> 1671<br/> 1672 1673<b>Version 1.21 (August 19, 2010)</b><br/> 1674<b>New Features</b> 1675<ul> 1676 <li> 1677 Added -check-implementation option: compare disassembled binary code to detect changes in the interface implementation 1678 </li> 1679 <li> 1680 Added -objects-only option: compare shared objects without header files 1681 </li> 1682 <li> 1683 Added -v1 and -v2 options: specify version number outside the descriptor 1684 </li> 1685 <li> 1686 Improved help message 1687 </li> 1688 <li> 1689 Improved performance of the tool 1690 </li> 1691 <li> 1692 Removed template instances and stdc++ interfaces from the report (C++) 1693 </li> 1694 <li> 1695 Added README.html and CHANGES.html to the package 1696 </li> 1697</ul> 1698<b>Bug Fixes</b> 1699<ul> 1700 <li> 1701 Corrected ABI compatibility report 1702 </li> 1703 <li> 1704 Corrected interface names and versions in the report 1705 </li> 1706 <li> 1707 Corrected number of problems in report summary 1708 </li> 1709 <li> 1710 Corrected ABI dump 1711 </li> 1712</ul> 1713<br/> 1714 1715<b>Version 1.20 (August 30, 2010)</b><br/> 1716<b>New Features</b> 1717<ul> 1718 <li> 1719 Added "defines" section of the library descriptor: this section allows to add defines at the headers compiling stage 1720 </li> 1721</ul> 1722<b>Bug Fixes</b> 1723<ul> 1724 <li> 1725 Corrected reports about added/withdrawn members in the structure types and added/withdrawn parameters 1726 </li> 1727 <li> 1728 Corrected report about added/withdrawn virtual functions if -headers_only option specified 1729 </li> 1730 <li> 1731 Corrected processing of header paths containing special characters 1732 </li> 1733</ul> 1734<br/> 1735 1736<b>Version 1.19 (July 22, 2010)</b><br/> 1737<b>New Features</b> 1738<ul> 1739 <li> 1740 Added -library_full_name option to display full library name in title of the report 1741 </li> 1742 <li> 1743 Added -relpath option to replace the {RELPATH} in the descriptor for ABI dumping 1744 </li> 1745 <li> 1746 Added "skip_libs" section of the library descriptor: this section contains a list of shared objects and/or directories with shared objects that should not be processed 1747 </li> 1748 <li> 1749 Improved performance on big libraries 1750 </li> 1751</ul> 1752<b>Bug Fixes</b> 1753<ul> 1754 <li> 1755 Removed duplicated problems from the report 1756 </li> 1757 <li> 1758 Corrected names of the template instances 1759 </li> 1760 <li> 1761 Corrected checking of reference type changes 1762 </li> 1763 <li> 1764 Corrected titles in the report 1765 </li> 1766 <li> 1767 Corrected size of some array types 1768 </li> 1769 <li> 1770 Corrected checking of added/withdrawn members in the structure types with reserved members 1771 </li> 1772 <li> 1773 Corrected checking of added/withdrawn parameters 1774 </li> 1775</ul> 1776<br/> 1777 1778<b>Version 1.18 (June 25, 2010)</b><br/> 1779<b>New Features</b> 1780<ul> 1781 <li> 1782 Added -relpath1 and -relpath2 options to replace the {RELPATH} in the descriptors; old option -relpath was removed 1783 </li> 1784 <li> 1785 Added "add_include_paths" section of the library descriptor: this section contains a list of include paths that should be added to the automatically detected include paths 1786 </li> 1787</ul> 1788<b>Bug Fixes</b> 1789<ul> 1790 <li> 1791 Added some previously missed compatibility problems in the report 1792 </li> 1793 <li> 1794 Corrected techniques for auto-detection of header file dependencies (include paths) 1795 </li> 1796 <li> 1797 Removed problems relating to the changes in the temporary header files 1798 </li> 1799 <li> 1800 Corrected interface signatures in the report 1801 </li> 1802 <li> 1803 Corrected checking of added/withdrawn parameters 1804 </li> 1805 <li> 1806 Corrected changes in the virtual tables of the libraries with symbol versioning 1807 </li> 1808 <li> 1809 Corrected checking of complex namespaces changes (C++) 1810 </li> 1811 <li> 1812 Added namespaces information to the ABI dump 1813 </li> 1814</ul> 1815<br/> 1816 1817<b>Version 1.17.2 (June 16, 2010)</b><br/> 1818<b>Bug Fixes</b> 1819<ul> 1820 <li> 1821 Fixed -separately option 1822 </li> 1823 <li> 1824 Corrected permissions of LICENSE file 1825 </li> 1826 <li> 1827 Corrected tool description 1828 </li> 1829</ul> 1830<br/> 1831 1832<b>Version 1.17.1 (June 09, 2010)</b><br/> 1833<b>New Features</b> 1834<ul> 1835 <li> 1836 Added -relpath option for adding prefixes to the paths in the library descriptor 1837 </li> 1838</ul> 1839<b>Bug Fixes</b> 1840<ul> 1841 <li> 1842 Corrected checking of added/withdrawn parameters 1843 </li> 1844 <li> 1845 Corrected processing of mixed C/C++ header sets 1846 </li> 1847 <li> 1848 Corrected checking of parameter type changes 1849 </li> 1850</ul> 1851<br/> 1852 1853<b>Version 1.17 (June 08, 2010)</b><br/> 1854<b>New Features</b> 1855<ul> 1856 <li> 1857 Visualizing of the serious changes (added/withdrawn parameters) in the interface signature 1858 </li> 1859 <li> 1860 Recursive analysis of constant changes 1861 </li> 1862 <li> 1863 Separated stderr and stdout streams of the tool 1864 </li> 1865 <li> 1866 Added "skip_constants" section of the library descriptor to skip checking of some constants 1867 </li> 1868 <li> 1869 Added -params option to add function parameter names to the report 1870 </li> 1871</ul> 1872<b>Bug Fixes</b> 1873<ul> 1874 <li> 1875 Corrected analysis of virtual table layout changes 1876 </li> 1877 <li> 1878 Corrected analysis of parameter type changes 1879 </li> 1880 <li> 1881 Corrected complex array type names 1882 </li> 1883 <li> 1884 Corrected typedef names 1885 </li> 1886 <li> 1887 Corrected analysis of structure layout changes 1888 </li> 1889 <li> 1890 Fixed tool hanging on some C++ headers (with many namespaces) 1891 </li> 1892 <li> 1893 Corrected analysis of Glibc headers 1894 </li> 1895 <li> 1896 Corrected analysis of library language changes (if added some C++ headers) 1897 </li> 1898 <li> 1899 Corrected descriptions of some compatibility problems 1900 </li> 1901 <li> 1902 Corrected analysis of added/withdrawn parameters in C headers 1903 </li> 1904</ul> 1905<br/> 1906 1907<b>Version 1.16 (May 05, 2010)</b><br/> 1908<b>New Features</b> 1909<ul> 1910 <li> 1911 Added -strict option for treating all compatibility warnings as problems 1912 </li> 1913 <li> 1914 Added -dumpversion option for printing tool version and don't do anything else 1915 </li> 1916 <li> 1917 Ignoring hidden .svn, .git, .bzr, .hg, and CVS directories 1918 </li> 1919 <li> 1920 Improved header files sorting for protecting from compilation errors on the intermediate phase of temporary header file compilation 1921 </li> 1922 <li> 1923 Improved techniques for auto-detection of header file dependencies (include paths) 1924 </li> 1925 <li> 1926 Ignoring problems related to changes of constants (defines) describing library version (*_VERSION_*, *_COPYRIGHT_* and other) 1927 </li> 1928 <li> 1929 New internal test cases 1930 </li> 1931</ul> 1932<b>Bug Fixes</b> 1933<ul> 1934 <li> 1935 Checking of some previously missed C++ namespaces 1936 </li> 1937 <li> 1938 Removed hidden "void const** __vtt_parm" parameters from signatures of some constructors 1939 </li> 1940 <li> 1941 Corrected dumping of C++ classes ABI 1942 </li> 1943 <li> 1944 Corrected checking of pure virtual destructors 1945 </li> 1946 <li> 1947 Removed unnecessary built-in constants from the ABI dump 1948 </li> 1949</ul> 1950<br/> 1951 1952<b>Version 1.15 (March 26, 2010)</b><br/> 1953<b>New Features</b> 1954<ul> 1955 <li> 1956 The license was changed to dual GNU GPL and LGPL 1957 </li> 1958 <li> 1959 Added "skip_headers" section of the library descriptor 1960 </li> 1961</ul> 1962<b>Bug Fixes</b> 1963<ul> 1964 <li> 1965 Corrected processing of "include_paths" section of the library descriptor 1966 </li> 1967 <li> 1968 Corrected processing of relative paths in the "headers" and "include_paths" sections of the descriptor 1969 </li> 1970 <li> 1971 Directory with temporary files renamed from "temp" to hidden ".tmp_dir" 1972 </li> 1973 <li> 1974 Corrected processing of shared object dependencies 1975 </li> 1976 <li> 1977 Corrected processing of some previously missed functions and conversion operators in C++ 1978 </li> 1979 <li> 1980 Corrected internal test suite 1981 </li> 1982 <li> 1983 Corrected some error messages 1984 </li> 1985</ul> 1986<br/> 1987 1988<b>Version 1.14 (March 03, 2010)</b><br/> 1989<b>New Features</b> 1990<ul> 1991 <li> 1992 Added techniques to auto-detect dependencies of a header file (include paths); providing of "include_paths" section of the descriptor is not necessary for now 1993 </li> 1994 <li> 1995 Ported to FreeBSD and Haiku 1996 </li> 1997 <li> 1998 Added check for gcc/g++ version (>=3.0.0) 1999 </li> 2000 <li> 2001 Added sorting of interface problems by namespace in the report (C++) 2002 </li> 2003 <li> 2004 Improved internal test suite 2005 </li> 2006 <li> 2007 Added log for describing tool actions and occurred errors 2008 </li> 2009 <li> 2010 Added exit error code (high/medium risk for ABI break) 2011 </li> 2012</ul> 2013<b>Bug Fixes</b> 2014<ul> 2015 <li> 2016 Corrected ABI dumping 2017 </li> 2018 <li> 2019 Corrected styles of the report 2020 </li> 2021</ul> 2022<br/> 2023 2024<b>Version 1.13 (February 16, 2010)</b><br/> 2025<b>New Features</b> 2026<ul> 2027 <li> 2028 Added -version option 2029 </li> 2030 2031</ul> 2032<b>Bug Fixes</b> 2033<ul> 2034 <li> 2035 Corrected processing of tab characters in the descriptor 2036 </li> 2037 <li> 2038 Corrected help message 2039 </li> 2040 <li> 2041 Corrected descriptor template structure 2042 </li> 2043 <li> 2044 Corrected error and warning messages 2045 </li> 2046 <li> 2047 Corrected processing of shared object dependencies 2048 </li> 2049</ul> 2050<br/> 2051 2052<b>Version 1.12 (December 04, 2009)</b><br/> 2053<b>New Features</b> 2054<ul> 2055 <li> 2056 New help message 2057 </li> 2058 <li> 2059 Highlighting of [in-charge], [not-in-charge] constructors and destructors in the report was improved 2060 </li> 2061 <li> 2062 New option -time for enabling time measurements 2063 </li> 2064 <li> 2065 New internal test cases 2066 </li> 2067</ul> 2068<b>Bug Fixes</b> 2069<ul> 2070 <li> 2071 Corrected classification of compatibility problems in the report 2072 </li> 2073 <li> 2074 Reduced priority of problems related to changes in a method's object 2075 </li> 2076 <li> 2077 Corrected complex template type names 2078 </li> 2079</ul> 2080<br/> 2081 2082<b>Version 1.11 (November 10, 2009)</b><br/> 2083<b>New Features</b> 2084<ul> 2085 <li> 2086 Added -app option to check portability of applications to the new library version 2087 </li> 2088 <li> 2089 Memory usage decreased twice 2090 </li> 2091</ul> 2092<b>Bug Fixes</b> 2093<ul> 2094 <li> 2095 Corrected checking of added middle structure members 2096 </li> 2097 <li> 2098 Corrected names of template types (with intrinsic, bool and string parameters) 2099 </li> 2100 <li> 2101 Corrected highlighting of function signatures in the report 2102 </li> 2103</ul> 2104<br/> 2105 2106<b>Version 1.10 (November 02, 2009)</b><br/> 2107<b>New Features</b> 2108<ul> 2109 <li> 2110 Checking added/dropped function parameters (C language only) 2111 </li> 2112 <li> 2113 Improved design of the report 2114 </li> 2115 <li> 2116 New internal test cases 2117 </li> 2118</ul> 2119<b>Bug Fixes</b> 2120<ul> 2121 <li> 2122 Incorrect checking of redefined virtual functions and differences in parameter types 2123 </li> 2124 <li> 2125 More careful checking of withdrawn interfaces using shared library dependencies 2126 </li> 2127</ul> 2128<br/> 2129 2130<b>Version 1.9 (October 12, 2009)</b><br/> 2131<b>Improvements</b> 2132<ul> 2133 <li> 2134 Improved design of ABI compliance report 2135 </li> 2136 <li> 2137 Improved algorithms of checking parameter/field type change 2138 </li> 2139 <li> 2140 New internal test cases 2141 </li> 2142</ul> 2143<b>Bug Fixes</b> 2144<ul> 2145 <li> 2146 Fixed incorrect names of typedefs and function pointer types 2147 </li> 2148 <li> 2149 Checking of some previously missed C++ functions 2150 </li> 2151 <li> 2152 Removed some false positives from the report (for anon-types) 2153 </li> 2154</ul> 2155<br/> 2156 2157<b>Version 1.8 (September 29, 2009)</b><br/> 2158<b>New Features</b> 2159<ul> 2160 <li> 2161 Added ability to specify a file with a list of interfaces that should be checked 2162 </li> 2163</ul> 2164<b>Bug Fixes</b> 2165<ul> 2166 <li> 2167 Size of ABI info dumps have been reduced through removing of unnecessary information 2168 </li> 2169 <li> 2170 Incorrect names of template instances and function pointer types 2171 </li> 2172 <li> 2173 Incorrect positions of function parameters in the "Interface Problems" section of the report 2174 </li> 2175 <li> 2176 Removed some false positives from the report 2177 </li> 2178 <li> 2179 Incorrect handling of special symbols in the paths to header files and shared objects 2180 </li> 2181</ul> 2182<br/> 2183 2184<b>Version 1.7 (September 11, 2009)</b><br/> 2185<b>New Features</b> 2186<ul> 2187 <li> 2188 Checking of incorrect symbols versioning 2189 </li> 2190 <li> 2191 Checking the values of defines (constants) 2192 </li> 2193 <li> 2194 Ability to check header files without shared objects; It is easy to run, but may provide a low quality report with a lot of false positives and without detecting of added/withdrawn interfaces 2195 </li> 2196 <li> 2197 Number of checked interfaces and data types in the report 2198 </li> 2199 <li> 2200 Added tests for checking new features 2201 </li> 2202</ul> 2203<b>Bug Fixes</b> 2204<ul> 2205 <li> 2206 Incorrect processing of duplicated headers in the input set (headers with the same name but different paths) 2207 </li> 2208 <li> 2209 Incorrect header files include order 2210 </li> 2211 <li> 2212 Sorting in the ABI dumps 2213 </li> 2214 <li> 2215 Incorrect processing of redefined virtual methods 2216 </li> 2217 <li> 2218 Incorrect processing of anon types 2219 </li> 2220 <li> 2221 Absence of some necessary information about C++ functions in the ABI dumps 2222 </li> 2223</ul> 2224<br/> 2225 2226<b>Version 1.6 (August 31, 2009)</b><br/> 2227<b>Bug Fixes</b> 2228<ul> 2229 <li> 2230 Corrected processing of relative paths in the library descriptor 2231 </li> 2232 <li> 2233 Display machine hardware name instead of processor type in the report 2234 </li> 2235 <li> 2236 Fixed grammar/spelling errors 2237 </li> 2238 <li> 2239 Renamed "internal_interfaces" section of the library descriptor to "skip_interfaces" 2240 </li> 2241 <li> 2242 Cosmetic changes in the code 2243 </li> 2244</ul> 2245<br/> 2246 2247<b>Version 1.5 (August 25, 2009)</b><br/> 2248<b>Bug Fixes</b> 2249<ul> 2250 <li> 2251 Absent information about opaque types and internal interfaces has been added to the ABI dump 2252 </li> 2253 <li> 2254 Fixed style of the report 2255 </li> 2256 <li> 2257 Fixed grammar/spelling 2258 </li> 2259 <li> 2260 Renamed "internal_functions" section of the library descriptor to "internal_interfaces" 2261 </li> 2262 <li> 2263 Renamed outptu ABI dump to "*.abi.tar.gz" (previously it was "*.info.tar.gz") 2264 </li> 2265 <li> 2266 Corrected interface names in the report (for -separately option) 2267 </li> 2268</ul> 2269<br/> 2270 2271<b>Version 1.4 (August 18, 2009)</b><br/> 2272<b>Improvements</b> 2273<ul> 2274 <li> 2275 Added ability to check ABI compliance of library versions located on different machines 2276 </li> 2277 <li> 2278 Header files checking mode by default has been changed: checking all header files together instead of separate checking 2279 </li> 2280</ul> 2281<b>Bug Fixes</b> 2282<ul> 2283 <li> 2284 Incorrect description for affected interfaces 2285 </li> 2286 <li> 2287 Incorrect virtual table checking 2288 </li> 2289</ul> 2290<br/> 2291 2292<b>Version 1.3 (August 14, 2009)</b><br/> 2293<b>Bug Fixes</b> 2294<ul> 2295 <li> 2296 Incorrect number of binary compatibility problems in the report summary 2297 </li> 2298 <li> 2299 Incorrect design of problem descriptions in the report 2300 </li> 2301</ul> 2302<br/> 2303 2304<b>Version 1.1 (August 06, 2009)</b><br/> 2305<b>Improvements</b> 2306<ul> 2307 <li> 2308 Design of the report has been greatly improved 2309 </li> 2310</ul> 2311<br/> 2312 2313<b>Version 1.0 (July 31, 2009)</b><br/> 2314Initial version of the tool. 2315 2316<div class="footer"> 2317 get the source code on GitHub : <a href="https://github.com/lvc/abi-compliance-checker">lvc/abi-compliance-checker</a> 2318</div> 2319 2320<br/> 2321<br/> 2322 2323</div> 2324</body> 2325</html> 2326