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