From: "Laatz, Kevin" <kevin.laatz@intel.com>
To: David Marchand <david.marchand@redhat.com>
Cc: dev <dev@dpdk.org>, Thomas Monjalon <thomas@monjalon.net>,
Bruce Richardson <bruce.richardson@intel.com>,
"Kinsella, Ray" <ray.kinsella@intel.com>
Subject: Re: [dpdk-dev] [PATCH v3 0/7] Add ABI compatibility checks to the meson build
Date: Tue, 10 Dec 2019 11:36:06 +0000 [thread overview]
Message-ID: <50d30067-db27-35e5-fc75-f1e069ad6a52@intel.com> (raw)
In-Reply-To: <CAJFAV8y-rsMJdead69q9de_2O05i3bU0y+iSYYg+34FJGQeJ7w@mail.gmail.com>
On 10/12/2019 11:07, David Marchand wrote:
> On Tue, Dec 3, 2019 at 4:27 PM Laatz, Kevin <kevin.laatz@intel.com> wrote:
>> On 03/12/2019 11:03, David Marchand wrote:
>>> On Fri, Nov 29, 2019 at 10:09 PM Kevin Laatz <kevin.laatz@intel.com> wrote:
>>>> With the recent changes made to stabilize ABI versioning in DPDK, it will
>>>> become increasingly important to check patches for ABI compatibility. We
>>>> propose adding the ABI compatibility checking to be done as part of the
>>>> build.
>>>>
>>>> The advantages to adding the ABI compatibility checking to the build are
>>>> two-fold. Firstly, developers can easily check their patches to make sure
>>>> they don’t break the ABI without adding any extra steps. Secondly, it
>>>> makes the integration into existing CI seamless since there are no extra
>>>> scripts to make the CI run. The build will run as usual and if an
>>>> incompatibility is detected in the ABI, the build will fail and show the
>>>> incompatibility. As an added bonus, enabling the ABI compatibility checks
>>>> does not impact the build speed.
>>>>
>>>> The proposed solution works as follows:
>>>> 1. Generate the ABI dump of the baseline. This can be done with the new
>>>> script added in this RFC. This step will only need to be done when the
>>>> ABI version changes (so once a year) and can be added to master so it
>>>> exists by default. This step can be skipped if the dump files for the
>>>> baseline already exist.
>>>> 2. Build with meson. If there is an ABI incompatibility, the build will
>>>> fail and print the incompatibility information.
>>>>
>>>> The patches accompanying this RFC add the ABI dump file generating script,
>>>> the meson option required to enable/disable the checks, and the required
>>>> meson changes to run the compatibility checks during the build.
>>> Global comments:
>>> - why are patch 1 and 2 in this series, is this really needed?
>> Not if we make this an 'auto' option. It would have needed debug info to
>> do the ABI check.
>>> - please squash patches 3, 4, 5 and 6, reading them separately is a
>>> pain and they are quite small,
>> Will do
>>> - if Windows does not support the ABI check, enforce this earlier in
>>> meson and refuse enabling it rather than silently ignoring it,
>> Makes sense, will look into this.
>>> - I would not enable this check by default
>>> - this is a developer option, people just building the dpdk don't
>>> care about it,
>>> - can we have something like a tristate "auto" (default, triggers
>>> the check if abidiff is installed), "disabled" and "enabled" (not
>>> having abidiff installed triggers an error) ?
>> Seems reasonable, will change.
>>> - please update the travis packages so that we can run those checks
>>> for developers submitting patches
>> Will do.
>>> - I don't think you tested this series with
>>> devtools/test-meson-builds.sh, please do. It fails with a custom build
>>> directory and in the dpdk tree too:
>>>
>>> Build targets in project: 1019
>>> WARNING: Project specifies a minimum meson_version '>= 0.47.1' but
>>> uses features which were added in newer versions:
>>> * 0.48.0: {'console arg in custom_target'}
>>> * 0.50.0: {'install arg in configure_file'}
>>> Found ninja-1.9.0 at /usr/bin/ninja
>>> ninja -C /home/dmarchan/builds/build-gcc-static
>>> ninja: Entering directory `/home/dmarchan/builds/build-gcc-static'
>>> [48/2291] Generating librte_kvargs.abi_chk with a meson_exe.py custom command.
>>> FAILED: lib/librte_kvargs.abi_chk
>>> /usr/bin/meson --internal exe
>>> /home/dmarchan/builds/build-gcc-static/meson-private/meson_exe_abidiff_6511538ddd95d9672028017110fa45c67f01f7be.dat
>>> file /home/dmarchan/dpdk/lib/abi/librte_kvargs.dump does not exist
>>> [77/2291] Compiling C object
>>> 'lib/76b5a35@@rte_mbuf@sta/librte_mbuf_rte_mbuf.c.o'.
>>> ninja: build stopped: subcommand failed.
>> This is failing as the .dump files have not been created yet. They can
>> be generated with devtools/gen-abi-dump.sh <build_dir>. This will
>> generate a .dump file for each shared object in the builddir drivers and
>> lib folders.
> Pinging on this series, since the sooner we integrate it, the better.
> We also need those dump files as part of the series, as it is not
> obvious what reviewers (at least me :-)) should do about them.
>
> Please can you work on a new revision?
Hi David,
I'm working on this. There were some extra things that needed to be
worked out and added, like suppressing warnings about breaking
experimental functions. I'm also adding the .dump files, currently
filtering them to only add the ones we need.
Thanks,
Kevin
>
> Thanks.
>
>
> --
> David Marchand
>
next prev parent reply other threads:[~2019-12-10 11:36 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-23 1:07 [dpdk-dev] [RFC 0/6] " Kevin Laatz
2019-10-23 1:07 ` [dpdk-dev] [RFC 1/6] build: enable debug info by default in meson builds Kevin Laatz
2019-10-23 1:07 ` [dpdk-dev] [RFC 2/6] build: use meson warning levels Kevin Laatz
2019-10-23 1:07 ` [dpdk-dev] [RFC 3/6] devtools: add abi dump generation script Kevin Laatz
2019-10-23 1:07 ` [dpdk-dev] [RFC 4/6] build: add meson option for abi related checks Kevin Laatz
2019-10-23 1:07 ` [dpdk-dev] [RFC 5/6] build: add lib abi checks to meson Kevin Laatz
2019-10-23 1:07 ` [dpdk-dev] [RFC 6/6] build: add drivers " Kevin Laatz
2019-11-29 12:13 ` [dpdk-dev] [RFC 0/6] Add ABI compatibility checks to the meson build David Marchand
2019-11-29 17:10 ` [dpdk-dev] [PATCH v2 0/7] " Kevin Laatz
2019-11-29 17:10 ` [dpdk-dev] [PATCH v2 1/7] build: enable debug info by default in meson builds Kevin Laatz
2019-11-29 17:10 ` [dpdk-dev] [PATCH v2 2/7] build: use meson warning levels Kevin Laatz
2019-11-29 17:10 ` [dpdk-dev] [PATCH v2 3/7] devtools: add abi dump generation script Kevin Laatz
2019-11-29 17:10 ` [dpdk-dev] [PATCH v2 4/7] build: add meson option for abi related checks Kevin Laatz
2019-11-29 17:10 ` [dpdk-dev] [PATCH v2 5/7] build: add lib abi checks to meson Kevin Laatz
2019-11-29 17:10 ` [dpdk-dev] [PATCH v2 6/7] build: add drivers " Kevin Laatz
2019-11-29 17:10 ` [dpdk-dev] [PATCH v2 7/7] build: clean up experimental syms check Kevin Laatz
2019-11-29 21:08 ` [dpdk-dev] [PATCH v3 0/7] Add ABI compatibility checks to the meson build Kevin Laatz
2019-11-29 21:08 ` [dpdk-dev] [PATCH v3 1/7] build: enable debug info by default in meson builds Kevin Laatz
2019-11-29 21:09 ` [dpdk-dev] [PATCH v3 2/7] build: use meson warning levels Kevin Laatz
2019-11-29 21:09 ` [dpdk-dev] [PATCH v3 3/7] devtools: add abi dump generation script Kevin Laatz
2019-11-29 21:09 ` [dpdk-dev] [PATCH v3 4/7] build: add meson option for abi related checks Kevin Laatz
2019-11-29 21:09 ` [dpdk-dev] [PATCH v3 5/7] build: add lib abi checks to meson Kevin Laatz
2019-11-29 21:09 ` [dpdk-dev] [PATCH v3 6/7] build: add drivers " Kevin Laatz
2019-11-29 21:09 ` [dpdk-dev] [PATCH v3 7/7] build: clean up experimental syms check Kevin Laatz
2019-12-03 11:03 ` [dpdk-dev] [PATCH v3 0/7] Add ABI compatibility checks to the meson build David Marchand
2019-12-03 15:27 ` Laatz, Kevin
2019-12-04 8:47 ` David Marchand
2019-12-04 10:46 ` Bruce Richardson
2019-12-04 11:56 ` Neil Horman
2019-12-04 12:00 ` David Marchand
2019-12-10 11:07 ` David Marchand
2019-12-10 11:36 ` Laatz, Kevin [this message]
2019-12-11 18:21 ` [dpdk-dev] [PATCH v4 0/3] " Kevin Laatz
2019-12-11 18:21 ` [dpdk-dev] [PATCH v4 2/3] build: add abi checks to meson Kevin Laatz
2019-12-11 18:21 ` [dpdk-dev] [PATCH v4 3/3] build: clean up experimental syms check Kevin Laatz
[not found] ` <20191211182147.19355-2-kevin.laatz@intel.com>
2019-12-12 8:43 ` [dpdk-dev] [PATCH v4 1/3] build: add dump files for v20.0 ABI David Marchand
2019-12-12 9:36 ` David Marchand
2019-12-12 9:45 ` Laatz, Kevin
2019-12-12 9:45 ` Laatz, Kevin
2019-12-13 14:02 ` [dpdk-dev] [PATCH v5 0/3] Add ABI compatibility checks to the meson build Kevin Laatz
2019-12-13 14:03 ` [dpdk-dev] [PATCH v5 2/3] build: add abi checks to meson Kevin Laatz
2019-12-13 14:03 ` [dpdk-dev] [PATCH v5 3/3] build: clean up experimental syms check Kevin Laatz
2019-12-13 16:40 ` [dpdk-dev] [PATCH v6 00/11] Add ABI compatibility checks to the meson build Kevin Laatz
2019-12-13 16:41 ` [dpdk-dev] [PATCH v6 01/11] lib: add dump files for v20.0 ABI Kevin Laatz
2019-12-13 16:41 ` [dpdk-dev] [PATCH v6 02/11] drivers/bus: " Kevin Laatz
2019-12-13 16:41 ` [dpdk-dev] [PATCH v6 03/11] drivers/mempool: " Kevin Laatz
2019-12-13 16:41 ` [dpdk-dev] [PATCH v6 04/11] drivers/common: " Kevin Laatz
2019-12-13 16:41 ` [dpdk-dev] [PATCH v6 05/11] drivers/raw: " Kevin Laatz
2019-12-13 16:41 ` [dpdk-dev] [PATCH v6 06/11] drivers/crypto: " Kevin Laatz
2019-12-13 16:41 ` [dpdk-dev] [PATCH v6 07/11] drivers/compress: " Kevin Laatz
2019-12-13 16:41 ` [dpdk-dev] [PATCH v6 08/11] drivers/net: " Kevin Laatz
2019-12-13 16:41 ` [dpdk-dev] [PATCH v6 09/11] drivers/net/intel: " Kevin Laatz
2019-12-13 16:41 ` [dpdk-dev] [PATCH v6 10/11] build: add abi checks to meson Kevin Laatz
2019-12-13 16:41 ` [dpdk-dev] [PATCH v6 11/11] build: clean up experimental syms check Kevin Laatz
2019-12-19 21:58 ` [dpdk-dev] [PATCH v6 00/11] Add ABI compatibility checks to the meson build David Marchand
2019-12-20 10:20 ` Thomas Monjalon
2019-12-20 11:04 ` Bruce Richardson
2019-12-20 13:19 ` David Marchand
2019-12-20 14:17 ` Bruce Richardson
2020-01-06 13:20 ` Aaron Conole
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=50d30067-db27-35e5-fc75-f1e069ad6a52@intel.com \
--to=kevin.laatz@intel.com \
--cc=bruce.richardson@intel.com \
--cc=david.marchand@redhat.com \
--cc=dev@dpdk.org \
--cc=ray.kinsella@intel.com \
--cc=thomas@monjalon.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).