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 87937A0513; Wed, 15 Jan 2020 12:33:44 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D48831C0D7; Wed, 15 Jan 2020 12:33:43 +0100 (CET) Received: from smtp.tuxdriver.com (charlotte.tuxdriver.com [70.61.120.58]) by dpdk.org (Postfix) with ESMTP id 29E5D1BFD5 for ; Wed, 15 Jan 2020 12:33:42 +0100 (CET) Received: from 2606-a000-111b-43ee-0000-0000-0000-115f.inf6.spectrum.com ([2606:a000:111b:43ee::115f] helo=localhost) by smtp.tuxdriver.com with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.63) (envelope-from ) id 1irgvP-0004ki-Ld; Wed, 15 Jan 2020 06:33:34 -0500 Date: Wed, 15 Jan 2020 06:33:26 -0500 From: Neil Horman To: Thomas Monjalon Cc: David Marchand , "Richardson, Bruce" , "dev@dpdk.org" , "Laatz, Kevin" , "aconole@redhat.com" , Michael Santana , "Mcnamara, John" , "Kovacevic, Marko" , "Kinsella, Ray" Message-ID: <20200115113326.GA995@hmswarspite.think-freely.org> References: <20191220152058.10739-1-david.marchand@redhat.com> <59AF69C657FD0841A61C55336867B5B07EEAB0AE@IRSMSX103.ger.corp.intel.com> <3707731.e99z0qppnp@xps> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3707731.e99z0qppnp@xps> X-Spam-Score: -2.9 (--) X-Spam-Status: No Subject: Re: [dpdk-dev] [PATCH] add ABI checks 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 Wed, Jan 15, 2020 at 12:19:30AM +0100, Thomas Monjalon wrote: > 20/12/2019 17:20, Kinsella, Ray: > > From: Richardson, Bruce > > > From: David Marchand > > > > +Checking ABI compatibility > > > > +-------------------------- > > > > + > > > > +The first thing is to build reference binaries for the latest > > > release > > > > +your patches are built on top of. > > > > + > > > > +Either you are in a git tree and an easy way to identify this is to > > > run:: > > > > + > > > > + git checkout $(git describe --abbrev=0) > > > > + > > > > +Or you use a tarball and you extract the sources in a director of > > > > +your > > > > choice. > > > > + > > > > +Next is building those sources, refer to the previous paragraph. > > > > +You can set ``DPDK_BUILD_TEST_DIR=reference``, so that the builds > > > > +occur in this directory. > > > > + > > > > +Finally, the ABI dump files are generated with the > > > > +``devtools/gen-abi-reference.sh`` script. This script will look for > > > > +builds in the current sub directory ``reference``. But you can set > > > > +the environment variable ``DPDK_ABI_REF_BUILD_DIR`` to a different > > > location. > > > > + > > > > +Once done, you can check your current binaries ABI with this > > > > +reference with the ``devtools/check-abi-reference.sh`` script. > > > > > > > > > > I still very much dislike forcing the user to generate his own > > > reference version to compare the ABI against. These should be archived > > > and the user should just be able to pull them down via git or http or > > > otherwise. Two reasons for this: > > > > > > 1. Less error prone, since there is no chance of the user having an > > > incorrect build for whatever reason. > > > > > > 2. Less effort for the user than asking them to do extra builds. The > > > more steps the user has to follow, the less likely they are to attempt > > > the process. > > > > +1 ... 100% agree with this. > > > > Many people won't know or understand what the reference is, > > or why they to generate it. > > I don't want to generate and save the reference in git for each arch. > Can I ask what your reluctance is? Is it related to not wanting to have to save all this information that is otherwise not used for building purposes? If so I might suggest saving the dumps in a separate git tree and pulling them in as a git submodule when the check is performed I really like the idea of caching the results so everyone is working from a known ABI baseline. Neil > We can make reference build more automatic with a command like this: > git clone --branch v19.11 . $DPDK_BUILD_TEST_DIR/abiref-19.11 > > Also I don't like mixing build and check steps. > I believe the compilation should be simple and right to the point. > > This approach, from David, does not prevent from saving the dumps later > if we really feel a strong need. > > That's why I suggest going with this patch. > > >