Guillem Jover wrote:
Hi! On Thu, 2009-08-06 at 18:38:41 +0400, Andrey Ponomarenko wrote: 1) ABIcheck was intended for entirely other purposes. ABIcheck is a tool for checking an application's compliance with a library's ABI. ABI-compliance-checker was intended for checking backward binary compatibility of a library. For more information about icheck see: http://abicheck.sourceforge.net/ 2) icheck was intended for the same purposes as an ABI-compliance-checker, but icheck has many drawbacks: a) icheck does not support C++ libraries (or C libraries with C++ parts). b) icheck does not divide ABI and API changes because it does not check shared objects. c) icheck contains 467 files and 61 sub-folders; ABI-compliance-checker is a single file. d) icheck searches changes in `gcc -E -x c-header header_name.h` output, that represent a header after preprocessing - it is a very inconveniently method because it need a lot of code for parsing header (about 750 kb of code); ABI-compliance-checker searches differences in the `gcc -fdump-translation-unit header_name.h` output, that represents a syntax tree of the header files. e) as described in the documentation (http://www.digipedia.pl/man/icheck.1.html) icheck need three runs to get compatibility report - it is not easy. f) icheck compliance report is a plain text file, ABI-compliance-checker provide convenient report in HTML format. g) icheck 0.9.7 failed to run from the first time on my OpenSUSE11.1 with error message like "Can't locate CParse/Parser/PerlXS.pm". |