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/> 2314 Initial 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