[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: backward/forward binary compatibility checker



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".

Reply to: