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 &lt; 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&lt;N&gt;:public A&lt;N-1&gt; 
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 &lt;= 4.2 
877    </li>
878    <li>
879        Added "throw" and "weak" attributes of methods to ABI dump 
880    </li>
881</ul>
882<b>New Options</b>
883<ul>
884    <li>
885        -extra-info
886    </li>
887    <li>
888        -extra-dump
889    </li>
890    <li>
891        -force
892    </li>
893</ul>
894<b>Bug Fixes</b>
895<ul>
896    <li>
897        Corrected order of user-defined include paths 
898    </li>
899    <li>
900        Corrected internal C++ mangler 
901    </li>
902    <li>
903        Removed false positives of the "Parameter_Type_Format" rule 
904    </li>
905    <li>
906        Other fixes 
907    </li>
908</ul>
909<b>Other</b>
910<ul>
911    <li>
912        Extended test suite 
913    </li>
914    <li>
915        Code cleaning 
916    </li>
917    <li>
918        Docs cleaning 
919    </li>
920</ul>
921<br/>
922
923<b>Version 1.98.4 (October 18, 2012)</b><br/>
924<b>Improvements</b>
925<ul>
926    <li>
927        Optimization of memory usage (5%-10%) and performance (5%-10%) 
928    </li>
929    <li>
930        Added "Used Reserved Field" rule of binary compatibility analysis 
931    </li>
932    <li>
933        Improved design of the operating system compatibility report 
934    </li>
935    <li>
936        Added meta descriptors for 334 libraries 
937    </li>
938</ul>
939<b>Bug Fixes</b>
940<ul>
941    <li>
942        Fixed an issue with diagnostics of added virtual functions 
943    </li>
944    <li>
945        Corrected the list of functions affected by the compatibility problem 
946    </li>
947    <li>
948        Avoid false alarm about removed function if this function became macro (SC) 
949    </li>
950    <li>
951        Corrected parser of C header files 
952    </li>
953    <li>
954        Other fixes 
955    </li>
956</ul>
957<b>Other</b>
958<ul>
959    <li>
960        Extended test suite 
961    </li>
962    <li>
963        Code cleaning 
964    </li>
965</ul>
966<br/>
967
968<b>Version 1.98.3 (July 19, 2012)</b><br/>
969<b>Improvements</b>
970<ul>
971    <li>
972        Implemented a model of calling conventions on x86 and x86_64 
973    </li>
974    <li>
975        Improved diagnostics of changes in function parameters and return value (distribution on registers and stack) 
976    </li>
977</ul>
978<b>Bug Fixes</b>
979<ul>
980    <li>
981       Corrected parser of C++ header files to detect non-member functions inside namespaces 
982    </li>
983</ul>
984<b>Other</b>
985<ul>
986    <li>
987        Added requirement for Ctags (5.8 or newer) 
988    </li>
989    <li>
990        Code cleaning 
991    </li>
992</ul>
993<br/>
994
995<b>Version 1.98.2 (June 26, 2012)</b><br/>
996<b>Improvements</b>
997<ul>
998    <li>
999        Support for reading ABI dumps in XML format 
1000    </li>
1001    <li>
1002        Automatic enabling of c++0x support if needed to compile headers 
1003    </li>
1004</ul>
1005<b>Bug Fixes</b>
1006<ul>
1007    <li>
1008        Corrected XML and Perl (default) formats of ABI dumps 
1009    </li>
1010    <li>
1011        Improved support for old ABI dumps 
1012    </li>
1013    <li>
1014        Improved -dump-system option 
1015    </li>
1016</ul>
1017<b>Other</b>
1018<ul>
1019    <li>
1020        Improved documentation 
1021    </li>
1022</ul>
1023<br/>
1024
1025<b>Version 1.98.1 (June 18, 2012)</b><br/>
1026<b>Bug Fixes</b>
1027<ul>
1028    <li>
1029        Removed symbols marked as LOCAL in a shared library from lists of added/removed symbols in source-compatibility report 
1030    </li>
1031    <li>
1032        Fixed a false positive with some removed extern "C" symbols in source-compatibility report 
1033    </li>
1034    <li>
1035        Fixed a bug with removed debug/ directory when using -use-dumps and -debug options together 
1036    </li>
1037    <li>
1038        Added support for "skip_including" section of target system XML descriptors (modules/Targets) used by -dump-system option 
1039    </li>
1040    <li>
1041        Extended XML ABI dumps by size attribute of library symbols 
1042    </li>
1043</ul>
1044<br/>
1045
1046<b>Version 1.98.0 (June 14, 2012)</b><br/>
1047<b>New Features</b>
1048<ul>
1049    <li>
1050        Implemented XML format of ABI dumps 
1051    </li>
1052</ul>
1053<b>New Options</b>
1054<ul>
1055    <li>
1056        -dump-format 
1057    </li>
1058</ul>
1059<b>Bug Fixes</b>
1060<ul>
1061    <li>
1062        Improved support for old ABI dumps 
1063    </li>
1064    <li>
1065        Other fixes 
1066    </li>
1067</ul>
1068<br/>
1069
1070<b>Version 1.97.8 (June 08, 2012)</b><br/>
1071<b>Improvements</b>
1072<ul>
1073    <li>
1074        Redesigned format of ABI dump 
1075    </li>
1076    <li>
1077        Optimization of memory usage (5%-10%) and performance (5%-10%) 
1078    </li>
1079    <li>
1080        Improved support for GCC 4.0-4.5 
1081    </li>
1082    <li>
1083        Added "add_namespaces" section of the XML descriptor 
1084    </li>
1085</ul>
1086<b>New Options</b>
1087<ul>
1088    <li>
1089        -open
1090    </li>
1091    <li>
1092        -sort
1093    </li>
1094</ul>
1095<b>Bug Fixes</b>
1096<ul>
1097    <li>
1098        Improved support for old ABI dumps 
1099    </li>
1100    <li>
1101        Fixed a bug with auto-detection of include paths when comparing two XML descriptors 
1102    </li>
1103    <li>
1104        Corrected output of -debug option 
1105    </li>
1106    <li>
1107        Corrected -dump-system and -cmp-systems options 
1108    </li>
1109    <li>
1110        Other fixes 
1111    </li>
1112</ul>
1113<b>Other</b>
1114<ul>
1115    <li>
1116        Code cleaning 
1117    </li>
1118</ul>
1119<br/>
1120
1121<b>Version 1.97.5 (May 14, 2012)</b><br/>
1122<b>Improvements</b>
1123<ul>
1124    <li>
1125        Extended ABI dumps by source-level type declarations 
1126    </li>
1127    <li>
1128        Improved support for old ABI dumps 
1129    </li>
1130    <li>
1131        Optimization of memory usage (20%-30%) and performance (10%-20%) 
1132    </li>
1133</ul>
1134<b>Bug Fixes</b>
1135<ul>
1136    <li>
1137        Corrected auto-detection of a set of target headers to check/dump in -headers-only mode 
1138    </li>
1139    <li>
1140        Other fixes 
1141    </li>
1142</ul>
1143<b>Other</b>
1144<ul>
1145    <li>
1146        Extended regression test suite 
1147    </li>
1148    <li>
1149        Code cleaning 
1150    </li>
1151</ul>
1152<br/>
1153
1154<b>Version 1.97.4 (April 16, 2012)</b><br/>
1155<b>New Features</b>
1156<ul>
1157    <li>
1158        Added 16 new binary-compatibility rules 
1159    </li>
1160    <li>
1161        Added 17 new source-compatibility rules 
1162    </li>
1163</ul>
1164<b>Bug Fixes</b>
1165<ul>
1166    <li>
1167        Added some missed typedef types to function signatures 
1168    </li>
1169</ul>
1170<b>Other</b>
1171<ul>
1172    <li>
1173        Improved support for old ABI dumps 
1174    </li>
1175    <li>
1176        Support for GCC 4.7 
1177    </li>
1178    <li>
1179        Extended regression test suite 
1180    </li>
1181    <li>
1182        Code cleaning 
1183    </li>
1184</ul>
1185<br/>
1186
1187<b>Version 1.97.3 (April 03, 2012)</b><br/>
1188<b>Completed Tasks</b>
1189<ul>
1190    <li>
1191        Implement source-level compatibility checks
1192    </li>
1193    <li>
1194        Implement 2.0 architecture
1195    </li>
1196</ul>
1197<b>New Features</b>
1198<ul>
1199    <li>
1200        Added -browse=PROG option 
1201    </li>
1202    <li>
1203        Added -xml alias option for --report-format=xml
1204    </li>
1205    <li>
1206        Added -binary option to generate binary-compatibility report only 
1207    </li>
1208    <li>
1209        Added -source option to generate source-compatibility report only 
1210    </li>
1211    <li>
1212        Added -bin-report-path option: path to binary-compatibility report 
1213    </li>
1214    <li>
1215        Added -src-report-path option: path to source-compatibility report 
1216    </li>
1217</ul>
1218<b>Other Features</b>
1219<ul>
1220    <li>
1221        Improved debug mode (-debug) 
1222    </li>
1223    <li>
1224        Improved mark-up of the HTML report 
1225    </li>
1226    <li>
1227        Improved mark-up of the HTML report 
1228    </li>
1229    <li>
1230        Improved support for old ABI dumps 
1231    </li>
1232</ul>
1233<b>Bug Fixes</b>
1234<ul>
1235    <li>
1236        Corrected ABI dumps 
1237    </li>
1238</ul>
1239<br/>
1240
1241<b>Version 1.96.8 (February 17, 2012)</b><br/>
1242<b>Completed Tasks</b>
1243<ul>
1244    <li>
1245        Implement XML format of compatibility report
1246    </li>
1247    <li>
1248        Testing on MeeGo 1.2 Harmattan Beta2
1249    </li>
1250</ul>
1251<b>New Features</b>
1252<ul>
1253    <li>
1254        Added hidden statistics line to compatibility report for operating systems
1255    </li>
1256    <li>
1257        Added -headers-list option
1258    </li>
1259    <li>
1260        Added -lang option
1261    </li>
1262    <li>
1263        Support for symbolic links in /usr/include and /usr/lib
1264    </li>
1265    <li>
1266        Added "skip_include_paths" section of the XML-descriptor 
1267    </li>
1268    <li>
1269        Added "skip_including" section of the XML-descriptor
1270    </li>
1271    <li>
1272        Added -list-affected option to create plain list of incompatible symbols
1273    </li>
1274    <li>
1275        Added -quiet option to print all errors and warnings to the log file instead of stderr and stdout
1276    </li>
1277    <li>
1278        Added -stdout option to print results to stdout
1279    </li>
1280    <li>
1281        Added an option to check binary compatibility in the extended sense
1282    </li>
1283    <li>
1284        Improve diagnostic messages for added base classes with virtual functions
1285    </li>
1286    <li>
1287        Added -update option to installer
1288    </li>
1289    <li>
1290        Added a relative default directory to locate modules after installation
1291    </li>
1292    <li>
1293        Compatibility rate = (high+1/2*medium+1/4*low) / number of symbols
1294    </li>
1295</ul>
1296<b>Bug Fixes</b>
1297<ul>
1298    <li>
1299        Some symbols with extern "C" linkage are missed in -headers-only mode
1300    </li>
1301    <li>
1302        Changes in global data are not detected under Windows
1303    </li>
1304    <li>
1305        False negative: change global data to be "const"
1306    </li>
1307    <li>
1308        Removed middle enumeration value is reported as renamed
1309    </li>
1310    <li>
1311        False positive: change parameter type from "const int" to "int"
1312    </li>
1313    <li>
1314        Support for old ABI dump format of ACC 1.21.6
1315    </li>
1316    <li>
1317        The tool doesn't search for included headers in /usr/lib/qt4/include/
1318    </li>
1319    <li>
1320        False Negative: Header is incompatible with itself
1321    </li>
1322    <li>
1323        Check libstdc++ in -headers-only mode
1324    </li>
1325    <li>
1326        Restrict checked header files in the -headers-only mode
1327    </li>
1328    <li>
1329        Problem with mangled C++ functions using old ABI dump formats in -headers-only mode
1330    </li>
1331    <li>
1332        Incorrect size of method pointer in ABI dumps
1333    </li>
1334    <li>
1335        False negative: add/remove "register" modifier of the parameter
1336    </li>
1337    <li>
1338        Incorrect WORD size when using old ABI dump format
1339    </li>
1340    <li>
1341        Conflict of a static method with a function of the same name in the ABI dump
1342    </li>
1343    <li>
1344        Missed right bracket of "func-ptr" type in HTML report
1345    </li>
1346    <li>
1347        Incorrect report for overridden methods
1348    </li>
1349    <li>
1350        False negative: override a virtual that doesn't come from a primary base
1351    </li>
1352    <li>
1353        False negative: change a function parameter to be "restrict"
1354    </li>
1355    <li>
1356        False negative: change a field to be "volatile"
1357    </li>
1358    <li>
1359        False negative: change "const"-ness of a return value 
1360    </li>
1361    <li>
1362        False negative: change "volatile" attribute of a method
1363    </li>
1364    <li>
1365        False positive: removed symbols with inline virtual prototype in the leaf class with default constructor
1366    </li>
1367</ul>
1368<br/>
1369
1370<b>Version 1.94 (September 09, 2011)</b><br/>
1371<b>Completed Tasks</b>
1372<ul>
1373    <li>
1374        Separated regression tests into the module
1375    </li>
1376</ul>
1377<b>New Features</b>
1378<ul>
1379    <li>
1380        Added Makefile.pl installer
1381    </li>
1382</ul>
1383<br/>
1384
1385<b>Version 1.93.8 (September 08, 2011)</b><br/>
1386<b>Completed Tasks</b>
1387<ul>
1388    <li>
1389        Separated rules DB
1390    </li>
1391    <li>
1392        Testing on Symbian SDK
1393    </li>
1394    <li>
1395        Testing on Windows SDK
1396    </li>
1397    <li>
1398        Support for OS3000
1399    </li>
1400</ul>
1401<b>New Features</b>
1402<ul>
1403    <li>
1404        SONAME change in the OS comparison table
1405    </li>
1406    <li>
1407        Added a compatibility percentage to the OS comparison table
1408    </li>
1409    <li>
1410        Added -debug option
1411    </li>
1412    <li>
1413        Added listing of symbols in OS comparison table
1414    </li>
1415    <li>
1416        Use zip format of dumps in Windows
1417    </li>
1418    <li>
1419        Added -dump-system descriptor.xml option
1420    </li>
1421    <li>
1422        Analysis of static libraries 
1423    </li>
1424    <li>
1425        Added -sysinfo option
1426    </li>
1427    <li>
1428        Added -component option
1429    </li>
1430    <li>
1431        Added -nostdinc option 
1432    </li>
1433    <li>
1434        Added "weakly"- and "almost"-compatible verdicts
1435    </li>
1436    <li>
1437         Added "skip_namespaces" section of the library XML-descriptor 
1438    </li>
1439    <li>
1440        Search for modules/ directory in the system
1441    </li>
1442</ul>
1443<b>Bug Fixes</b>
1444<ul>
1445    <li>
1446        Missed typedefs in the ABI dump using GCC 4.4.1
1447    </li>
1448    <li>
1449        False negative: change enum member value from zero to non-zero
1450    </li>
1451    <li>
1452        False negative: interchange the positions of two fields in a structure
1453    </li>
1454    <li>
1455        False positive: add a field instead of padding fields
1456    </li>
1457    <li>
1458        Problems with "copied" classes
1459    </li>
1460    <li>
1461        Changes in "private" fields
1462    </li>
1463    <li>
1464        Illegal modulus zero at abi-compliance-checker.pl
1465    </li>
1466    <li>
1467         Incorrect order of include paths
1468    </li>
1469    <li>
1470        Change constness of a class method
1471    </li>
1472    <li>
1473        False negative: change "struct Type" to "union Type"
1474    </li>
1475    <li>
1476        Change parameter type from "..." to "int"
1477    </li>
1478    <li>
1479        Remove/add "const"-qualifier of a method
1480    </li>
1481    <li>
1482        False negative: renamed parameters
1483    </li>
1484</ul>
1485<b>Other</b>
1486<ul>
1487    <li>
1488        Improved debug mode
1489    </li>
1490</ul>
1491<br/>
1492
1493<b>Version 1.23.5 (July 01, 2011)</b><br/>
1494<b>Bug Fixes</b>
1495<ul>
1496    <li>
1497        Corrected exit codes: 0 - compatible, 1 - incompatible, 2 - error, ...
1498    </li>
1499    <li>
1500        Corrected diagnostic messages for C++ functions with changed signature
1501    </li>
1502    <li>
1503        Fixed regression with C++ non-member functions
1504    </li>
1505    <li>
1506        Removed false positive with overridden private methods
1507    </li>
1508    <li>
1509        Corrected functionality for checking binary compatibility of operating systems
1510    </li>
1511    <li>
1512        Removed false positive for removed default version of a symbol
1513    </li>
1514    <li>
1515        Adapted -dump-system option for MeeGo 1.2 Harmattan
1516    </li>
1517    <li>
1518        Fixed hanging execution on "#include "/file.h"
1519    </li>
1520    <li>
1521        Fixed incorrect automatic include paths
1522    </li>
1523</ul>
1524<br/>
1525
1526<b>Version 1.23 (June 07, 2011)</b><br/>
1527<b>New Features</b>
1528<ul>
1529    <li>
1530        Added 42 compatibility checks (total: 83) 
1531    </li>
1532    <li>
1533        Improved diagnostics of compatibility problems 
1534    </li>
1535    <li>
1536        Opened an issue tracker 
1537    </li>
1538    <li>
1539        Support for cross-compilers 
1540    </li>
1541    <li>
1542        Ported to Mac OS X (10.5) and MS Windows (Xp, Vista, 7) 
1543    </li>
1544    <li>
1545        Added a viewer of "real" v-table layouts for changed C++ classes 
1546    </li>
1547    <li>
1548        Added functionality to check OS backward compatibility 
1549    </li>
1550    <li>
1551        Supports for old-version dump formats (>=1.18) 
1552    </li>
1553    <li>
1554        Separated versioning of dump formats 
1555    </li>
1556    <li>
1557        Improved design of the compatibility report 
1558    </li>
1559    <li>
1560        Improved performance 
1561    </li>
1562    <li>
1563        Support for old GCC 3.4.4 
1564    </li>
1565</ul>
1566<b>New Options</b>
1567<ul>
1568    <li>
1569        -cross-gcc: support for cross-compilers 
1570    </li>
1571    <li>
1572        -sysroot: specify the alternative system root directory 
1573    </li>
1574    <li>
1575        -dump-system, -cmp-systems: checking OS backward compatibility 
1576    </li>
1577    <li>
1578        -use-dumps: check for compatibility using the intermediate dumping 
1579    </li>
1580    <li>
1581        -show-retval: show symbol's return value type in the report 
1582    </li>
1583    <li>
1584        -old-dumps: support for old-version dumps 
1585    </li>
1586    <li>
1587        -test-dump: test for dumping functionality 
1588    </li>
1589    <li>
1590        -report-path: change the location of output compatibility report 
1591    </li>
1592    <li>
1593        -dump-path: change the location of output ABI dump 
1594    </li>
1595    <li>
1596        -log1-path, -log2-path: change the location of output logs 
1597    </li>
1598</ul>
1599<b>Bug Fixes</b>
1600<ul>
1601    <li>
1602        Reduced false positives 
1603    </li>
1604    <li>
1605        Support for C-headers containing C++ keywords 
1606    </li>
1607    <li>
1608        Corrected automatic include paths for headers 
1609    </li>
1610</ul>
1611<br/>
1612
1613<b>Version 1.21.12 (April 29, 2011)</b><br/>
1614<b>Bug Fixes</b>
1615<ul>
1616    <li>
1617        Corrected automatic detection of include paths for header files
1618    </li>
1619    <li>
1620        Removed false positives with overridden virtual functions
1621    </li>
1622    <li>
1623        Corrected processing of typedef type names, fixed potential program hangup
1624    </li>
1625    <li>
1626        Added some missed problems relating to the return type changes of a function
1627    </li>
1628    <li>
1629        Corrected processing of a translation unit dump generated by modern GCC versions
1630    </li>
1631    <li>
1632        Corrected identifying of inline functions (using the -fkeep-inline-functions GCC option)
1633    </li>
1634    <li>
1635        Corrected parser for C++: analysis of const global data and functions inside a namespace
1636    </li>
1637    <li>
1638        Corrected names and v-table checks for template types
1639    </li>
1640    <li>
1641        Corrected checks for changes in enumerations
1642    </li>
1643    <li>
1644        Corrected ABI dumping and sorting of dumps
1645    </li>
1646    <li>
1647        Corrected analysis of added/removed virtual functions
1648    </li>
1649    <li>
1650        Corrected help message and documentation
1651    </li>
1652    <li>
1653        Documentation has been moved to "doc/" subdirectory
1654    </li>
1655    <li>
1656        Using File::Temp for storing temporary files
1657    </li>
1658    <li>
1659        Support for latest GCC 4.6.0 and old GCC v3.x series
1660    </li>
1661    <li>
1662        Fixed infinite loop finding the path for "which" command in the system
1663    </li>
1664    <li>
1665        Corrected distinction of descriptor kinds (headers, libraries, directories and XML-descriptors)
1666    </li>
1667    <li>
1668        Corrected processing of "include_paths" section of the XML-descriptor
1669    </li>
1670</ul>
1671<br/>
1672
1673<b>Version 1.21 (August 19, 2010)</b><br/>
1674<b>New Features</b>
1675<ul>
1676    <li>
1677        Added -check-implementation option: compare disassembled binary code to detect changes in the interface implementation
1678    </li>
1679    <li>
1680        Added -objects-only option: compare shared objects without header files
1681    </li>
1682    <li>
1683        Added -v1 and -v2 options: specify version number outside the descriptor
1684    </li>
1685    <li>
1686        Improved help message
1687    </li>
1688    <li>
1689        Improved performance of the tool
1690    </li>
1691    <li>
1692        Removed template instances and stdc++ interfaces from the report (C++)
1693    </li>
1694    <li>
1695        Added README.html and CHANGES.html to the package
1696    </li>
1697</ul>
1698<b>Bug Fixes</b>
1699<ul>
1700    <li>
1701        Corrected ABI compatibility report
1702    </li>
1703    <li>
1704        Corrected interface names and versions in the report
1705    </li>
1706    <li>
1707        Corrected number of problems in report summary
1708    </li>
1709    <li>
1710        Corrected ABI dump
1711    </li>
1712</ul>
1713<br/>
1714
1715<b>Version 1.20 (August 30, 2010)</b><br/>
1716<b>New Features</b>
1717<ul>
1718    <li>
1719        Added "defines" section of the library descriptor: this section allows to add defines at the headers compiling stage
1720    </li>
1721</ul>
1722<b>Bug Fixes</b>
1723<ul>
1724    <li>
1725        Corrected reports about added/withdrawn members in the structure types and added/withdrawn parameters
1726    </li>
1727    <li>
1728        Corrected report about added/withdrawn virtual functions if -headers_only option specified
1729    </li>
1730    <li>
1731        Corrected processing of header paths containing special characters
1732    </li>
1733</ul>
1734<br/>
1735
1736<b>Version 1.19 (July 22, 2010)</b><br/>
1737<b>New Features</b>
1738<ul>
1739    <li>
1740        Added -library_full_name option to display full library name in title of the report
1741    </li>
1742    <li>
1743        Added -relpath option to replace the {RELPATH} in the descriptor for ABI dumping
1744    </li>
1745    <li>
1746        Added "skip_libs" section of the library descriptor: this section contains a list of shared objects and/or directories with shared objects that should not be processed
1747    </li>
1748    <li>
1749        Improved performance on big libraries
1750    </li>
1751</ul>
1752<b>Bug Fixes</b>
1753<ul>
1754    <li>
1755        Removed duplicated problems from the report
1756    </li>
1757    <li>
1758        Corrected names of the template instances
1759    </li>
1760    <li>
1761        Corrected checking of reference type changes
1762    </li>
1763    <li>
1764        Corrected titles in the report
1765    </li>
1766    <li>
1767        Corrected size of some array types
1768    </li>
1769    <li>
1770        Corrected checking of added/withdrawn members in the structure types with reserved members
1771    </li>
1772    <li>
1773        Corrected checking of added/withdrawn parameters
1774    </li>
1775</ul>
1776<br/>
1777
1778<b>Version 1.18 (June 25, 2010)</b><br/>
1779<b>New Features</b>
1780<ul>
1781    <li>
1782        Added -relpath1 and -relpath2 options to replace the {RELPATH} in the descriptors; old option -relpath was removed
1783    </li>
1784    <li>
1785        Added "add_include_paths" section of the library descriptor: this section contains a list of include paths that should be added to the automatically detected include paths
1786    </li>
1787</ul>
1788<b>Bug Fixes</b>
1789<ul>
1790    <li>
1791        Added some previously missed compatibility problems in the report
1792    </li>
1793    <li>
1794        Corrected techniques for auto-detection of header file dependencies (include paths)
1795    </li>
1796    <li>
1797        Removed problems relating to the changes in the temporary header files
1798    </li>
1799    <li>
1800        Corrected interface signatures in the report
1801    </li>
1802    <li>
1803        Corrected checking of added/withdrawn parameters
1804    </li>
1805    <li>
1806        Corrected changes in the virtual tables of the libraries with symbol versioning
1807    </li>
1808    <li>
1809        Corrected checking of complex namespaces changes (C++)
1810    </li>
1811    <li>
1812        Added namespaces information to the ABI dump
1813    </li>
1814</ul>
1815<br/>
1816
1817<b>Version 1.17.2 (June 16, 2010)</b><br/>
1818<b>Bug Fixes</b>
1819<ul>
1820    <li>
1821        Fixed -separately option
1822    </li>
1823    <li>
1824        Corrected permissions of LICENSE file
1825    </li>
1826    <li>
1827        Corrected tool description
1828    </li>
1829</ul>
1830<br/>
1831
1832<b>Version 1.17.1 (June 09, 2010)</b><br/>
1833<b>New Features</b>
1834<ul>
1835    <li>
1836        Added -relpath option for adding prefixes to the paths in the library descriptor
1837    </li>
1838</ul>
1839<b>Bug Fixes</b>
1840<ul>
1841    <li>
1842        Corrected checking of added/withdrawn parameters
1843    </li>
1844    <li>
1845        Corrected processing of mixed C/C++ header sets
1846    </li>
1847    <li>
1848        Corrected checking of parameter type changes
1849    </li>
1850</ul>
1851<br/>
1852
1853<b>Version 1.17 (June 08, 2010)</b><br/>
1854<b>New Features</b>
1855<ul>
1856    <li>
1857        Visualizing of the serious changes (added/withdrawn parameters) in the interface signature
1858    </li>
1859    <li>
1860        Recursive analysis of constant changes
1861    </li>
1862    <li>
1863        Separated stderr and stdout streams of the tool
1864    </li>
1865    <li>
1866        Added "skip_constants" section of the library descriptor to skip checking of some constants
1867    </li>
1868    <li>
1869        Added -params option to add function parameter names to the report
1870    </li>
1871</ul>
1872<b>Bug Fixes</b>
1873<ul>
1874    <li>
1875        Corrected analysis of virtual table layout changes
1876    </li>
1877    <li>
1878        Corrected analysis of parameter type changes
1879    </li>
1880    <li>
1881        Corrected complex array type names
1882    </li>
1883    <li>
1884        Corrected typedef names
1885    </li>
1886    <li>
1887        Corrected analysis of structure layout changes
1888    </li>
1889    <li>
1890        Fixed tool hanging on some C++ headers (with many namespaces)
1891    </li>
1892    <li>
1893        Corrected analysis of Glibc headers
1894    </li>
1895    <li>
1896        Corrected analysis of library language changes (if added some C++ headers)
1897    </li>
1898    <li>
1899        Corrected descriptions of some compatibility problems
1900    </li>
1901    <li>
1902        Corrected analysis of added/withdrawn parameters in C headers
1903    </li>
1904</ul>
1905<br/>
1906
1907<b>Version 1.16 (May 05, 2010)</b><br/>
1908<b>New Features</b>
1909<ul>
1910    <li>
1911        Added -strict option for treating all compatibility warnings as problems
1912    </li>
1913    <li>
1914        Added -dumpversion option for printing tool version and don't do anything else
1915    </li>
1916    <li>
1917        Ignoring hidden .svn, .git, .bzr, .hg, and CVS directories
1918    </li>
1919    <li>
1920        Improved header files sorting for protecting from compilation errors on the intermediate phase of temporary header file compilation
1921    </li>
1922    <li>
1923        Improved techniques for auto-detection of header file dependencies (include paths)
1924    </li>
1925    <li>
1926        Ignoring problems related to changes of constants (defines) describing library version (*_VERSION_*, *_COPYRIGHT_* and other)
1927    </li>
1928    <li>
1929        New internal test cases
1930    </li>
1931</ul>
1932<b>Bug Fixes</b>
1933<ul>
1934    <li>
1935        Checking of some previously missed C++ namespaces
1936    </li>
1937    <li>
1938        Removed hidden "void const** __vtt_parm" parameters from signatures of some constructors
1939    </li>
1940    <li>
1941        Corrected dumping of C++ classes ABI
1942    </li>
1943    <li>
1944        Corrected checking of pure virtual destructors
1945    </li>
1946    <li>
1947        Removed unnecessary built-in constants from the ABI dump
1948    </li>
1949</ul>
1950<br/>
1951
1952<b>Version 1.15 (March 26, 2010)</b><br/>
1953<b>New Features</b>
1954<ul>
1955    <li>
1956        The license was changed to dual GNU GPL and LGPL
1957    </li>
1958    <li>
1959        Added "skip_headers" section of the library descriptor
1960    </li>
1961</ul>
1962<b>Bug Fixes</b>
1963<ul>
1964    <li>
1965        Corrected processing of "include_paths" section of the library descriptor
1966    </li>
1967    <li>
1968        Corrected processing of relative paths in the "headers" and "include_paths" sections of the descriptor
1969    </li>
1970    <li>
1971        Directory with temporary files renamed from "temp" to hidden ".tmp_dir"
1972    </li>
1973    <li>
1974        Corrected processing of shared object dependencies
1975    </li>
1976    <li>
1977        Corrected processing of some previously missed functions and conversion operators in C++
1978    </li>
1979    <li>
1980        Corrected internal test suite
1981    </li>
1982    <li>
1983        Corrected some error messages
1984    </li>
1985</ul>
1986<br/>
1987
1988<b>Version 1.14 (March 03, 2010)</b><br/>
1989<b>New Features</b>
1990<ul>
1991    <li>
1992        Added techniques to auto-detect dependencies of a header file (include paths); providing of "include_paths" section of the descriptor is not necessary for now
1993    </li>
1994    <li>
1995        Ported to FreeBSD and Haiku
1996    </li>
1997    <li>
1998        Added check for gcc/g++ version (>=3.0.0)
1999    </li>
2000    <li>
2001        Added sorting of interface problems by namespace in the report (C++)
2002    </li>
2003    <li>
2004        Improved internal test suite
2005    </li>
2006    <li>
2007        Added log for describing tool actions and occurred errors
2008    </li>
2009    <li>
2010        Added exit error code (high/medium risk for ABI break)
2011    </li>
2012</ul>
2013<b>Bug Fixes</b>
2014<ul>
2015    <li>
2016        Corrected ABI dumping
2017    </li>
2018    <li>
2019        Corrected styles of the report
2020    </li>
2021</ul>
2022<br/>
2023
2024<b>Version 1.13 (February 16, 2010)</b><br/>
2025<b>New Features</b>
2026<ul>
2027    <li>
2028        Added -version option
2029    </li>
2030
2031</ul>
2032<b>Bug Fixes</b>
2033<ul>
2034    <li>
2035        Corrected processing of tab characters in the descriptor
2036    </li>
2037    <li>
2038        Corrected help message
2039    </li>
2040    <li>
2041        Corrected descriptor template structure
2042    </li>
2043    <li>
2044        Corrected error and warning messages
2045    </li>
2046    <li>
2047        Corrected processing of shared object dependencies
2048    </li>
2049</ul>
2050<br/>
2051
2052<b>Version 1.12 (December 04, 2009)</b><br/>
2053<b>New Features</b>
2054<ul>
2055    <li>
2056        New help message
2057    </li>
2058    <li>
2059        Highlighting of [in-charge], [not-in-charge] constructors and destructors in the report was improved
2060    </li>
2061    <li>
2062        New option -time for enabling time measurements
2063    </li>
2064    <li>
2065        New internal test cases
2066    </li>
2067</ul>
2068<b>Bug Fixes</b>
2069<ul>
2070    <li>
2071        Corrected classification of compatibility problems in the report
2072    </li>
2073    <li>
2074        Reduced priority of problems related to changes in a method's object
2075    </li>
2076    <li>
2077        Corrected complex template type names
2078    </li>
2079</ul>
2080<br/>
2081
2082<b>Version 1.11 (November 10, 2009)</b><br/>
2083<b>New Features</b>
2084<ul>
2085    <li>
2086        Added -app option to check portability of applications to the new library version
2087    </li>
2088    <li>
2089        Memory usage decreased twice
2090    </li>
2091</ul>
2092<b>Bug Fixes</b>
2093<ul>
2094    <li>
2095        Corrected checking of added middle structure members
2096    </li>
2097    <li>
2098        Corrected names of template types (with intrinsic, bool and string parameters)
2099    </li>
2100    <li>
2101        Corrected highlighting of function signatures in the report
2102    </li>
2103</ul>
2104<br/>
2105
2106<b>Version 1.10 (November 02, 2009)</b><br/>
2107<b>New Features</b>
2108<ul>
2109    <li>
2110        Checking added/dropped function parameters (C language only)
2111    </li>
2112    <li>
2113        Improved design of the report
2114    </li>
2115    <li>
2116        New internal test cases
2117    </li>
2118</ul>
2119<b>Bug Fixes</b>
2120<ul>
2121    <li>
2122        Incorrect checking of redefined virtual functions and differences in parameter types
2123    </li>
2124    <li>
2125        More careful checking of withdrawn interfaces using shared library dependencies
2126    </li>
2127</ul>
2128<br/>
2129
2130<b>Version 1.9 (October 12, 2009)</b><br/>
2131<b>Improvements</b>
2132<ul>
2133    <li>
2134        Improved design of ABI compliance report
2135    </li>
2136    <li>
2137        Improved algorithms of checking parameter/field type change
2138    </li>
2139    <li>
2140        New internal test cases
2141    </li>
2142</ul>
2143<b>Bug Fixes</b>
2144<ul>
2145    <li>
2146        Fixed incorrect names of typedefs and function pointer types
2147    </li>
2148    <li>
2149        Checking of some previously missed C++ functions
2150    </li>
2151    <li>
2152        Removed some false positives from the report (for anon-types)
2153    </li>
2154</ul>
2155<br/>
2156
2157<b>Version 1.8 (September 29, 2009)</b><br/>
2158<b>New Features</b>
2159<ul>
2160    <li>
2161        Added ability to specify a file with a list of interfaces that should be checked
2162    </li>
2163</ul>
2164<b>Bug Fixes</b>
2165<ul>
2166    <li>
2167        Size of ABI info dumps have been reduced through removing of unnecessary information
2168    </li>
2169    <li>
2170        Incorrect names of template instances and function pointer types
2171    </li>
2172    <li>
2173        Incorrect positions of function parameters in the "Interface Problems" section of the report
2174    </li>
2175    <li>
2176        Removed some false positives from the report
2177    </li>
2178    <li>
2179        Incorrect handling of special symbols in the paths to header files and shared objects
2180    </li>
2181</ul>
2182<br/>
2183
2184<b>Version 1.7 (September 11, 2009)</b><br/>
2185<b>New Features</b>
2186<ul>
2187    <li>
2188        Checking of incorrect symbols versioning
2189    </li>
2190    <li>
2191        Checking the values of defines (constants)
2192    </li>
2193    <li>
2194        Ability to check header files without shared objects; It is easy to run, but may provide a low quality report with a lot of false positives and without detecting of added/withdrawn interfaces
2195    </li>
2196    <li>
2197        Number of checked interfaces and data types in the report
2198    </li>
2199    <li>
2200        Added tests for checking new features
2201    </li>
2202</ul>
2203<b>Bug Fixes</b>
2204<ul>
2205    <li>
2206        Incorrect processing of duplicated headers in the input set (headers with the same name but different paths)
2207    </li>
2208    <li>
2209        Incorrect header files include order
2210    </li>
2211    <li>
2212        Sorting in the ABI dumps
2213    </li>
2214    <li>
2215        Incorrect processing of redefined virtual methods
2216    </li>
2217    <li>
2218        Incorrect processing of anon types
2219    </li>
2220    <li>
2221        Absence of some necessary information about C++ functions in the ABI dumps
2222    </li>
2223</ul>
2224<br/>
2225
2226<b>Version 1.6 (August 31, 2009)</b><br/>
2227<b>Bug Fixes</b>
2228<ul>
2229    <li>
2230        Corrected processing of relative paths in the library descriptor
2231    </li>
2232    <li>
2233        Display machine hardware name instead of processor type in the report
2234    </li>
2235    <li>
2236        Fixed grammar/spelling errors
2237    </li>
2238    <li>
2239        Renamed "internal_interfaces" section of the library descriptor to "skip_interfaces"
2240    </li>
2241    <li>
2242        Cosmetic changes in the code
2243    </li>
2244</ul>
2245<br/>
2246
2247<b>Version 1.5 (August 25, 2009)</b><br/>
2248<b>Bug Fixes</b>
2249<ul>
2250    <li>
2251        Absent information about opaque types and internal interfaces has been added to the ABI dump 
2252    </li>
2253    <li>
2254        Fixed style of the report 
2255    </li>
2256    <li>
2257        Fixed grammar/spelling 
2258    </li>
2259    <li>
2260        Renamed "internal_functions" section of the library descriptor to "internal_interfaces" 
2261    </li>
2262    <li>
2263        Renamed outptu ABI dump to "*.abi.tar.gz" (previously it was "*.info.tar.gz") 
2264    </li>
2265    <li>
2266        Corrected interface names in the report (for -separately option) 
2267    </li>
2268</ul>
2269<br/>
2270
2271<b>Version 1.4 (August 18, 2009)</b><br/>
2272<b>Improvements</b>
2273<ul>
2274    <li>
2275        Added ability to check ABI compliance of library versions located on different machines 
2276    </li>
2277    <li>
2278        Header files checking mode by default has been changed: checking all header files together instead of separate checking 
2279    </li>
2280</ul>
2281<b>Bug Fixes</b>
2282<ul>
2283    <li>
2284        Incorrect description for affected interfaces 
2285    </li>
2286    <li>
2287        Incorrect virtual table checking 
2288    </li>
2289</ul>
2290<br/>
2291
2292<b>Version 1.3 (August 14, 2009)</b><br/>
2293<b>Bug Fixes</b>
2294<ul>
2295    <li>
2296        Incorrect number of binary compatibility problems in the report summary 
2297    </li>
2298    <li>
2299        Incorrect design of problem descriptions in the report 
2300    </li>
2301</ul>
2302<br/>
2303
2304<b>Version 1.1 (August 06, 2009)</b><br/>
2305<b>Improvements</b>
2306<ul>
2307    <li>
2308        Design of the report has been greatly improved 
2309    </li>
2310</ul>
2311<br/>
2312
2313<b>Version 1.0 (July 31, 2009)</b><br/>
2314Initial version of the tool.
2315
2316<div class="footer">
2317    get the source code on GitHub : <a href="https://github.com/lvc/abi-compliance-checker">lvc/abi-compliance-checker</a>
2318</div>
2319
2320<br/>
2321<br/>
2322
2323</div>
2324</body>
2325</html>
2326