devtools: add ABI checks
authorDavid Marchand <david.marchand@redhat.com>
Sun, 2 Feb 2020 21:08:34 +0000 (22:08 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Wed, 5 Feb 2020 14:14:46 +0000 (15:14 +0100)
commit777014e56d0796861c11126cf0b4836d4d42f2d4
tree7dc783a22a9d93e212c5c1e2eea8e0656f1886e2
parentd6f923ba4a458a17d1f47f41db9c0ea960bba8b5
devtools: add ABI checks

For normal developers, those checks are disabled.

Enabling them requires a configuration that will trigger the ABI dumps
generation as part of the existing devtools/test-build.sh and
devtools/test-meson-builds.sh scripts.

Those checks are enabled in the CI for the default meson options on x86
and aarch64 so that proposed patches are validated via our CI robot.
A cache of the ABI is stored in travis jobs to avoid rebuilding too
often.

Checks can be informational only, by setting ABI_CHECKS_WARN_ONLY when
breaking the ABI in a future release.

Explicit suppression rules have been added on internal structures
exposed to crypto drivers as the current ABI policy does not apply to
them.
This could be improved in the future by carefully splitting the headers
content with application and driver "users" in mind.

We currently have issues reported for librte_crypto recent changes for
which suppression rules have been added too.

Mellanox glue libraries are explicitly skipped as they are not part of
the application ABI.

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Luca Boccassi <bluca@debian.org>
.ci/linux-build.sh
.travis.yml
MAINTAINERS
devtools/check-abi.sh [new file with mode: 0755]
devtools/gen-abi.sh [new file with mode: 0755]
devtools/libabigail.abignore [new file with mode: 0644]
devtools/test-build.sh
devtools/test-meson-builds.sh
doc/guides/contributing/patches.rst