DPDK patches and discussions
 help / color / mirror / Atom feed
From: Ray Kinsella <mdr@ashroe.eu>
To: Thomas Monjalon <thomas@monjalon.net>,
	Neil Horman <nhorman@tuxdriver.com>
Cc: dev@dpdk.org, david.marchand@redhat.com
Subject: Re: [dpdk-dev] [PATCHv3] Remove validate-abi.sh from tree
Date: Mon, 20 Apr 2020 09:43:48 +0100	[thread overview]
Message-ID: <b5654582-14d0-8c6d-b8dc-30b8f395dd72@ashroe.eu> (raw)
In-Reply-To: <33823472.ATrlOLLGV9@thomas>



On 17/04/2020 17:10, Thomas Monjalon wrote:
> 17/04/2020 17:42, Ray Kinsella:
>> On 17/04/2020 13:10, Thomas Monjalon wrote:
>>> 17/04/2020 13:47, Ray Kinsella:
>>>> On 17/04/2020 11:20, Thomas Monjalon wrote:
>>>>> 17/04/2020 12:11, Ray Kinsella:
>>>>>> check-abi.sh appears to be backward step in terms of usability.
>>>>>
>>>>> No, check-abi.sh benefits from a nice integration in build scripts.
>>>>> See below.
>>>>>
>>>>>> With validate-abi.sh I do can do a "validate-abi.sh HEAD~1 HEAD".
>>>>>> And it will do the build, install, dump and comparison for me. 
>>>>>> And it picked up my 20.0.2 - > 21.0 changes no problem. 
>>>>>>
>>>>>> With check-abi on the other hand, I need to the build and install myself.
>>>>>> check-abi requires dump files, but I see no reference in the documentation to how these are created.
>>>>>> It silently fails when it doesn't find any ...
>>>>>>
>>>>>> Do I run abi-dumper on the so's myself, or how does it work?
>>>>>
>>>>> check-abi.sh is integrated in test-build.sh and test-meson-builds.sh.
>>>>> Probably we should document usage in these scripts.
>>>>
>>>> Looks like I need to set DPDK_ABI_REF_VERSION=master, not obvious.
>>>> Any tips or tricks would be welcome.
>>>
>>> export DPDK_ABI_REF_VERSION=v20.02
>>> or
>>> export DPDK_ABI_REF_VERSION=v19.11
>>>
>>> Depends on which compatibility you want to test...
>>>
>>
>> Few things ...
>>
>> 1. test-meson-build.sh keep barfing complaining about reference paths.
>> ValueError: dst_dir must be absolute, got reference/v19.11/build-gcc-static/usr/local/share/dpdk/examples/bbdev_app
>>
>> Under the hood, ninja install is failing complaining that it needs an absolute path.
>> I fixed this in test_meson_build.sh and will send a patch in a minute. 
>> Though it's strange no-one else has seen it?
> 
> I set an absolute path in DPDK_ABI_REF_DIR.
> Not sure you can really fix it. What would be the root dir?

Figure it out at runtime, check with realpath, if DPDK_ABI_REF_DIR is not set?
Or at the very least test_meson_build.sh should barf, if DPDK_ABI_REF_DIR is not set when $DPDK_ABI_REF_VERSION is set.

root@silpixa00395806:/build/dpdk# git diff devtools/test-meson-builds.sh
diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh
index c1ff2bb50..f24cc104d 100755
--- a/devtools/test-meson-builds.sh
+++ b/devtools/test-meson-builds.sh
@@ -103,13 +103,15 @@ compile () # <builddir>

 install_target () # <builddir> <installdir>
 {
+       destdir_fp=$(realpath $2)
+
        rm -rf $2
        if [ -n "$TEST_MESON_BUILD_VERY_VERBOSE$TEST_MESON_BUILD_VERBOSE" ]; then
                echo "DESTDIR=$2 $ninja_cmd -C $1 install"
-               DESTDIR=$2 $ninja_cmd -C $1 install
+               DESTDIR=$destdir_fp $ninja_cmd -C $1 install
        else
                echo "DESTDIR=$2 $ninja_cmd -C $1 install >/dev/null"
-               DESTDIR=$2 $ninja_cmd -C $1 install >/dev/null
+               DESTDIR=$destdir_fp $ninja_cmd -C $1 install >/dev/null
        fi
 }

@@ -147,7 +149,7 @@ build () # <directory> <target compiler> <meson options>
                $srcdir/devtools/gen-abi.sh \
                        $(readlink -f $builds_dir/$targetdir/install)
                $srcdir/devtools/check-abi.sh $abirefdir/$targetdir \
-                       $(readlink -f $builds_dir/$targetdir/install)
+                       $(readlink -f $builds_dir/$targetdir/install) || :
        fi
 }

> 
>> 2. test-meson-build.sh compares the abi for the static builds, which doesn't make any sense. 
> 
> Yes
> 
>> 3. test-meson-build.sh will only take a branch in DPDK_ABI_REF_VERSION that exists locally.
>> In order to get it to compare HEAD against HEAD~1, which you would imagine is a pretty common case.
>> I had a create a branch for HEAD~1, in validate-abi this a pretty simple `validate-abi HEAD~1 HEAD`
> 
> Why is it a common case? You want to compare with a tag. Why something else?
> 

I disagree, perhaps it's just me as a contributor.
My first action is to check that _my_ submission has done no harm. 
Assuming that the origin's HEAD is more than likely good, I check my changes against it.

I assume that anything else that has changed between the origin's HEAD and v19.11, someone somewhere else has approved. 
So why would I compare against v19.11,  when I only want to check that the changes I have made have caused no harm. 








  reply	other threads:[~2020-04-20  8:44 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-16 14:54 Neil Horman
2020-04-17 10:11 ` Ray Kinsella
2020-04-17 10:20   ` Thomas Monjalon
2020-04-17 10:35     ` Ray Kinsella
2020-04-17 11:46       ` Thomas Monjalon
2020-04-17 11:47     ` Ray Kinsella
2020-04-17 12:10       ` Thomas Monjalon
2020-04-17 15:42         ` Ray Kinsella
2020-04-17 16:10           ` Thomas Monjalon
2020-04-20  8:43             ` Ray Kinsella [this message]
2020-04-21 11:12           ` Neil Horman
2020-04-21 11:46             ` Thomas Monjalon
2020-04-21 18:56               ` Neil Horman
2020-04-21 21:42                 ` Thomas Monjalon
2020-04-22 11:43                   ` Ray Kinsella
2020-04-22 12:07                     ` Neil Horman
2020-04-22 12:18                       ` Thomas Monjalon
2020-04-22 13:19                         ` Ray Kinsella
2020-04-22 13:30                           ` Thomas Monjalon
2020-04-23 11:03                         ` Neil Horman
2020-04-22 12:01                   ` Neil Horman
2020-04-22 12:16                     ` Thomas Monjalon
2020-04-23 10:57                       ` Neil Horman
2020-05-24 20:34 ` [dpdk-dev] [PATCH v4] devtools: remove old ABI validation script Thomas Monjalon

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=b5654582-14d0-8c6d-b8dc-30b8f395dd72@ashroe.eu \
    --to=mdr@ashroe.eu \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=nhorman@tuxdriver.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).