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.m...@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 Olivier