Guillem Jover wrote: > Hi! > > On Thu, 2009-08-06 at 18:38:41 +0400, Andrey Ponomarenko wrote: > >> Colleagues, I'm software engineer from Institute for System >> Programing of Russian Academy of Sciences and we are developing a free >> lightweight tool for checking backward/forward binary compatibility of >> shared C/C++ libraries in OS Linux. It checks interface signatures and >> data type definitions in two library versions (headers and shared >> objects) and searches ABI changes that may lead to incompatibility. >> We have released 1.1 version of this tool and we'd like you to consider >> its usefulness for your project. >> The wiki-page with the latest release of binary compatibility checker is >> http://ispras.linux-foundation.org/index.php/ABI_compliance_checker >> > > How does this compare with projects like icheck or abicheck? > > regards, > guillem > > >
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".