From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id E341BA04B5; Tue, 3 Dec 2019 12:04:12 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 2EB124C93; Tue, 3 Dec 2019 12:04:12 +0100 (CET) Received: from us-smtp-delivery-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) by dpdk.org (Postfix) with ESMTP id EE3FC37AF for ; Tue, 3 Dec 2019 12:04:09 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1575371049; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=udNJi18+LrRLdtbUkLeAiNqjv6zfeXUf8PB+kl3wA1w=; b=Hm3EolQZzD8Qn96NGVy+otcpiXORp2iyjz7/VK7KNB6y3xrtJ0LOV8vPTVBhiKeyfTIQVg 15TIf8dtLbY6VDTgZnvpCBAxFrl6oxCasXff7BCQFalsXJNdn1zSjYZAIIAqfCjYBXCgm7 r1RWKJPUPuJC4leGNhJ7+Wm8Llov3gU= Received: from mail-vk1-f200.google.com (mail-vk1-f200.google.com [209.85.221.200]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-233-mCRUt0wVO1i6_-zTA4Kpyw-1; Tue, 03 Dec 2019 06:04:07 -0500 Received: by mail-vk1-f200.google.com with SMTP id w131so1276976vkd.0 for ; Tue, 03 Dec 2019 03:04:07 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=udNJi18+LrRLdtbUkLeAiNqjv6zfeXUf8PB+kl3wA1w=; b=AOy9jCiXWinFkCBwCqPG36C4PtWItJ0Mop08h4tAazOlWFEY+JoaNrxao7ZgIzUcRh 3Y1NudufdrBmd1zgyzrz9OUMDQZ2WtiJINOROyqYPtd1/6U4aAPSTfxJm1j2zVJui0d6 XFHof8ru9KesNJ5EP5TcwASCw++kpzXxsnXptVbAGOI6sXIJJTl+YHKu45Usv1JwLI1S IoRwYWgX9xTur20qvGOBypBNuQlz0DsMJm09shIubrRrGdwbluy+WLuIy1L74Bpu4eU4 A+PDiatsT9NfOydN0sm1HZtPmVuAQhlwLFA3kkprmCmEkxt+He+iwhKW9rEGhmGst6aX NgTg== X-Gm-Message-State: APjAAAUYg5FucCgvKO6hzXUyzcILIMeDkg8snsfR5/fKme8kIaP+m3JQ 9V3xr+0AVDn4Tv7KNUXLtxAkQIOuoFFGDYVriI4OsiAw+s3O8KkICCRYPYbxMkMxeB99zI7epPc /E0Zs4Z/+pF5b/8o5YsE= X-Received: by 2002:a67:cfcc:: with SMTP id h12mr2481458vsm.198.1575371047049; Tue, 03 Dec 2019 03:04:07 -0800 (PST) X-Google-Smtp-Source: APXvYqwe4sYX6uxvfuz9Wa5S4PnCRRNMVsyUQvKX9wtS4INOvi/vSaGdIo+hAMayD1d41icqDqiySbE+JRjjCtU8RvA= X-Received: by 2002:a67:cfcc:: with SMTP id h12mr2481428vsm.198.1575371046541; Tue, 03 Dec 2019 03:04:06 -0800 (PST) MIME-Version: 1.0 References: <20191129171024.56165-1-kevin.laatz@intel.com> <20191129210905.1865-1-kevin.laatz@intel.com> In-Reply-To: <20191129210905.1865-1-kevin.laatz@intel.com> From: David Marchand Date: Tue, 3 Dec 2019 12:03:55 +0100 Message-ID: To: Kevin Laatz Cc: dev , Thomas Monjalon , Bruce Richardson , "Kinsella, Ray" X-MC-Unique: mCRUt0wVO1i6_-zTA4Kpyw-1 X-Mimecast-Spam-Score: 0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Subject: Re: [dpdk-dev] [PATCH v3 0/7] Add ABI compatibility checks to the meson build X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Fri, Nov 29, 2019 at 10:09 PM Kevin Laatz 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=E2=80=99t 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? - please squash patches 3, 4, 5 and 6, reading them separately is a pain and they are quite small, - if Windows does not support the ABI check, enforce this earlier in meson and refuse enabling it rather than silently ignoring it, - 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) ? - please update the travis packages so that we can run those checks for developers submitting patches - 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 '>=3D 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 comma= nd. FAILED: lib/librte_kvargs.abi_chk /usr/bin/meson --internal exe /home/dmarchan/builds/build-gcc-static/meson-private/meson_exe_abidiff_6511= 538ddd95d9672028017110fa45c67f01f7be.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. -- David Marchand