xref: /petsc/lib/petsc/bin/maint/abi-compliance-checker/doc/Changelog.html (revision e8b6250908b962c387f7ab2e7b38caaa661b5fa1)
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 &lt; 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&lt;N&gt;:public A&lt;N-1&gt;
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 &lt;= 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