blob: 49872bb469575340f2df1c7500115b1f1be50d36 [file] [log] [blame]
Andrey Ponomarenkod48d9722015-08-13 20:14:50 +03001<!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>
Andrey Ponomarenko26742a82016-09-27 18:27:08 +030039<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>
Andrey Ponomarenkod48d9722015-08-13 20:14:50 +030040
41<div id="container">
42
43<h1>ABI Compliance<br/>Checker: History</h1>
44<p/>
45<br/>
46
Andrey Ponomarenkoe30363a2016-10-07 19:40:50 +030047<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
Andrey Ponomarenkodd172162016-10-04 19:41:25 +030062<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
Andrey Ponomarenkoad3f5042016-08-15 19:29:35 +0300119<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
Andrey Ponomarenkoe59087d2016-07-04 19:12:19 +0300146<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
Andrey Ponomarenkod24a3372016-05-26 23:44:58 +0300170<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
Andrey Ponomarenkob3118d92016-05-14 17:55:06 +0300200<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
Andrey Ponomarenkodd99c622016-04-26 19:10:46 +0300209<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
Andrey Ponomarenko0b4e2032016-03-12 19:33:36 +0300248<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
Andrey Ponomarenkoe3419b42016-01-28 15:06:08 +0300272<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
Andrey Ponomarenko86b503b2015-12-11 23:40:03 +0300293<b>Version 1.99.15 (December 11, 2015)</b><br/>
Andrey Ponomarenko1b597c32015-11-11 12:57:44 +0300294<b>Bug Fixes</b>
295<ul>
296 <li>
297 Fixed hang on some template instances
298 </li>
Andrey Ponomarenko86b503b2015-12-11 23:40:03 +0300299 <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>
Andrey Ponomarenko1b597c32015-11-11 12:57:44 +0300305</ul>
306<br/>
307
Andrey Ponomarenko99640d32015-11-01 21:20:50 +0300308<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
Andrey Ponomarenkod20d2b82015-10-18 23:52:17 +0300326<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
Andrey Ponomarenko15bfdc22015-09-20 13:21:01 +0300365<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
Andrey Ponomarenkoa6d2e222015-09-12 22:45:07 +0300377<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
Andrey Ponomarenko8bfdcd82015-09-08 17:58:01 +0300389<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
Andrey Ponomarenkod48d9722015-08-13 20:14:50 +0300485<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>