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

Neil Horman nhorman at tuxdriver.com
Mon Sep 25 13:21:11 CEST 2017


On Mon, Sep 25, 2017 at 11:11:20AM +0200, Olivier MATZ wrote:
> On Thu, Sep 21, 2017 at 11:40:35AM -0400, Neil Horman wrote:
> > On Wed, Sep 20, 2017 at 11:12:53AM +0200, Olivier Matz wrote:
> > > The initial 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>
> > > ---
> > >
> > > v3->v4:
> > > - clarify logs on incompatible abi
> > > - log when an error returned an error
> > > - [really] fix the report path
> > > - log the output of make config in the proper file
> > >
> > > v2->v3:
> > > - fix when not launched from dpdk root dir
> > > - use "-Og -Wno-error" instead of "-O0"
> > > - fix typo in commit log
> > >
> > > v1->v2:
> > > - use /usr/bin/env to find bash (which is required)
> > > - fix displayed path to html reports
> > > - reword help for -f option
> > >
> > >
> > >  devtools/validate-abi.sh | 397 ++++++++++++++++++++++++-----------------------
> > >  1 file changed, 205 insertions(+), 192 deletions(-)
> > >
> > This looks better, thank you for the iterations.  One last note: The abi dumper
> > utility errors out with error code of 12 if a given object has no exported
> > symbols, and I see a few of those.  You may want to consider catching that
> > error, logging an appropriate message and skipping the error emit.  That can be
> > handled later though, as its a corner case.  I'd go with this patch, and then
> > do a incremental improvement later
> 
> Unfortunately the error code 12 does not exist on my version of abi-dumper
> (debian stable, v0.99.16). I'm currently doing this as a workaround:
> 
>     cmd $abidump ${i} -o $dst/${1}/${i}.dump -lver ${1} || true
>     # hack to ignore empty SymbolsInfo section (no public ABI)
>     if grep -q "'SymbolInfo' => {}," $dst/${1}/${i}.dump 2> /dev/null; then
>         log "INFO" "${i} has no public ABI, remove dump file"
>         cmd rm -f $dst/${1}/${i}.dump
>     fi
> 
> I tested with the latest abi-dumper version, and I indeed see
> these errors in the logs. It seems we don't go inside the 'if'
> above with a recent abi-dumper, and the .dump file is not generated.
> 
> I can add a check to display the same additional log
> "INFO" "${i} has no public ABI, remove dump file" if abi-dumper
> returns 12. Something like this:
> 
>     ret=0
>     cmd $abidump ${i} -o $dst/${1}/${i}.dump -lver ${1} || ret=$?
>     # hack to ignore empty SymbolsInfo section (no public ABI)
>     if [ ${ret} = 12 ]; then
>             log "INFO" "${i} has no public ABI"
>     fi
>     if grep -q "'SymbolInfo' => {}," $dst/${1}/${i}.dump 2> /dev/null; then
>         log "INFO" "${i} has no public ABI, remove dump file"
>         cmd rm -f $dst/${1}/${i}.dump
>     fi
> 
Agreed, that makes sense.
Thanks.
Neil

> 
> Olivier
> 


More information about the dev mailing list