abi-compliance-checker | checking backward API/ABI compatibility | Cryptocurrency library
kandi X-RAY | abi-compliance-checker Summary
kandi X-RAY | abi-compliance-checker Summary
The tool analyzes changes in API/ABI (ABI=API+compiler ABI) that may break binary compatibility and/or source compatibility: changes in calling stack, v-table changes, removed symbols, renamed fields, etc. The tool can create and compare ABI dumps for header files and shared objects of a library. The ABI dump for a library can also be created by the ABI Dumper tool (if shared objects include debug-info. The tool is intended for developers of software libraries and Linux maintainers who are interested in ensuring backward compatibility, i.e. allow old applications to run or to be recompiled with newer library versions. The tool is a core of the ABI Tracker and Upstream Tracker projects: The tool is developed by Andrey Ponomarenko.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of abi-compliance-checker
abi-compliance-checker Key Features
abi-compliance-checker Examples and Code Snippets
Community Discussions
Trending Discussions on abi-compliance-checker
QUESTION
abi-compliance-checker is a perl program that can check ABI of libraries on linux (https://lvc.github.io/abi-compliance-checker/)
The tool has a -extended
option, and here is what the manual says about it:
If your library A is supposed to be used by other library B and you want to control the ABI of B, then you should enable this option. The tool will check for changes in all data types, even if they are not used by any function in the library A. Such data types are not part of the A library ABI, but may be a part of the ABI of the B library. The short scheme is: app C (broken) -> lib B (broken ABI) -> lib A (stable ABI)
Even after trying checking ABI with and without the option, I still don't really understand the meaning option and how it changes the results I get.
Here is a snippet of the results I have without the option:
...ANSWER
Answered 2017-Aug-15 at 14:25By default the tool checks data types that are used (as parameter, return value or field of parameter or return value, etc.) by exported symbols of the analyzed binary. Unused data types are not checked by default. In -extended
mode the tool will check all data types including unused.
In your example I see that the number of checked symbols is different in the extended mode, but it should be the same according to the description of the option. Detection of added/removed _SymbolDefinedInStaticInitOnly*
looks like a regression bug in the tool for me.
For now, the -extended
option enables the -headers-only option implicitly, that enables analysis of all inline symbols in headers. I think we should not enable -headers-only option in this case.
Looks like -extended
option doesn't work as expected for now. We need to fix it.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install abi-compliance-checker
Perl 5
GCC C++ (3.0 or newer)
GNU Binutils
Ctags
ABI Dumper (1.1 or newer)
Linux
Mac OS X
Windows
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page