libabigail/doc/manuals/abipkgdiff.rst
Dodji Seketeli 266fa9288e Add --version option to several libabigail tools
This patch changed the revision number of the libabigail library to
make it reflect the fact that we are not in "release candidate" mode,
before the first 1.0 release.  So the revision number is now "rc0".

The configuration manager has been updated to support version numbers
that are strings, so that it can supports things like "rc0".

Then, several libabigail tools have been modified to support the
--version option to display their version number.

	* configure.ac: Set the version revision to "rc0".
	* doc/manuals/abicompat.rst: Adjust manual for new --version
	option.
	* doc/manuals/abidiff.rst: Likewise.
	* doc/manuals/abidw.rst: Likewise.
	* doc/manuals/abilint.rst: Likewise.
	* doc/manuals/abipkgdiff.rst: Likewise.
	* include/abg-config.h (config::{m_format_minor, m_format_major}):
	Make these be strings.
	(config::{get,set}_format_minor_version_number): Make these return
	strings.
	(config::{get,set}_format_major_version_number): Make these return
	or take strings.
	(abigail_get_library_version): Make this take strings.
	* src/abg-config.cc (config::config): Adjust.
	(config::{get,set}_format_major_version_number): Make these return
	or take strings.
	(config::{get,set}_format_minor_version_number): Make these return
	strings.
	(abigail_get_library_version): Make this take strings.
	* include/abg-version.h.in: Make the version variables be strings.
	* src/abg-writer.cc (write_translation_unit): The version numbers
	are now strings so adjust.
	* tools/{abicompat,abidiff,abidw,abilint,abipkgdiff,abisym}.cc
	(options::display_version): New data member.
	(options::options): Initialize it.
	(display_usage): Add documentation for new --version option.
	(parse_command_line): Parse new --version option.
	(main): Support --version.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
2015-11-16 12:54:10 +01:00

143 lines
4.2 KiB
ReStructuredText

.. _abipkgdiff_label:
===========
abipkgdiff
===========
``abipkgdiff`` compares the Application Binary Interfaces (ABI) of the
`ELF`_ binaries contained in two software packages. The software
package formats currently supported are `Deb`_, `RPM`_, `tar`_
archives (either compressed or not) and plain directories that contain
binaries.
For a comprehensive ABI change report that includes changes about
function and variable sub-types, the two input packages must be
accompanied with their debug information packages that contain debug
information in `DWARF`_ format.
.. _ELF: http://en.wikipedia.org/wiki/Executable_and_Linkable_Format
.. _RPM: https://en.wikipedia.org/wiki/RPM_Package_Manager
.. _Deb: https://en.wikipedia.org/wiki/Deb_%28file_format%29
.. _tar: https://en.wikipedia.org/wiki/Tar_%28computing%29
.. _DWARF: http://www.dwarfstd.org
.. _abipkgdiff_invocation_label:
Invocation
==========
::
abipkgdiff [option] <package1> <package2>
.. _abipkgdiff_options_label:
Options
=======
* ``--help | -h``
Display a short help about the command and exit.
* `--version | -v`
Display the version of the program and exit.
* ``--debug-info-pkg1 | --d1`` <path>
For cases where the debug information for *package1* is split out
into a separate file, tells ``abipkgdiff`` where to find that
separate debug information package.
* ``--debug-info-pkg2 | --d2`` <path>
For cases where the debug information for *package2* is split out
into a separate file, tells ``abipkgdiff`` where to find that
separate debug information package.
* ``--dso-only``
Compare ELF files that are shared libraries, only. Do not compare
executable files, for instance.
* ``--redundant``
In the diff reports, do display redundant changes. A redundant
change is a change that has been displayed elsewhere in a given
report.
* ``--no-linkage-name``
In the resulting report, do not display the linkage names of
the added, removed, or changed functions or variables.
* ``--no-added-syms``
Do not show the list of functions, variables, or any symbol that
was added.
* ``--no-added-binaries``
Do not show the list of binaries that got added to the second
package.
Please note that the presence of such added binaries is not
considered like an ABI change by this tool; as such, it doesn't
have any impact on the exit code of the tool. It does only have
an informational value. Removed binaries are, however, considered
as an ABI change.
* ``--no-abignore``
Do not search the *package2* for the presence of suppression
files.
* ``--no-parallel``
By default, ``abipkgdiff`` will use all the processors it has available to
execute concurrently. This option tells it not to extract packages or run
comparisons in parallel.
* ``--suppressions | --suppr`` <*path-to-suppressions*>
Use a :ref:`suppression specification <suppr_spec_label>` file
located at *path-to-suppressions*. Note that this option can
appear multiple times on the command line; all the suppression
specification files are then taken into account.
* ``--fail-no-dbg``
Make the program fail and return a non-zero exit code if couldn't
read any of the debug information that comes from the debug info
packages that were given on the command line. If no debug info
package were provided on the command line then this option is not
active.
Note that the non-zero exit code returned by the program as a
result of this option is the constant ``ABIDIFF_ERROR``. To know
the numerical value of that constant, please refer to the
:ref:`exit code documentation <abidiff_return_value_label>`.
* ``--keep-tmp-files``
Do not erase the temporary directory files that are created during
the execution of the tool.
* ``--verbose``
Emit verbose progress messages.
.. _abipkgdiff_return_value_label:
Return value
============
The exit code of the ``abipkgdiff`` command is either 0 if the ABI of
the binaries compared are equal, or non-zero if they differ or if the
tool encountered an error.
In the later case, the value of the exit code is the same as for the
:ref:`abidiff tool <abidiff_return_value_label>`.