[dpdk-dev] [PATCH v2] devtools: rework abi checker script

Olivier MATZ olivier.matz at 6wind.com
Mon Sep 11 10:18:04 CEST 2017


Hello Neil,

On Fri, Sep 08, 2017 at 09:46:49AM -0400, Neil Horman wrote:
> On Wed, Sep 06, 2017 at 04:51:01PM +0200, Olivier Matz wrote:
> > The intiatial version of the script had some limitations:
> > - cannot work on a non-clean workspace
> > - environment variables are not documented
> > - no compilation log in case of failure
> > - return success even it abi is incompatible
> > 
> > This patch addresses these issues and rework the code.
> > 
> > Signed-off-by: Olivier Matz <olivier.matz at 6wind.com>
> > ---
> > 
> > v1->v2:
> > - use /usr/bin/env to find bash (which is required)
> > - fix displayed path to html reports
> > - reword help for -f option
> > 
> This still doesn't seem to work.  Running the following:
> ./validate-abi.sh v17.05 v17.08
> 
> produces no report, and the end of the abi-check.log file contains:
> 
> [nhorman at hmswarspite abi-check]$ tail -n 10 ./abi-check.log 
> CMD: abi-dumper librte_vhost.so -o /home/nhorman/git/dpdk/devtools/abi-check/222555480/librte_vhost.so.dump -lver 222555480
> Reading debug-info
> WARNING: incompatible build option detected: -O0 (required -Og for better analysis)
> Creating ABI dump
> 
> The object ABI has been dumped to:
>   /home/nhorman/git/dpdk/devtools/abi-check/222555480/librte_vhost.so.dump
> CMD: cd ../..
> CMD: git clone ./.. /home/nhorman/git/dpdk/devtools/abi-check/02657b4ad
> fatal: repository './..' does not exist
> 
> The warning I assume should be fixed to, but the second clone failing seems to
> be the most salient bit here

Thanks for testing. The script was not behaving well when not started
from dpdk root dir. It's fixed, I'm sending a v3.

I changed the -O0 into -Og, and I also had to append -Wno-error because the
compilation fails with -Og (variable may be used uninitialized). I'll send
another patch to fix it.

Some warnings are still displayed: these are false positive from abi-dumper.
The compilation flags are "[...] -O3 [...] -Og [...]". The second -O switch
overrides the first one, but it is not properly detected. It could be
workarounded by setting a global optimization level (which does not exist yet)
instead of overring it through EXTRA_CFLAGS.

Olivier


More information about the dev mailing list