From Fedora Project Wiki
Line 25: Line 25:


= Getting Help =
= Getting Help =
For further help on understanding ABI diff logs, Subscribe to [https://www.sourceware.org/libabigail/wiki/SubscribeToMailingList libabigail Mailing List] and send an email to <libabigail@sourceware.org>. You can also ask us on IRC channel by joining #libabigail on [https://webchat.oftc.net/ OFTC]


If you see any issue in generated ABI diff log, please report a bug to [https://sourceware.org/bugzilla/enter_bug.cgi?product=libabigail libabigail's bugzilla]
For further help on understanding logs containing ABI change reports, you can subscribe to the [https://www.sourceware.org/libabigail/wiki/SubscribeToMailingList libabigail mailing list] and send an email there. You can also ask us on IRC by joining the '''#libabigail''' channel on the [https://webchat.oftc.net irc.oftc.net network].


For any feature request, create an issue at [https://pagure.io/task-abicheck/issues pagure]
If you see any issue in the generated ABI change report log, please report a bug to [https://sourceware.org/bugzilla/enter_bug.cgi?product=libabigail libabigail's bugzilla]
 
For any feature request on the [https://pagure.io/task-abicheck abicheck taskotron task], please create an issue on the abicheck task [https://pagure.io/task-abicheck/issues issue tracker].


= Additional Information =
= Additional Information =

Revision as of 08:33, 28 May 2016

Introduction

The abicheck task helps verify that the Application Binary Interface (a.k.a. ABI) of newer versions of Fedora C and C++ shared libraries stays compatible with previous versions. This task is executed when a new Fedora package update is submitted.

How does abicheck task work?

For each new Koji build, all sub-packages for all architectures (armv7hl, i686 and x86_64) are downloaded along with their debug info packages. Sub-packages of the previous latest stable corresponding build available in koji are downloaded along with their debug info packages as well.

The task then invokes the abipkgdiff tool to compare the ABIs of each new sub-package against its previous stable counterpart. The ABI comparison is only performed on shared libraries presents in those packages.

Known deficiencies

Comparing the ABI of two shared libraries involves performing a deep static analysis of the binaries and their debug information. Information about (possibly all) types and declarations present in the binaries are loaded in main memory and analyzed. The bigger the library and its debug information, the more memory is needed to perform the analysis.

The amount of memory needed by the abipkgdiff tool can vary from a few Kilobytes for small libraries to many Gigabytes for huge libraries.

Right now, taskotron executes the abicheck task on a system with 6GB of RAM. This task will fail to run if the amount of memory required for ABI comparison is greater than 6 GB.

Dealing with Result

The outcome of the abicheck task run can be PASSED, FAILED or NEEDS_INSPECTION. Depending on the outcome, either one of the following actions should be taken:

  • PASSED: No ABI change has been found. No review of the ABI change report logs is thus required.
  • FAILED: Incompatible ABI changes have been found in one or more libraries contained in the package. These changes will almost certainly break applications or libraries that depend on this package. A thorough review of the ABI changes reported in the logs is thus required. Please provide a relevant justification for these ABI changes or come with a new build that fixes those changes.
  • NEEDS_INSPECTION: Some ABI changes have been found. As a result, the ABI of the package might or might not be incompatible with its previous version. It is thus highly recommended to look into the log containing the ABI change report and verify that the ABI changes are harmless. If the changes are harmful, then please submit new version of the package that fixes the issue.

Getting Help

For further help on understanding logs containing ABI change reports, you can subscribe to the libabigail mailing list and send an email there. You can also ask us on IRC by joining the #libabigail channel on the irc.oftc.net network.

If you see any issue in the generated ABI change report log, please report a bug to libabigail's bugzilla

For any feature request on the abicheck taskotron task, please create an issue on the abicheck task issue tracker.

Additional Information

  • Browse abicheck taskotron task source code at pagure